Skip to main content
  1. Articles/

Claude Code v2.1.267: An Effort-Level Cap Org Admins Can Actually See

·1054 words·5 mins·
Florent Clairambault
Author
Florent Clairambault
CTO & software engineer — writing daily about spec-driven development and agentic coding

Claude Code v2.1.267: An Effort-Level Cap Org Admins Can Actually See

Yesterday’s roundup on this blog covered v2.1.263 through v2.1.266 — a symlink containment bypass in the plugin loader and its same-day gateway-auth regression fix. Anthropic shipped v2.1.267 the same day that article went up. It’s a quieter release with one genuinely notable feature — maxEffortLevel — and a long tail of prompt-cache and session-resumption fixes that, taken together, are worth reading as a single story about where Claude Code’s reliability work is currently concentrated. Verified directly against code.claude.com’s own changelog.

maxEffortLevel: a cap, not a silent switch
#

The headline addition is a maxEffortLevel setting that caps the reasoning effort level Claude Code will use on any provider — Bedrock, Vertex, or Microsoft Foundry — while still letting individual users pick anything at or below that ceiling. An organization worried about xhigh-effort sessions burning through budget on routine tasks can now cap the fleet at, say, high, and every developer still sees the effort selector, still gets to choose within the allowed range, and still knows the cap exists because it’s a documented setting rather than an invisible default.

That specificity matters more than it might look like on a changelog line, because this blog has covered what happens when Anthropic doesn’t do it this way. Back in April, Anthropic quietly changed Claude Code’s default effort level to “medium” without announcing it — a defensible cost/latency tradeoff undermined by the fact that thousands of sessions saw a measurable drop in reasoning depth with zero visibility into why. The complaint at the time wasn’t that capping effort is wrong; it’s that doing it silently breaks the trust relationship between the tool and the people relying on its output. maxEffortLevel is the opposite pattern applied to the same underlying lever: it’s an admin-configured, user-visible ceiling, not an undisclosed default. Organizations that want to control spend now have a supported way to do it instead of Anthropic making that call for them behind the scenes. Whether every org actually documents its own maxEffortLevel choice to its developers is a separate question — but at least the tool no longer hides the mechanism.

The other new toggle, --system-prompt-snapshot off, is smaller but points at a related tension: by default, a resumed session replays the system prompt it recorded when the conversation started, which is what makes prompt-cache reuse possible across --resume. Turning snapshotting off forces the system prompt to render fresh on every request instead — useful if you’ve changed CLAUDE.md or plugin configuration mid-project and want a resumed session to pick up the new instructions immediately, at the cost of a cache miss on that turn. It’s a deliberate escape hatch for the freshness-versus-cache-reuse tradeoff that most of this release’s other fixes are trying to eliminate as a tradeoff at all.

The real bulk of the release: prompt-cache stability
#

Skim the full changelog and a pattern jumps out immediately: more than a dozen of v2.1.267’s fixes are some variant of “X was silently breaking prompt-cache reuse.” Resuming a session after /compact no longer inserts a spurious “continue from where you left off” turn that busted the cache. Model switching via /model no longer re-sends the entire tool definition set. Mid-session MCP or plugin tool changes are now received as deferred definitions instead of triggering a full tool-list rewrite. Resumed sessions no longer re-render tool descriptions from scratch when they could replay what was already recorded. A background worker adding a worktree mid-session no longer forces a cache-breaking rewrite. Even subagents and sessions launched with --system-prompt now record their prompt and tools exactly once instead of on every turn.

None of these are individually dramatic. Collectively, they’re Anthropic closing out an entire category of bug where the symptom is invisible — nothing errors, nothing crashes, you just quietly pay full price for tokens that should have hit cache — and the only way most users would ever notice is a /cost bill that doesn’t match expectations. That symptom shape is exactly why this class of bug is worth tracking as its own thread: it’s the same failure mode, at smaller scale, as the caching regression this blog covered in the three-bug postmortem back in May, where a silent cache-pricing regression sat live for weeks before anyone traced rising bills back to it. Anthropic clearly has telemetry now that surfaces prompt-cache misses more directly — /cost and the status line already show a likely-cause field for cache misses, added a few releases back — and this release reads like the accumulated backlog of issues that instrumentation turned up.

Everything else, briefly
#

The rest of v2.1.267 is routine but not trivial: a fix for Cowork scheduled tasks failing at startup in sandboxed orgs, a fix for /context and other local command output rendering blank on mobile clients, a fix for large (>5MB) transcripts silently dropping parallel tool calls and hook output, and — notably, given last week’s plugin-symlink story — another containment-check fix, this time for marketplace entry paths with backslashes bypassing the same class of check on macOS and Linux. On the VS Code extension side: a fix for the extension host hanging at 100% CPU when forking or rewinding messages with cyclic parent links, and a fix for chat diff blocks always rendering in dark theme regardless of the editor’s actual theme.

Why this release is worth reading as a whole
#

Individually, none of these fixes would justify their own article. Read together, v2.1.267 is a decent snapshot of what “maturing a fast-moving agentic tool” actually looks like in practice: not big feature launches, but a steady grind of (1) turning previously-implicit policy levers like effort level into explicit, visible, admin-controlled settings, and (2) hunting down every remaining way a session can silently lose its prompt cache. Neither category makes for a flashy release note. Both are exactly the kind of unglamorous reliability work that determines whether a tool used in production CI pipelines and long-running agent sessions stays trustworthy at scale — and it’s a sharper contrast than any benchmark chart with tools that are still shipping UI polish on top of an architecture that was never built for this level of session longevity in the first place.

Sources: Claude Code changelog — Anthropic (primary, direct fetch); this blog’s own prior coverage of v2.1.263-266, Anthropic’s silent effort-default change, and the three-bug Claude Code postmortem.

Related