Repository navigation
chore(catalog): retire claude-sonnet-4-5 picks ahead of its Nov 30 retirement - #35
Merged
Merged
Conversation
…tirement claude-sonnet-4-5 was deprecated 2026-09-30 and retires 2026-11-30 — any preset still offering it fails to launch after that date. Four entries in both src/shared/modelCatalog.json (baked) and docs/model-catalog.json (the remote overlay fetched at runtime — the two are seeded from each other and a test enforces they stay in sync) referenced it: - opencode: anthropic/claude-sonnet-4-5 -> anthropic/claude-sonnet-5-5 - opencode: openrouter/anthropic/claude-sonnet-4.5 -> openrouter/anthropic/claude-sonnet-5.5 - crush: anthropic/claude-sonnet-4-5 -> anthropic/claude-sonnet-5-5 - pi: anthropic/claude-sonnet-4-5 -> anthropic/claude-sonnet-5-5 - copilot: claude-sonnet-4.5 -> claude-sonnet-5.5 - copilot: claude-sonnet-4 (plain, no point version) -> DROPPED, no verified current entry under this id anywhere; it predates even claude-sonnet-4-5 and was already gone from every catalog checked Each id/naming-convention verified against the live models.dev registry (the shared backing catalog opencode/crush/pi/openrouter/github-copilot all publish through) rather than guessed: anthropic (native): claude-sonnet-5-5, released 2026-09-28 openrouter: anthropic/claude-sonnet-5.5, released 2026-09-28 github-copilot: claude-sonnet-5.5, released 2026-09-28 opencode's own local model cache (~/.cache/opencode/models.json) and its `opencode models` command were both unusable for direct verification — the cache predates this release (mtime Aug 25, missing several other models already live by 09-28) and the command hit a local sqlite lock — so opencode/crush/pi were verified via the same upstream models.dev registry all three consume, using opencode's identical anthropic/<id> namespacing (confirmed against its own stale cache) to carry the convention across to crush and pi, which are not installed locally to query directly. That provenance distinction — direct verification for anthropic/openrouter/ github-copilot vs upstream-registry inference for crush/pi's exact slug — is worth a second look if either ships something unexpected. test/model-catalog.test.cjs: updated the pinned SHIPPED fixture to the new ids/labels (it asserts the picker offers exactly what the catalog names, by design — this is the intended failure mode, not something to route around) and added a cheap, durable oracle: no preset may offer any id matching a retired-id pattern, independent of which model it gets retired to next. Full suite + both typecheck targets green; the pre-existing 65-failure set (network/sandbox-dependent) is byte-for-byte unchanged against a clean clone of the exact base commit (669739e = fork theme/sixth-history tip, PR #33 + #34 merged).
🚫 This PR is missing its before/after evidenceEvery pull request here has to show its work. Screenshots or a short screen recording, before the change and after it.
How to fix it: edit the description, keep the A bug fix with no visible surface still needs it: show the failing behaviour, then the same steps passing. A terminal recording is fine. Genuinely nothing to show — a CI tweak, a typo, a dependency bump? A maintainer can apply the |
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.
claude-sonnet-4-5was deprecated on 2026-09-30 and retires on 2026-11-30. Presets that still offer it fail to launch after that date.Changes:
src/shared/modelCatalog.jsonanddocs/model-catalog.json(remote overlay, kept in sync by test): opencode, crush, pi and copilot Sonnet 4.5 entries move to the Sonnet 5.5 ids verified against the models.dev registry; the plain copilotclaude-sonnet-4entry is dropped (no current entry under that id anywhere).test/model-catalog.test.cjs: fixture updated; new oracle asserts no preset offers a retired id.Note: the crush and pi slugs are inferred from the shared registry namespace, not from the installed CLIs. Catalog tests pass (27/0); full suite unchanged against base 669739e.