The claude-thinking-legacy-alias pattern previously matched both
claude-opus-4-6-thinking and claude-opus-4-7-thinking and mapped
them to claude-opus-4-7. After models.dev started shipping
claude-opus-4-6-thinking as a real canonical model (e.g.
302ai/claude-opus-4-6-thinking), the pattern collides with the
snapshot and trips the pattern-alias-collides-with-snapshot
guardrail in collectModelCapabilityGuardrailIssues, which is what
has been failing the refresh-model-capabilities cron since
2026-04-20.
Tightening the regex to only match claude-opus-4-7-thinking
preserves the legacy-id rewrite for the still-non-canonical
4-7-thinking form while letting 4-6-thinking resolve to itself.
Refs #3635
Addresses review feedback on #3486:
1. claude-thinking-legacy-alias now matches both claude-opus-4-6-thinking
and claude-opus-4-7-thinking, canonicalizing both to claude-opus-4-7.
The previous diff retargeted the regex to 4-7 only, which dropped
backward compatibility for users still pinned to the 4-6 thinking
suffix.
2. MODEL_TO_CATEGORY_MAP keeps the claude-opus-4-6 to unspecified-high
entry alongside the new 4-7 entry. The map is order-independent from
MODEL_VERSION_MAP, so preserving the 4-6 key avoids relying on a
specific migration ordering for legacy agent configs.
3. Fix stale 'Claude Opus 4.6' labels and BDD test comments that the
sed-based bump missed.
Updates the canonical Anthropic Opus model in every fallback chain
(sisyphus, oracle, prometheus, metis, momus, visual-engineering,
ultrabrain, deep, artistry, unspecified-high), the unspecified-high
category default, the think-mode HIGH_VARIANT_MAP, the Claude Code
alias map, the claude-thinking legacy alias, the context-limit GA
regex, and event.ts fallback strings.
Widens supportsCachedAnthropicLimit to accept both claude-*-4-6 and
claude-*-4-7 so the 1M context cache still applies across the bump.
Regenerates the bundled model-capabilities snapshot from models.dev
and the model-fallback snapshot to match the new source output.