Claude Code

Claude Code 2.1.274: code review stops calling in subagents

3 min read AI-generated

Sessions that used to grind away at a 400 error now repair a corrupted transcript themselves. And the Bash tool only re-reads your shell profile when a plugin has actually changed something.

Featured image for "Claude Code 2.1.274: code review stops calling in subagents"

2.1.273 cleaned up the context counter yesterday; today 2.1.274 is in the changelog. The list is long, but it leans one way: MCP, permissions, and how many model calls Claude Code burns on side work.

What changes in code review

For any model without tuned settings of its own, /code-review no longer spawns a row of review subagents. It runs leaner prompts inline in the session instead. If you’ve ever watched a review kick off six agents in parallel, you know what that cost.

Same direction elsewhere. Headless and SDK sessions used to make a separate model call for every background task that finished; now one call answers all the completions already queued. And the Monitor tool sends a script’s final output together with its exit status in one notification instead of two, which saves another model turn.

MCP: the newer standard becomes the default

Installs on Bedrock, Vertex and Foundry, plus those with telemetry switched off, now use the v2 MCP client and the 2026-07-28 protocol negotiation against direct HTTP servers — the way every other install already did. The way back is MCP_SDK_GENERATION=v1 or MCP_PROTOCOL_NEGOTIATION=legacy.

With it comes a stack of fixes that read like real support tickets. HTTP servers that only speak legacy HTTP+SSE and answer the first request with a 422 connect again. Streamable HTTP calls timed out after roughly five minutes even with a longer per-server timeout set. A call refused with 403 was reported as an expired sign-in when the real problem was missing permissions. And secrets resolved from ${VAR} placeholders were showing up in error messages and in the login tool’s description.

New: CLAUDE_CODE_MCP_STARTUP_WAIT_MS bounds how long the first non-interactive turn waits for servers that are still connecting. 0 means don’t wait at all.

Permissions, memory, transcripts

Two Bash checks got stricter. Commands that loop over or assign certain special shell variables now ask for permission. And sessions in isolated worktrees refuse certain nested shell expansions outright.

When memory usage gets critical, Claude Code now shows a warning along with steps to free memory or restart safely. Background commands are no longer killed after 30 idle minutes under mild memory pressure — only when things are genuinely tight, and the debug log says why.

The least pleasant fix concerns sessions stuck in a loop, retrying an unexpected tool_use_id 400 error forever. Corrupted transcripts now self-heal where that’s possible; where it isn’t, a clear error ends the loop and points you at /rewind.

A housekeeping release, and that’s not a complaint

Barely any new features, but roughly eighty lines of repair, much of it in places you only notice when they’re broken: permissions, MCP connections, gateway behaviour on shutdown, VS Code windows after a reload. At two releases a day a day like this is the exception rather than the rule — and the spots where model calls get saved are the ones you see at the end of the month.

Sources:

Claude CodeReleaseMCPPermissions