Repository navigation
fix(anthropic): send dashed model ids upstream for the dotted catalog ids - #16425
Merged
diegosouzapw merged 1 commit intoOct 13, 2026
Conversation
diegosouzapw
merged commit Oct 13, 2026
4d64bcc
into
cheaper-inference:release/v3.8.52
30 of 51 checks passed
4 tasks done
This was referenced Oct 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes the first part of #16406. The first-party
anthropicregistry (and/v1/models) lists dotted ids (claude-haiku-4.5,claude-sonnet-4.6,claude-opus-4.6, …), but the Anthropic Messages API only accepts the dashed form.PROVIDER_MODEL_ALIASEShad noanthropicentry, so the dotted id went upstream unchanged and 404ed, or was served by an older model through model-family fallback while the response still named the requested one.open-sse/services/modelCanonicalization.ts: adds ananthropicalias entry mapping the seven dotted ids to their dashed equivalents (the list from the issue).open-sse/handlers/chatCore/claudeEffortVariant.ts: when an effort suffix is stripped (claude-opus-4.7-high), the base id is now passed through the same provider alias. Without this, the suffixed variants the issue mentions would still go upstream dotted, because the id is aliased before the suffix is split.Dashed ids, other providers, and the existing
kiroandzed-hostedaliases (dashed → dotted) are unchanged.Related Issues
claude-haiku-4.5) are sent upstream verbatim → 404, silent downgrade to another model, and connection-wide lockout #16406. The two follow-ups in that issue are not addressed here: reporting the model that actually served a fallback, and locking only the model (not the connection) on a model-not-found 404. They look like separate design decisions, so I left them for a maintainer call.Validation
chatcore-claude-effort-variant,claude-effort-suffix-strip,claude-effort-variants,kiro-model-aliases,model-alias-*,models-catalog-*,antigravity-model-aliasesand the zed-hosted tests (156 pass)eslintandprettier --checkon the changed filesrelease/v3.8.52Tests Added Or Updated
tests/unit/anthropic-dotted-model-ids-16406.test.ts: alias resolution for all seven ids, routing throughgetModelInfoCore(anthropic/<dotted>→ dashed model), that dashed ids and the kiro direction are untouched, and the effort-suffix case. Three of the four tests fail without the change.changelog.d/fixes/0000-anthropic-dotted-model-ids.md.Coverage Notes
Reviewer Notes
anthropic/claude-opus-4.5is routed by an older legacy alias to theclaudeprovider asclaude-opus-4-5-20251101, so it never reaches the new table. The test skips it and says why. The entry is kept so the table matches the registry and the issue's list.npm run lintlocally; CI runs them.