Version 2.1.316 landed on October 31. Per the official changelog, it has a handful of additions, six changes, five improvements and 34 bug fixes. I have not run it. Everything below is the changelog’s claim, not my measurement. The changelog page is over a million characters long and I read only the first 100K, which covered this release in full.
The one with a date: fast mode on Opus 4.8#
The change that deserves a calendar entry:
Fast mode for Opus 4.8 is deprecated as of October 30, 2026 and will be removed on November 30, 2026. After removal, fast mode requests on Opus 4.8 return an error instead of falling back. Migrate to Opus 5.5 to keep the speedup.
Note the word error. A silent fallback to standard speed would be a performance regression you’d notice in a dashboard. A hard error is a broken script. If you have CI jobs, scheduled routines or wrapper scripts that pin Opus 4.8 and enable fast mode, you have until November 30 to move them. The changelog’s recommended path is Opus 5.5.
Practical checklist:
grepyour repos and dotfiles for fast-mode settings combined with an Opus 4.8 model pin.- Check any managed settings pushed to your team for the same combination.
- Test the Opus 5.5 migration on one pipeline first. A model change affects behaviour, not just speed, so treat it like any other dependency bump.
This is the normal lifecycle of a model: roughly a month’s notice here. It’s a good argument for not hard-pinning model names in places nobody reads.
Subagent effort, finally explicit#
CLAUDE_CODE_SUBAGENT_EFFORT sets the effort level subagents run at “when nothing else specifies one.” That last clause matters: it’s a default, not an override. A subagent definition or an Agent-tool call that sets its own effort still wins.
Why care? Fan-out workflows multiply cost. If your orchestrator runs at high effort, you probably don’t want ten exploratory subagents doing file searches at the same level. Together with the earlier autoCompactWindow and CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL controls, you now have three dials for subagent spend: model, context window and effort. A sensible starting point is a lower subagent effort for read-only exploration, with your main session reserved for planning and review. I haven’t benchmarked that split, so measure it on your own repos.
A companion change: CLAUDE_CODE_DISABLE_ULTRATHINK turns off the ultrathink keyword. If you remember, v2.1.311 made ultrathink map to xhigh effort. Typing a magic word that raises cost is fine for one developer; for a team with budgets, being able to disable it is a sane guardrail. In VS Code, ultrathink now runs at xhigh and shows a rainbow in the chat box.
Apps gateway: pooled budgets and layered policy#
For admins running the Claude apps gateway, three things stand out:
- Pooled group budgets. A monthly budget shared by a group’s members, set with
pooled_budgeton the spend limits admin API. Per-user caps are blunt; a pool lets a heavy week for one engineer be absorbed by a light one for another. managed.policy_mode: layered. Applies every matching policy, each merged over the ones below. Previously, as I read it, you had to think about which single policy matched; layering makes group-plus-org policy composition easier, but also makes it harder to reason about the effective result. Test with a user who belongs to several groups.guardrail.input_taggingon Bedrock upstreams. Wraps prompts in the input tags Bedrock guardrail prompt-attack filters need. If you’ve turned on Bedrock guardrails and noticed the prompt-attack filter doing nothing useful, this is the likely reason and fix.
There’s also a bug fix worth flagging: the gateway wasn’t checking every requested model against availableModels, deniedModels and models. If you rely on deniedModels as a control, that is a policy-enforcement gap that is now closed. Upgrade, and re-verify your deny list with a request you expect to be rejected.
Security-relevant changes#
Several items are quietly the most important in the release:
- Server-managed settings for Team and Enterprise logins now apply without an approval prompt, and a stored copy that fails verification is refused. Less friction for legitimate admin policy, and a tamper check on the cached copy.
--restrictedsessions were uploading files outside the working directories. That is exactly what the flag is supposed to prevent. Fixed.- PowerShell hooks didn’t block on exit code 2 in some command forms. A hook that is supposed to block but doesn’t is a fail-open bug. If you wrote policy hooks for Windows teams, upgrade and retest them.
- Auto mode: an
autoMode.allowlist without"$defaults"no longer removes the built-in rule on scheduled-task prompts. So custom allow lists no longer accidentally strip a default protection for scheduled runs. - Leftover shell commands on macOS and Linux after Claude Code exits are fixed. Orphaned processes in agent sessions are an unglamorous but real source of resource leaks and surprises.
Smaller things#
CLAUDE_CODE_DISABLE_LOOPED_CROSS_CERT_DROPkeeps system cross-certificates that certify each other in a loop. Relevant mostly to corporate TLS-inspection setups.- SSL certificate errors now name likely causes, such as a missing intermediate certificate. Anyone who has debugged a proxy at 6pm will appreciate this.
/diffruns about one fewer full-repository git command per refresh on large repositories.- Clearer messages when no GitHub remote is found.
- Code Review analytics gets a findings-by-severity card, and
/code-reviewstarted from the Code tab or web shows the findings card. - Cloud sessions: a form card for MCP form requests, a “Catching up…” line when switching back, and Enterprise members can add and delete network secrets on their own environments.
- Claude Tag: the Slack channel “Respond automatically” switch is replaced by a “How Claude participates” choice.
- Prompts containing invisible characters no longer need a second Enter to send.
What I’d do this week#
- Search for Opus 4.8 + fast mode pins and schedule the Opus 5.5 migration before November 30.
- Decide a default for
CLAUDE_CODE_SUBAGENT_EFFORTand set it in managed settings if you run fan-out workflows. - If you run the apps gateway, update it and verify
deniedModelsactually denies. - Re-test any Windows PowerShell blocking hooks.
The take#
Nothing here is flashy, and that’s the point. A deprecation with a real deadline, cost dials for the agent swarm, and a cluster of fail-open fixes: this is what a terminal-native agent looks like when organisations actually run it at scale. Compare that with an IDE wrapper where the “policy” is whatever the vendor’s settings page exposes. The caveat remains: this is a changelog read, not a test. Verify the behaviour in a sandbox before you rely on it.


