Skip to content

ci(quality): per-module coverage floors + require-tighten (advisory) - #3901

Merged
diegosouzapw merged 1 commit into
release/v3.8.26from
feat/gate-coverage-floors-tighten
Jun 15, 2026
Merged

diegosouzapw merged 1 commit into
release/v3.8.26from
feat/gate-coverage-floors-tighten

Conversation

@diegosouzapw

Copy link
Copy Markdown
Collaborator

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á emitia coverage.<módulo>.lines para 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 de test:coverage (que mede ~68% global vs ~76.5% do CI mergeado) → pisos bem abaixo do real do CI = zero risco de red. Apertar via --update a partir do 1º run de coverage mergeada que os popule.

#4 — Wiring do require-tighten (Fase 6A.5)

A flag --require-tighten existia em check-quality-ratchet.mjs mas nunca era invocada no CI. Wirada no job quality-gate como 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.* recebem tightenSlack (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 o continue-on-error do step.

Validação

  • baseline JSON válido (19 métricas, 8 per-módulo) · ci.yml YAML válido.
  • require-tighten: passa quando métricas==baseline; reporta quando uma métrica melhora (ex.: eslintWarnings 3669→3600 → "rode --update"); tightenSlack absorve o gap de cobertura.

Config/CI apenas — sem código de produção. Não gera versão.

… (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.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@diegosouzapw
diegosouzapw merged commit e9d7898 into release/v3.8.26 Jun 15, 2026
2 checks passed
@diegosouzapw diegosouzapw mentioned this pull request Jun 16, 2026
@diegosouzapw
diegosouzapw deleted the feat/gate-coverage-floors-tighten branch June 17, 2026 00:54
tkgo11 pushed a commit to tkgo11/OmniRoute that referenced this pull request Sep 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant