Replies: 1 comment
|
Update on #8652: the notice half landed independently in #9135 (SDK 0.3.260 declares The PR is now server-only. Instead of greying restricted rows out, the Claude provider leaves them out of its model list, which is what Claude Code's own |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
On an account whose organization restricts a model, T3 Code offers that model as selectable, runs a different one, and keeps showing the restricted name. In my case, I have a personal Claude Sub, and a Claude Sub with my university (The Org in this case). My University restricts Fable and causes a minor nit: semi silent fallback where it's not obvious it falls back, and imo i think if an org restricts a model it should just grey it out.
Claude Code does not fail a request for a model the org has disallowed. It swaps in the org default and mentions the swap partway through the turn. T3 Code never read that state, so with Fable 5 restricted:
system:informational, which the pinned SDK 0.3.170 does not declare.Reproduced on CLI 2.1.228, well past the 2.1.169 version gate for Fable 5:
One thing worth flagging for anyone else looking at this. The obvious signal is wrong. Treating "absent from the SDK init model catalog" as restricted looks correct and is not, because that catalog is the CLI's curated picker list.
claude-fable-5is absent and restricted.claude-opus-4-8is also absent and runs normally. Keying on absence greys out working models. The reliable signal ismodelAccessCachein.claude.json, where Claude Code stores resolved per-model entitlements and greys its own/modelrows out from.I opened #8652 with a fix that reads those entitlements during the existing capabilities probe and disables restricted rows with a reason, plus handling for the
informationalsubtype so the substitution notice stops surfacing as an unknown subtype. Reading fails open, so a missing or malformed cache restricts nothing.Happy to change the approach or drop it if you would rather solve this a different way. Mostly I wanted the behavior on record, since a silent model swap is easy to miss and hard to attribute when it happens.
All reactions