Repository navigation
ci(quality): per-module coverage floors + require-tighten (advisory) - #3901
Conversation
… (advisory) Closes two no-secret completude gaps from the gate audit: #1 Per-module coverage floors (Fase 7 Task 7.9): the collector (collect-metrics.mjs::coverageByModule + CRITICAL_MODULE_PATHS) already emitted coverage.<module>.lines for the 8 critical modules — only the baseline entries were missing, so the ratchet treated them as orphan/unenforced. Frozen conservatively (~2-3pt below a local test:coverage run, itself ~8pt below the CI-merged run → floors well below real CI, zero red risk). Tighten via --update from the first CI-merged run that populates them. #4 require-tighten wiring (Fase 6A.5): the flag existed in check-quality-ratchet.mjs but was never invoked in CI. Wired into the quality-gate job as an ADVISORY step (continue-on-error) — the plan sequences the tightening to cycle-end and v3.8.26 just opened, so blocking now would stall active merges on any metric improvement. coverage.* metrics carry tightenSlack so the anti-flake gap (CI > baseline) does not false-fire. Flip to blocking at cycle-end by removing continue-on-error. Validated: baseline JSON valid (19 metrics, 8 per-module); require-tighten passes when metrics==baseline and reports when a metric improves; ci.yml YAML valid. Config/CI only — no production code.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
Code Review
This pull request updates the quality baseline configuration in config/quality/quality-baseline.json by adding a tightenSlack parameter to existing global coverage metrics and introducing new module-level line coverage baselines for eight critical modules. It also adds documentation keys explaining these new baselines and the advisory integration of the --require-tighten gate in the CI pipeline. As there are no review comments, I have no feedback to provide.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
… (advisory) (cheaper-inference#3901) Integrated into release/v3.8.26
Fecha 2 gaps de completude (sem secret) da auditoria de gates.
#1 — Pisos de cobertura por módulo (Fase 7 Task 7.9)
O coletor (
collect-metrics.mjs::coverageByModule+CRITICAL_MODULE_PATHS) já emitiacoverage.<módulo>.linespara os 8 módulos críticos (chatCore/combo/accountFallback/auth/routeGuard/error/publicCreds/circuitBreaker) — faltava só congelar o baseline (a ratchet as tratava como órfãs). Congelados conservadores: ~2-3pt abaixo de um run LOCAL detest:coverage(que mede ~68% global vs ~76.5% do CI mergeado) → pisos bem abaixo do real do CI = zero risco de red. Apertar via--updatea partir do 1º run de coverage mergeada que os popule.#4 — Wiring do require-tighten (Fase 6A.5)
A flag
--require-tightenexistia emcheck-quality-ratchet.mjsmas nunca era invocada no CI. Wirada no jobquality-gatecomo step ADVISORY (continue-on-error).Por que advisory e não bloqueante agora: o próprio plano sequencia o aperto para "o fim do ciclo", e a v3.8.26 acabou de abrir — ligá-lo bloqueante durante merges ativos travaria qualquer melhoria de métrica até re-baseline. As métricas
coverage.*recebemtightenSlack(5 global / 10 per-módulo) para o gap anti-flake (CI > baseline) não disparar falso-positivo. Promover a bloqueante no fim do ciclo: remover ocontinue-on-errordo step.Validação
tightenSlackabsorve o gap de cobertura.Config/CI apenas — sem código de produção. Não gera versão.