You'll noticeTier: how much it should matter to you
4Useful: my rating, 1 to 5
2Signal: worth watching, 1 to 5
Cloud SessionsArea: what it touches
ImprovementsKind: in v2.1.236,
What probably matters to youSection of the release
What
Fetching the model list and switching models on a cloud session are both waits you can now escape from instead of watching a spinner indefinitely. The picker shows a cancellable line with an escape shortcut while it loads, the underlying request carries an abort signal and a timeout, and cancelling gives you a specific message telling you what to do next rather than a generic failure.
Details
While the list loads the picker shows Loading models from the cloud session… with an escape shortcut, and cancelling aborts the in-flight request and records a cancelled outcome.
Cancelling a wait for the model list produces "Stopped waiting for the cloud session's model list — run /model again, or pass a model name, e.g. /model sonnet", which sits alongside the existing "Couldn't load the model list from the cloud session" message that still covers an outright failure.
Cancelling a wait for a model switch shows Stopped waiting for the cloud session and tells you a notice will still arrive if the switch lands.
Both cancellations record a remote_wait_cancelled outcome on the model-switch telemetry event.
A switch rejected after you have already cancelled is suppressed rather than surfaced as an error, and a model-list response that arrives after an abort is discarded.
Timeouts for control requests, the messages Claude Code sends to a cloud session and waits on, are now chosen per request type instead of through one special case for side questions.
The timeout message dropped its [RemoteSessionManager] prefix and now reads as the control request name plus the elapsed seconds.
Passing a model name directly, as in /model sonnet, skips the fetch entirely.
Evidence
Loading models from the cloud session\u2026, Stopped waiting for the cloud session, Stopped waiting for the cloud session’s model list — run /model again, or pass a model name, e.g. /model sonnet, control_request '${e}' got no response after ${t / 1000}s
Strings lifted out of the shipped bundle, so the claim above can be checked against them.
The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.
Confirmed sinceAnthropic's documentation has since written up /model, on All settings.Cap the [effort level](/docs/en/model-config#adjust-effort-level) a session can use, leaving lower levels available. Any higher level runs at the cap instead, including one from `/effort`, the `/model` picker, `--effort`, [`CLAUDE_CODE_EFF…settings-referencesee the edit
Added sinceA small documentation edit on Agent SDK reference - TypeScript touched a line naming /model after this was published.`effortLevel` accepts an [effort level](/docs/en/model-config#adjust-effort-level) name. It also accepts `"ultracode"`, which requests `xhigh` effort with [ultracode](/docs/en/workflows#let-claude-decide-with-ultracode) on. `applyFlagSetti…agent-sdk/typescriptsee the edit
How sure we are
Two sources agreeTwo things we can check say the same as this entry.
Anthropic's documentation agreesA small documentation edit on Agent SDK reference - TypeScript touched a line naming /model after this was published.
Anthropic's release notes agreeAdded ANTHROPIC_DEFAULT_MODEL environment variable: sets the model new sessions start on, while a /model pick still overrides it and…