Skip to main content

Claude Code v2.1.267: maxEffortLevel Setting, --system-prompt-snapshot off, and Prompt-Cache Fixes

Claude Code v2.1.267 adds a maxEffortLevel setting and --system-prompt-snapshot off, fixes a series of prompt-cache breaks around tools, model switches, and resume, and tightens managed-settings checks.

Claude Code v2.1.267 is a large release with 53 changelog entries. It adds a maxEffortLevel setting that caps effort across providers and a --system-prompt-snapshot off flag for iterating on prompt text. Many of the fixes target prompt-cache reuse when tools change, models switch, or sessions resume, alongside fixes for Remote Control, VS Code, Claude Code on the web, and Claude Tag.

What’s New

maxEffortLevel Setting

The new maxEffortLevel setting, set at the top level or per model under modelSettings, caps the effort level on every provider, including Bedrock, Vertex, and Foundry. Users can still pick a lower level.

--system-prompt-snapshot off

--system-prompt-snapshot off renders the system prompt fresh on every request instead of reusing the conversation’s recorded prompt. It is intended for iterating on prompt text.

Self-Hosted Runner and Gateway Changes

  • Self-hosted runner: --use-anthropic-git-proxy is now reported to the server at registration, and a warning is printed for each session that still clones through the legacy git proxy.
  • Gateway: forward_user_identity upstreams now return a 429 as-is to a developer whose email was forwarded, instead of failing over to the next upstream, so the proxy’s per-user limits hold.

The preset connection forms in Claude Tag admin settings now include a “Use a custom connector” link, so you can switch to a custom connection without starting over.

Fixes and Improvements

Prompt cache

  • Switching models with /model no longer re-sends every tool definition (a prompt-cache miss); commit and PR attribution text now arrives as a conversation note that updates on model changes.
  • Mid-session MCP and plugin tools are no longer added to the tool list in sessions without ToolSearch, which broke prompt-cache reuse; supported models now receive them as deferred definitions.
  • A tool that disappears mid-conversation, from a disconnected MCP server or an upgrade, no longer rewrites the tool list and discards earlier thinking.
  • Resumed sessions no longer rewrite the inline tool set when an MCP connector reconnects at a different moment than before, and no longer rewrite earlier MCP tool announcements before their connectors reconnect.
  • Resuming a print-mode (-p) conversation interactively no longer changes the system prompt prefix and breaks the prompt cache.
  • Subagents and sessions started with --system-prompt or --append-system-prompt now record the system prompt and tool definitions once instead of re-rendering them.

Security and managed settings

  • Managed allowedHttpHookUrls, httpHookAllowedEnvVars, and allowedChannelPlugins now admit nothing, not everything, when unreadable.
  • A marketplace entry path containing a backslash can no longer bypass the containment check for fetched marketplaces on macOS and Linux.

Sessions and resume

  • effort: frontmatter on custom commands, skills, and subagents is no longer ignored on models whose default effort is still pinned (Opus 4.7, Opus 4.8, Fable 5).
  • Resuming a large session (transcript over 5 MB) no longer drops parallel tool calls and their hook output from the reloaded conversation.
  • Resuming a session after /compact or another slash command ran via -p --resume no longer inserts a spurious “Continue from where you left off.” turn.

Remote Control and cloud

  • claude remote-control no longer exits and drops every attached session when its server credential expires (about 30 days after start); the host now re-registers and keeps going.
  • Remote Control clients that join a Claude Desktop or VS Code session no longer show a stale permission mode until it is changed again.
  • Cowork scheduled tasks in the cloud no longer fail at startup for organizations whose managed settings require sandboxing.
  • Expired AWS or Google Cloud credentials under a host app such as Claude Desktop no longer retry ten times with a generic “request failed” before the re-authenticate error appears.

VS Code

  • The extension host no longer hangs at 100% CPU when forking, editing an earlier message, or rewinding in a conversation whose saved transcript contains a cyclic parent link.
  • Chat diff blocks now follow the active VS Code color theme, including high contrast, instead of always rendering with a dark editor theme.
  • @-mentions no longer drop files whose paths contain spaces, and accepting an edit in the diff view on a file with Windows (CRLF) line endings no longer fails with “String not found in file”.

Claude Code on the web and Claude Tag

  • Claude Code on the web: gh and GitHub API calls no longer fail in organizations without the Claude GitHub App; they now use your connected GitHub account and say so when none is connected.
  • Claude Tag: when the organization has run out of usage credits, Claude no longer replies “The API rejected the request as invalid”; the reply now says so and explains how to add more.

v2.1.267 contains 53 changes in total; see the full changelog for the complete list.

How to Update

  1. Check your installed version: claude --version
  2. Update in place: claude update
  3. For admins: managed allowedHttpHookUrls, httpHookAllowedEnvVars, and allowedChannelPlugins now admit nothing rather than everything when they are unreadable, so confirm these settings can be read.