Skip to content

fix(quality): base-red pair — stryker tap registration + turn-pin suites aligned to the window gate - #12255

Merged
diegosouzapw merged 3 commits into
release/v3.8.51from
fix/release-v3.8.51-basered-stryker-tap
Sep 1, 2026
Merged

diegosouzapw merged 3 commits into
release/v3.8.51from
fix/release-v3.8.51-basered-stryker-tap

Conversation

@diegosouzapw

@diegosouzapw diegosouzapw commented Sep 1, 2026 •

Copy link
Copy Markdown
Collaborator

Base-red fix (PR própria, conforme a regra base-green — nunca na feature branch que herda o red). Dois reds da base, mesma origem: a onda de merges da campanha (#10379) entrou DEPOIS do fork da #12247, criando um conflito semântico invisível ao git.

  1. check:mutation-test-coverage --strict vermelho: as suítes native-codex-turn-pin-* cobrem o turn-pin e circuitBreaker.ts mas não estavam em tap.testFiles do stryker.conf.json. Registradas → ✓ No drift (4728 test files).
  2. Unit shards 3/4 e 4/4 vermelhos no tip: as mesmas suítes montavam "provider em cooldown global" com 1 recordProviderCooldown — o contrato pré-feat(sse): wire the PROVIDER_PROFILES window gate into the global provider cooldown #12247. Com o window gate (decisão do dono), o provider só conta como cooling após providerFailureThreshold falhas na janela; o setup agora faz o loop até o threshold do perfil (mesmo alinhamento da suíte legada do tracker na feat(sse): wire the PROVIDER_PROFILES window gate into the global provider cooldown #12247).

Varredura de irmãos (lição da auditoria — red vem em cluster): as 7 suítes que tocam recordProviderCooldown passam 60/60 na árvore tip+fix.

…estFiles

The mutation-test-coverage gate (--strict) fails on the release tip: the two
native-codex-turn-pin suites (#10379 merge wave) cover open-sse turn-pin code
and src/shared/utils/circuitBreaker.ts but were not listed in
stryker.conf.json tap.testFiles, so their mutant kills would not count. Adds
both files; the gate now passes clean (4728 test files scanned, no drift).
The two native-codex-turn-pin suites landed via the #10379 merge wave after
PR #12247 forked, so #12247's green CI never saw them: they set up 'provider
in global cooldown' with a single recordProviderCooldown call, the pre-#12247
contract. Since the window gate, a provider only counts as cooling after
providerFailureThreshold failures inside the window — the setup now loops to
the profile threshold (same alignment the tracker's own legacy suite got in
Sibling sweep: all 7 suites touching recordProviderCooldown pass (60/60).
@diegosouzapw
diegosouzapw force-pushed the fix/release-v3.8.51-basered-stryker-tap branch from 58da3ba to 889a898 Compare September 1, 2026 05:13
@diegosouzapw diegosouzapw changed the title chore(quality): register native-codex-turn-pin tests in stryker tap.testFiles fix(quality): base-red pair — stryker tap registration + turn-pin suites aligned to the window gate Sep 1, 2026
@diegosouzapw
diegosouzapw merged commit 6c93e74 into release/v3.8.51 Sep 1, 2026
21 checks passed
diegosouzapw added a commit that referenced this pull request Sep 7, 2026
…ments, cover every cycle commit, credit every contributor (#12971)

Mid-cycle reconciliation of `## [3.8.51]` against the full cycle range
`release/v3.8.50..release/v3.8.51` (0915890..d6f3150, 696 non-merge commits):

- fold the 366 `changelog.d/` fragments into the section (features had been
  landing under `[Unreleased]` because the aggregator appends at the FIRST
  matching heading) and delete them
- drop 25 fragments that duplicate bullets already shipped in `[3.8.50]` /
  `[Unreleased]` (six phantom fragments re-added by branches cut before the
  v3.8.50 aggregation; 19 pre-cycle PR fragments)
- generate one bullet per cycle commit that had no fragment (350 commits:
  44 features / 196 fixes / 91 maintenance, 17 Dependabot bumps rolled up),
  carrying the merged PR link and `— thanks @author`
- credit audit: link every fragment to the PR that actually landed it
  (`git log --diff-filter=A`), fix three `#PR_NUMBER` placeholders and two
  misnumbered fragments (#11845, #11864), credit the recreated PRs to their
  original authors (#11887–#11892 → @MumuTW, #12255 → @backryun,
  #11771 → @Rahulsharma0810), the nine hartmark co-authored fixes, and the
  deleted PR #11370 to @kriptoburak
- add the "Release by the numbers" block, the Top-25 ranking (mailmap +
  GitHub login) and the mandatory `### 🙌 Contributors` hall
  (111 external contributors + maintainer, generated by
  `release:contributors --inject`)
- resync the 41 i18n CHANGELOG mirrors

Gates: check:changelog-integrity OK, check:docs-sync PASS.
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…tes aligned to the window gate (cheaper-inference#12255)

* chore(quality): register native-codex-turn-pin tests in stryker tap.testFiles

The mutation-test-coverage gate (--strict) fails on the release tip: the two
native-codex-turn-pin suites (cheaper-inference#10379 merge wave) cover open-sse turn-pin code
and src/shared/utils/circuitBreaker.ts but were not listed in
stryker.conf.json tap.testFiles, so their mutant kills would not count. Adds
both files; the gate now passes clean (4728 test files scanned, no drift).

* style: prettier pass on stryker.conf.json

* test(sse): align turn-pin suites to the provider-cooldown window gate

The two native-codex-turn-pin suites landed via the cheaper-inference#10379 merge wave after
PR cheaper-inference#12247 forked, so cheaper-inference#12247's green CI never saw them: they set up 'provider
in global cooldown' with a single recordProviderCooldown call, the pre-cheaper-inference#12247
contract. Since the window gate, a provider only counts as cooling after
providerFailureThreshold failures inside the window — the setup now loops to
the profile threshold (same alignment the tracker's own legacy suite got in
Sibling sweep: all 7 suites touching recordProviderCooldown pass (60/60).
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…ments, cover every cycle commit, credit every contributor (cheaper-inference#12971)

Mid-cycle reconciliation of `## [3.8.51]` against the full cycle range
`release/v3.8.50..release/v3.8.51` (104d4f8..8da2a33, 696 non-merge commits):

- fold the 366 `changelog.d/` fragments into the section (features had been
  landing under `[Unreleased]` because the aggregator appends at the FIRST
  matching heading) and delete them
- drop 25 fragments that duplicate bullets already shipped in `[3.8.50]` /
  `[Unreleased]` (six phantom fragments re-added by branches cut before the
  v3.8.50 aggregation; 19 pre-cycle PR fragments)
- generate one bullet per cycle commit that had no fragment (350 commits:
  44 features / 196 fixes / 91 maintenance, 17 Dependabot bumps rolled up),
  carrying the merged PR link and `— thanks @author`
- credit audit: link every fragment to the PR that actually landed it
  (`git log --diff-filter=A`), fix three `#PR_NUMBER` placeholders and two
  misnumbered fragments (cheaper-inference#11845, cheaper-inference#11864), credit the recreated PRs to their
  original authors (cheaper-inference#11887–cheaper-inference#11892 → @MumuTW, cheaper-inference#12255 → @backryun,
  cheaper-inference#11771 → @Rahulsharma0810), the nine hartmark co-authored fixes, and the
  deleted PR cheaper-inference#11370 to @kriptoburak
- add the "Release by the numbers" block, the Top-25 ranking (mailmap +
  GitHub login) and the mandatory `### 🙌 Contributors` hall
  (111 external contributors + maintainer, generated by
  `release:contributors --inject`)
- resync the 41 i18n CHANGELOG mirrors

Gates: check:changelog-integrity OK, check:docs-sync PASS.
@diegosouzapw
diegosouzapw deleted the fix/release-v3.8.51-basered-stryker-tap branch October 18, 2026 23:50
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