Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.220 Home All releases olderv2.1.219 v2.1.221newer
Claude Code v2.1.220

Opus 5 is skipped when the client cannot see model entitlements

You'll notice
Useful3 Signal0
Model Fallback

If your session has no model access info cached, Claude won't fall back to Opus 5.

What

A new predicate detects sessions where Claude Code has no entitlement data at all, and the Opus lineup walk used for refusal fallback filters Opus 5 out in that state.

Details
  • isEntitlementOverlayUnavailable returns true when the provider is first-party, an OAuth token is stored, the profile scope is absent, no Anthropic API key is set, and the cached model-access list is empty.
  • A helper combines that predicate with a canonical-name check against "claude-opus-5"; the candidate scan becomes .find((n) => N1e(lo(n)) && !u2c(n) && r(n)), and a sibling helper substitutes "claude-opus-4-8" in its place.
  • No remote flag is involved. It is driven purely by runtime auth and cache state, so a first-party OAuth session with an empty entitlement cache will not auto-pick Opus 5 as a fallback target.
Evidence

isEntitlementOverlayUnavailable

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

See this entry in the whole of v2.1.220 →