Skip to content

chore(catalog): retire claude-sonnet-4-5 picks ahead of its Nov 30 retirement - #35

Merged
aaroncoville merged 1 commit into
theme/sixth-historyfrom
chore/retire-sonnet-4-5-catalog
Oct 1, 2026
Merged

aaroncoville merged 1 commit into
theme/sixth-historyfrom
chore/retire-sonnet-4-5-catalog

Conversation

@aaroncoville

Copy link
Copy Markdown
Owner

claude-sonnet-4-5 was 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.json and docs/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 copilot claude-sonnet-4 entry 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.

…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).
@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

🚫 This PR is missing its before/after evidence

Every pull request here has to show its work. Screenshots or a short screen recording, before the change and after it.

  • Before — no image or video under that heading
  • After — no image or video under that heading

How to fix it: edit the description, keep the ### Before and ### After headings from the template, and drag an image or video under each. GitHub uploads it inline. This check re-runs the moment you save.

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 no-visual-change label. Please don't ask unless it truly has no observable effect.

📖 CONTRIBUTING.md → Evidence is mandatory

@aaroncoville
aaroncoville merged commit 5c1b91b into theme/sixth-history Oct 1, 2026
1 check failed
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