fix(tests): retire claude-3-5-sonnet-20241022 from the combo integration suites - #13056
Conversation
…ion suites Sibling of diegosouzapw#12670. Eight integration suites still targeted the retired claude-3-5-sonnet-20241022, which the vendor lifecycle registry rejects with HTTP 410, so every combo listing it lost that target: 23 cases failed on the release tip for one cause. Replace it with claude-sonnet-4-6, the successor the lifecycle record names and the id chat-pipeline.test.ts already uses. Fixture model id only; no assertion changed, no production code touched.
d893880 to
7247461
Compare
|
Heads up before you merge: I force-pushed after your approval, so the head you verified (
Two things I checked before pushing, so you do not have to re-verify from scratch: The code is identical to what you approved. I rebuilt both commits from There is no Prettier gate to satisfy here anyway. 7 of the 8 files already fail Commit message, authorship and the changelog fragment are unchanged; the force-push used |
|
Thanks @doramirdor — merging via the release merge-train. Validated in local merge-train (.claude/worktrees/merge-train-20260918-111718-suite.log) on the devbox @ train tip 7bb373fba5e241964c0ffb17bd03a804700839bb, boarded with 55 sibling PRs: typecheck:core, file-size, complexity, cognitive-complexity, changelog-integrity green; 747/747 changed-area node:test cases + 476/476 vitest green (fast parity mode — the full suite ran today on the release tip via the base-red train and runs again on the 3b train). Merged --admin per merge-gates §7. |
…ion suites (diegosouzapw#13056) * fix(tests): retire claude-3-5-sonnet-20241022 from the combo integration suites Sibling of diegosouzapw#12670. Eight integration suites still targeted the retired claude-3-5-sonnet-20241022, which the vendor lifecycle registry rejects with HTTP 410, so every combo listing it lost that target: 23 cases failed on the release tip for one cause. Replace it with claude-sonnet-4-6, the successor the lifecycle record names and the id chat-pipeline.test.ts already uses. Fixture model id only; no assertion changed, no production code touched. * docs(changelog): fragment for the retired-fixture cleanup (diegosouzapw#13056)
Summary
Sibling of #12670, which retired dead model ids from
chat-pipeline.test.ts. The same id,claude-3-5-sonnet-20241022, is still theclaude(and, in one suite,anthropic) target in eight other integration suites. The vendor lifecycle registry marks itretired(shut down 2025-10-28, replacementclaude-sonnet-4-6), the pipeline correctly refuses to auto-route it, and every combo that lists it as a target loses that target:That single refusal produces 23 failures on the untouched
release/v3.8.51tip (ba597b6). Two more failures sit in the same suites with unrelated causes; they are listed separately below and are not touched by this PR.combo-matrix/ordered.test.ts502 !== 200), round-robin, least-used, random, strict-random, p2c:claudeis never reachedcombo-matrix/quota-aware.test.tscombo-matrix/weighted.test.tscombo-matrix/fusion.test.tsexpected 3 panel + 1 judge, got 3combo-provider-exhaustion.test.tsanthropic/claudetargets answer 410 instead of the scripted 429combo-routing-e2e.test.tscombo-failover-e2e.test.tsproxy-context-passthrough.test.tsNot caused by the retired id, failing identically before and after this change, left for their own PRs:
combo-matrix/quota-share.test.tsgemini must be selected at least 2 times out of 6; got 0. Full sequence: [openai ×6](fixture is openai + gemini, no claude)combo-routing-e2e.test.tsexpected combo call logs to be persisted(actual: null)The change
One substitution,
claude-3-5-sonnet-20241022→claude-sonnet-4-6, in the eight suites above. That is the successor the lifecycle record names, the idclaude-sonnet-4-6already used bychat-pipeline.test.tssince #12670, and it is live in theclaudeprovider registry. The_comboRoutingHarnessrecording fetch keys on the host (api.anthropic.com→claude), not on the model id, so no harness change is needed.No assertion is changed, removed or relaxed. Left alone on purpose:
_chatPipelineHarness.ts'sbuildClaudeResponse()default model string (a response echo, inert for these suites, and #12670 left it too) andplayground-improve-prompt.test.ts(sends the id as a direct request model, not auto-routed, passes today).One observation for a maintainer, not changed here: the
anthropicregistry lists this model asclaude-sonnet-4.6(dotted) while the lifecycle replacement and theclauderegistry sayclaude-sonnet-4-6(dashed). The fixtures follow the lifecycle spelling.Related Issues
nadirrouter strategy for prompt-aware model choice #13051 (where these failures were first written up)Validation
Change type: routing tests only (
tests/integration/**), no production code.npm run lint(eslint on the eight files, zero findings). Deliberately not Prettier-formatted: 7 of the 8 files already failprettier --checkat the pinned3.9.6on the untouchedba597b6, so running the formatter here would add unrelated churn to a fixture-only change.release/v3.8.51, tipba597b6)Run with the CI invocation (
setupPolyfill+isolateDataDir+--test-force-exit --test-concurrency=1):Same caveat as #12670: without
--import ./tests/_setup/isolateDataDir.tsthese suites hit the developer's real~/.omniroutedatabase.Tests Added Or Updated
tests/integration/combo-matrix/ordered.test.tstests/integration/combo-matrix/weighted.test.tstests/integration/combo-matrix/fusion.test.tstests/integration/combo-matrix/quota-aware.test.tstests/integration/combo-routing-e2e.test.tstests/integration/combo-failover-e2e.test.tstests/integration/combo-provider-exhaustion.test.tstests/integration/proxy-context-passthrough.test.tsFixture model id only; no production code changed.
Coverage Notes
No
src/,open-sse/,electron/orbin/file changed. Coverage can only go up: 23 integration cases that were failing now exercise their intended paths again.Reviewer Notes
weightedmatrix case alone spent ~187 s retrying the dead target before failing; that is a plausible contributor to the integration gate's 2400 s ceiling deaths mentioned in fix(tests): retire dead model ids from the chat-pipeline integration suite (base-red #12581) #12670. That retry loop disappears with the fix.openaiand never togeminieven with two equal-weight connections, and the fixed-accounts case never sees its combo call-log row. Both reproduce on the untouched base with the same assertion text, so neither is masked or introduced here. I did not investigate them beyond that.