Skip to content

docs(ci): correct mutation-gate note (no regression — stryker -c gotcha) + Task 12 spike GO - #4138

Merged
diegosouzapw merged 1 commit into
release/v3.8.29from
chore/mutation-toolchain-fix
Jun 18, 2026
Merged

diegosouzapw merged 1 commit into
release/v3.8.29from
chore/mutation-toolchain-fix

Conversation

@diegosouzapw

Copy link
Copy Markdown
Collaborator

Corrige um achado ERRADO que mergeei no #4134 + registra o veredito real do spike Task 12.

O que estava errado

O #4134 incluiu docs/ops/MUTATION_GATE_STRYKER_REGRESSION.md afirmando uma "regressão da OptionsValidator do Stryker 9.6.1" que faria npx stryker run falhar na validação de config. Isso está errado — não há regressão. Foi erro meu de CLI:

  • npx stryker run -c stryker.conf.json → no CLI do Stryker, -c é --concurrency (não config-file). Isso setava concurrency = "stryker.conf.json" (string), causando o falso concurrency must match pattern. O Stryker carregava o config real via auto-discovery, então parecia config quebrado.
  • Provei instrumentando o OptionsValidator num npm ci limpo isolado: options.concurrency === "stryker.conf.json". Rodando sem -c, npx stryker run --dryRunOnly valida e instrumenta 15488 mutantes nos 8 módulos — gate saudável.

Veredito real do spike Task 12 — GO (Plan A, killedBy)

Rodei um spike escopado em open-sse/utils/error.ts (2 testes cobridores), CLI correto (npx stryker run <config-posicional>), toolchain v3.8.29 (Stryker 9.6.1 + ajv 8.18.0, perTest, tap-runner):

  • 422 mutantes → 86 Killed, 64 Survived, 272 NoCoverage.
  • Todos os 86 killed têm killedBy populado (86/86), com seção testFiles resolvível → atribuição por-teste FUNCIONA (granularidade = arquivo-de-teste, esperado p/ tap-runner). A Onda 2 pode usar killedBy direto.

Mudança

git mv MUTATION_GATE_STRYKER_REGRESSION.md → MUTATION_GATE_SPIKE_VERDICT.md, reescrito com: a correção + o gotcha do -c, o veredito GO com os números, e a nota de que o bloqueador real da Onda 2 é budget (god-files dominam ~⅔ dos 15488 mutantes; nightly conc=4 estourou 180min), não tooling — alvo dos splits da Onda 3.

Docs-only. O fix de base-ref do #4134 (correto) permanece intocado.

…-concurrency); record Task 12 GO

The MUTATION_GATE_STRYKER_REGRESSION.md note shipped in #4134 was WRONG: there is
no Stryker 9.6.1 OptionsValidator regression. The false "concurrency must match
pattern" failure was operator error — `stryker -c <file>` sets --concurrency, not
the config file (which is the positional arg), so concurrency became the string
"stryker.conf.json". `npx stryker run` (auto-discovery) validates and runs fine:
it instruments 15488 mutants across the 8 modules.

Renamed -> MUTATION_GATE_SPIKE_VERDICT.md and rewritten with:
- the corrected record + the `-c` CLI gotcha;
- the real Task 12 per-test spike verdict (GO, Plan A): a scoped run on
  open-sse/utils/error.ts killed 86/422 mutants, ALL 86 with a populated
  `killedBy` resolving to a test file -> per-test attribution works (per-file
  granularity, as expected for the tap-runner). Onda 2 can use killedBy directly.
- the standing Onda-2 blocker is budget (god-files), not tooling.
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@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.

@diegosouzapw
diegosouzapw merged commit 9e5c00d into release/v3.8.29 Jun 18, 2026
4 checks passed
@diegosouzapw diegosouzapw mentioned this pull request Jun 19, 2026
@diegosouzapw
diegosouzapw deleted the chore/mutation-toolchain-fix branch June 19, 2026 12:06
tkgo11 pushed a commit to tkgo11/OmniRoute that referenced this pull request Sep 23, 2026
…-concurrency); record Task 12 GO (cheaper-inference#4138)

The MUTATION_GATE_STRYKER_REGRESSION.md note shipped in cheaper-inference#4134 was WRONG: there is
no Stryker 9.6.1 OptionsValidator regression. The false "concurrency must match
pattern" failure was operator error — `stryker -c <file>` sets --concurrency, not
the config file (which is the positional arg), so concurrency became the string
"stryker.conf.json". `npx stryker run` (auto-discovery) validates and runs fine:
it instruments 15488 mutants across the 8 modules.

Renamed -> MUTATION_GATE_SPIKE_VERDICT.md and rewritten with:
- the corrected record + the `-c` CLI gotcha;
- the real Task 12 per-test spike verdict (GO, Plan A): a scoped run on
  open-sse/utils/error.ts killed 86/422 mutants, ALL 86 with a populated
  `killedBy` resolving to a test file -> per-test attribution works (per-file
  granularity, as expected for the tap-runner). Onda 2 can use killedBy directly.
- the standing Onda-2 blocker is budget (god-files), not tooling.
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