Skip to content

fix(release): drain v3.8.52 tip unit reds (catalog/translator) - #15903

Merged
diegosouzapw merged 1 commit into
release/v3.8.52from
fix/release-v3.8.52-basereds-1008g
Oct 8, 2026
Merged

diegosouzapw merged 1 commit into
release/v3.8.52from
fix/release-v3.8.52-basereds-1008g

Conversation

@diegosouzapw

Copy link
Copy Markdown
Collaborator

Drains 9 unit-test files that are red on the pure release/v3.8.52 tip (clean npm ci, 86e3eb56).

Per failure

Test file Cause Class Change
combo-responses-sse-failure-fallback (3 request-scoped refusal tests) #13603: the family-sibling hop runs on every quality failure, so a request-scoped refusal (invalid_request_error, context overflow) on codex/gpt-6-astra-high got replayed on gpt-6-astra-max instead of the combo moving on to the next target. A single-target 400 turned into retries too. (a) production defect executeTargetAttempt.ts: skip the family hop when quality.upstreamFailure.requestScoped. The existing tests are the red-first proof.
cc-discovery-aliases-append #15301 removed the built-in auto/* exclusion on purpose (the resolver now materializes them via createBuiltinAutoCombo). (b) Test now asserts that auto/* combos are mirrored. Bare auto was dropped from the fixture because the resolver only handles auto/.
claude-codex-identity-version-sync (test 7 ×2) #15132 moved the GitHub-catalog fallback after the cache branch. The live branch now persists via persistDiscoveredModels() + buildResponse(). (b) Shared helper with the same invariant (only the live branch persists, the GitHub fallback never does), plus an explicit doesNotMatch(persistDiscoveredModels).
claude-web-sonnet5-registry-6209 #15035 added claude-sonnet-5-5. (b) Added it to the expected set.
ghe-copilot #15478 set targetFormat: "claude" on the GHE Copilot Claude models. (b) Added the field to the expected object.
devin-cli-catalog #15035 corrected Anthropic's Sonnet 5 rate to $2/$10/$0.20/$2.50. (b) Updated the expected Anthropic price. The Devin provider-bound assertions are unchanged.
codex-effort-model-echo-3697 #15310: EOF without a finish_reason now ends as response.failed (stream_early_eof). (b) Fixture now sends a terminal finish_reason: "stop" chunk. All assertions kept.
executor-codex-gpt56 #15710: a parenthesized (ultra) now uses the ultra alias set, and Luna is max-only, so gpt-5.6-luna(ultra) is no longer an alias. (b) The Luna case now uses gpt-5.6-luna(max).
probe-gate-autodisable (codex 429) #15487: an explicit Codex model test syncs an empty account catalog first and returns 503 when the sync fails. (b) Seeds the connection's synced catalog so the probe reaches the 429 under test. All cooldown assertions kept.

Every (b) change has a // contract changed by #N comment. No asserts were removed or loosened, and nothing is skipped.

Validation

  • All 9 files pass, plus every tests/unit file importing services/combo.ts / executeTargetAttempt (155 files total, 0 failures).
  • typecheck:core OK. check:open-sse-typecheck OK (0 errors). ESLint with suppressions OK on the changed files.
  • check-file-size (also re-checked after the commit), check-changelog-integrity, check-complexity, check-test-masking, check-test-discovery: all pass.
  • Changelog fragment: changelog.d/fixes/basereds-1008g.md.

Production fix:
- combo: #13603 family-sibling hop ran on every quality failure, including
  request-scoped streaming refusals (invalid_request / context overflow),
  replaying the refused request on codex/gpt-6-astra-max instead of advancing
  to the next combo target (and turning single-target 400s into retries).
  Skip the hop when upstreamFailure.requestScoped.

Tests aligned to intentional contract changes (each annotated):
- cc-discovery-aliases-append: auto/* combos now mirrored (#15301)
- claude-codex-identity-version-sync: GitHub fallback after cache, live
  branch persists directly (#15132)
- claude-web-sonnet5-registry-6209 / ghe-copilot / devin-cli-catalog:
  Sonnet 5.5 + Sonnet 5 pricing (#15035), GHE targetFormat claude (#15478)
- codex-effort-model-echo-3697: EOF without finish_reason now fails (#15310)
- executor-codex-gpt56: parenthesized (ultra) honors ultra set (#15710)
- probe-gate-autodisable: Codex model test syncs empty catalog first (#15487)
@diegosouzapw
diegosouzapw merged commit 3cdd433 into release/v3.8.52 Oct 8, 2026
12 of 13 checks passed
diegosouzapw added a commit that referenced this pull request Oct 8, 2026
Drains 9 v3.8.52 tip unit reds: 3 production defects — MCP bundle startup deadlock (async ESM init cycle from #13739; lazy-load cleanModelName), client bundles pulling server-only DB via imageRegistry→featureFlags (#15423; dependency-free resolver bridge, DB override preserved, default OFF), zh-CN/zh-TW glossary violations (#15138/#15092) — plus regenerated route namespaces, env-isolated guide-settings test, auth-test alignments that keep (and tighten to count=2) the loopback/management guards, quota-card guard following #15138 redesign, and stryker listing of 2 tip covering tests. Combined-board validation with #15903: 327/329 on the previously red files, typechecks, lint, 22 gates.
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

CI Coverage Report

  • Coverage job: skipped
  • PR test policy: success

Coverage artifact was not available for this run.

@diegosouzapw
diegosouzapw deleted the fix/release-v3.8.52-basereds-1008g branch October 18, 2026 23:51
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