Claude Code 2.1.311: the changes teams and admins need to act on this week

Three Claude Code releases from October 22 to 26 change how ultrathink spends effort, add a network call on Bedrock, Vertex, and Foundry, and break unattended claude ultrareview scripts. Check your egress rules, CI scripts, and effort settings before you upgrade a fleet.

On this page
  1. The changes that matter, at a glance
  2. Ultrathink now changes effort, and effort costs tokens
  3. Cloud-provider users: a new outbound request
  4. CI and scripts: ultrareview trust and sed -i
  5. Fixes that help long and unattended runs
  6. Telemetry and DISABLE_COMPACT
  7. An upgrade checklist
  8. What we didn't verify
  9. Sources

Claude Code ships often, and most releases are safe to take without reading the notes. Versions 2.1.309, 2.1.310, and 2.1.311 are worth a closer look if you run Claude Code for a team, behind a locked-down network, or inside CI. Between them they carry 132 bug fixes, but only a handful of changes alter behavior you may depend on. This piece pulls those out and says what to do about each one.

Everything here comes from Anthropic's changelog and Claude Code docs. We haven't tested these releases against a corporate proxy or a cloud-provider account, so treat the network notes as what the docs say, and confirm them in your own environment.

The changes that matter, at a glance

ChangeVersionWho it affectsWhat to do
ultrathink runs the turn at xhigh effort2.1.311Anyone on Opus 5.5, Sonnet 5.5, Haiku 5.5, or Fable 5.1 through Anthropic's APIExpect longer, more expensive turns when people type it
Model settings load from a signed file on downloads.claude.ai2.1.311Bedrock, Mantle, Vertex, and Foundry usersAllow the host, or set CLAUDE_CODE_MODEL_CATALOG=off
VS Code extension honors VS Code's telemetry setting2.1.311Teams that turn VS Code telemetry offNothing, but note that feature flags stop being fetched too
DISABLE_COMPACT in settings can only turn compaction off2.1.311Anyone layering settings files or modsCheck that no lower layer sets it, if you want compaction on
claude ultrareview requires workspace trust2.1.309CI jobs and scripts that run ultrareviewAdd --trust-workspace
sed -i runs as a normal Bash command2.1.309Anyone who relies on /rewindCommit before letting Claude run bulk sed -i edits

Ultrathink now changes effort, and effort costs tokens

ultrathink has long added an in-context instruction asking for deeper reasoning without touching your effort setting, per the model configuration docs. Since 2.1.311, typed in the interactive terminal, it also changes effort: the changelog says it “run[s] its turn at xhigh effort on Opus 5.5, Sonnet 5.5, Haiku 5.5 and Fable 5.1 through Anthropic's API.” Typed while Claude is already working, it raises the rest of that turn. The rainbow highlight now appears only where the keyword can raise effort, and not when it's quoted or part of a file path.

This matters because of the defaults. According to the same docs, Claude Code supports five effort levels (low, medium, high, xhigh, max), and the 5.5 models default to medium. A single ultrathink jumps a turn two levels. That's what most people who type it want, but on a shared plan or an API budget it moves spending from “a keyword some people like” to “a per-turn setting anyone can raise.”

If you manage costs, set the baseline you want explicitly and let people raise it deliberately:

# per session
claude --effort high

# per machine or CI job
export CLAUDE_CODE_EFFORT_LEVEL=medium

# inside a session
/effort xhigh

Settings files accept effortLevel too, with two catches from the docs: max isn't accepted there, and a top-level effortLevel in your user settings doesn't count for Opus 5.5, which starts at medium unless something else sets it. For Opus 5.5, use the environment variable, the flag, or a per-model level. The ultrathink change is scoped to Anthropic's API, so teams on cloud providers won't see it from this release. Our real cost data piece covers where agent bills grow more generally.

Cloud-provider users: a new outbound request

The change most likely to surprise a platform team is one line in 2.1.311: Claude Code on Bedrock, Mantle, Vertex, and Foundry now loads “model settings from a signed file on downloads.claude.ai.” Set CLAUDE_CODE_MODEL_CATALOG=off to turn it off.

Many companies route Claude Code through Bedrock or Vertex specifically so traffic stays inside their cloud account. If your egress allowlist only permits the provider's endpoints, this request will be blocked. The changelog doesn't say what Claude Code does when the file can't be fetched, and the Bedrock setup page doesn't mention the catalog yet. Pick one of two options before upgrading:

  • Allow it. Add downloads.claude.ai to your proxy allowlist. The changelog says the file is signed.
  • Turn it off. Set CLAUDE_CODE_MODEL_CATALOG=off in your managed settings or the environment your developers launch from, and keep pinning models with the ANTHROPIC_DEFAULT_*_MODEL variables the Bedrock docs already describe.

Either way, decide on purpose. A blocked request that fails quietly today can turn into a confusing model error after a later release starts to depend on the file.

Two related items from 2.1.310: the Monitor tool and plugin monitors now work on Bedrock, Vertex, and Foundry, and Enterprise owners can control cloud sessions and Remote Control access through custom roles.

CI and scripts: ultrareview trust and sed -i

Ultrareview now asks for workspace trust. Since 2.1.309, claude ultrareview asks for trust on a terminal and refuses otherwise. A CI step that worked last week now fails. The fix is a flag that takes no value, so it goes after any PR number or base branch:

claude ultrareview 1234 --trust-workspace

The changelog also documents CLAUDE_CODE_DISABLE_ULTRAREVIEW_TRUST_CHECK=1. Prefer the flag. It keeps the decision visible in the job definition, where reviewers can see it.

sed -i is no longer special. Earlier versions showed sed -i as a simulated file-edit preview. It now gets the standard Bash permission prompt and runs as written, and like other Bash edits it isn't restored by /rewind. If your team relies on rewind as an undo button, have Claude commit or stash before any bulk edit. Rewind was never a backup, and this change narrows what it covers.

Fixes that help long and unattended runs

If you run Claude Code in headless mode, overnight, or in a self-hosted runner, several 2.1.311 fixes remove real failure modes:

  • No more stop at 200K tokens. Standard-context sessions could halt with “Usage credits required for 1M context” when a request ran over 200K tokens. They now compact and continue.
  • Non-retryable errors stay that way. Claude Code was retrying requests the API marked as not retryable, which could hold a turn for minutes or, with CLAUDE_CODE_RETRY_WATCHDOG, indefinitely.
  • Instruction files after compaction. Claude could see stale CLAUDE.md and MEMORY.md content right after automatic compaction if those files were edited earlier in the session. See our instruction files guide for how those files load.
  • Hooks and subagents. SubagentStop hooks were firing about twice a minute per running subagent instead of once at the end. Subagents also couldn't use MCP tools from servers that finished connecting after they started.
  • Self-hosted runners. New --hold-idle-file and --max-hold-min flags keep an idle session alive while your host reports processes it left running. A rate-limited read-only repository no longer stops a session from starting.

The SubagentStop fix deserves a second look if you built logging or notifications on that hook. Counts from before 2.1.311 will be inflated, so don't compare them directly with counts after the upgrade.

Telemetry and DISABLE_COMPACT

The VS Code extension now starts sessions with DISABLE_TELEMETRY set while VS Code's own telemetry setting is off. Per the changelog, those sessions “send no usage metrics or error reports and fetch no feature flags.” That's the behavior most privacy-conscious teams expected already. The side effect is that flag-gated features may roll out to those developers later than to everyone else.

DISABLE_COMPACT in settings files and in a mod's environment settings can now only turn compaction off. Setting it there can no longer turn compaction back on. If you disable compaction somewhere for a reason, check how your settings layers combine after the upgrade.

An upgrade checklist

  • Run claude --version on a test machine and confirm 2.1.311 or later.
  • On Bedrock, Vertex, Mantle, or Foundry, decide on downloads.claude.ai or CLAUDE_CODE_MODEL_CATALOG=off, and push the choice through managed settings.
  • Search CI for claude ultrareview and add --trust-workspace.
  • Set a default effort with CLAUDE_CODE_EFFORT_LEVEL if you track spend, remembering that a top-level effortLevel doesn't apply to Opus 5.5.
  • Reset any dashboards built on SubagentStop hook counts.
  • Tell your team that sed -i edits can't be rewound.

What we didn't verify

We read the changelog and docs. We didn't measure token use with ultrathink before and after, and we didn't test what happens on Bedrock or Vertex when downloads.claude.ai is blocked. Anthropic hasn't documented that fallback yet, so until it does, assume the request is needed or turn it off explicitly.

Sources

Researched and drafted by an AI agent from the linked sources. How posts are made.