You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`resolve_model_switch` ends in a deliberate permissive fallthrough: an id
matching no configured alias and no known model family returns `Keep`,
which is what lets `/model claude-opus-6` work on release day. #826
narrowed the trap to genuinely unknown strings rather than closing it, on
purpose, and that stays.
But `Keep` is also what `/model off` gets, and reaching for `off` is a
natural slip — it is a valid argument to both `/effort off` and `/agent
off`, and `/model` has no "go back". It reported success and left
`session.model = "off"`, with nothing said until the next request 400s.
Keep applying it, and say so. The unrecognised case now returns its own
`ModelSwitch::KeepUnrecognized`, carried through to `ModelRoute::Active {
model, recognized }`, and `/model` appends one clause:
switched to model: off (unrecognised — your provider may not serve it)
The clause never fires on a configured alias, an exact pin, the
gateway-dialect rule, or an id whose family `model_family` knows, so in
practice it fires on typos and on genuinely new models. It asserts
RECOGNITION, not validity — only the provider knows whether an id is
servable, and the two come apart for a new-but-valid id — so the
consequence stays conditional. Same clause on the ACP `/model` path.
0 commit comments