Files
oh-my-pi/packages/catalog/test
roboompandcan1357 47cc464962 fix(catalog): retired stale Claude 4.6 wire ids and healed the bundled Sonnet route
Follow-up to #3071 review (codex + @PGupta-Git): the family rewrite alone
did not heal users running off the bundled catalog or stale SQLite cache
rows, which still routed Sonnet 4.6 thinking efforts to the 404
`claude-sonnet-4-6-thinking` wire id. `collapseEffortVariants` treats
those collapsed snapshots as authoritative and `refreshCollapsedThinking`
exits early for families without `effortBudgets` (Claude pairs), so the
new empty routing in the hand table never reached the snapshot.

- Declared the dead wire ids as `retiredMembers` on the Claude 4.6
  families (`claude-sonnet-4-6-thinking` on the Sonnet family,
  `claude-opus-4-6` on the Opus family). This triggers
  `reconcileRetiredRouting` to rewrite every `effortRouting` entry that
  targets a retired id to a live wire id (Sonnet falls back to the bare
  member; Opus falls back to `-thinking`).
- Refreshed the bundled `packages/catalog/src/models.json` Sonnet 4.6
  entry so fresh installs do not boot with the dangling routing — the
  surgical diff matches what the generator would emit; the rest of the
  catalog is left untouched to keep the bug-fix PR scoped.
- Added regression tests in `variant-collapse.test.ts` for both
  reconciliation paths and a bundled-catalog test
  (`issue-3067-repro.test.ts`) that pins the live-wire-id resolution end
  to end through `buildModel` for every effort tier.

Fixes #3067
2026-06-19 22:25:48 +02:00
..