anthropic Claude Code Releases · · 2.1.212

Claude Code v2.1.212: New /fork behavior, background tasks, and fixes

sdkaideprecationengineermediaenergy
deprecation feature patch

This update for Claude Code introduces a new behavior for `/fork`, copying conversations to background sessions while users continue working. It also adds features like automatic mode reset, session limits for web searches and subagent spawns, and background processing for long-running MCP tool calls. Numerous bug fixes address issues with plan mode, worktree creation, tool failures, and UI elements, improving overall stability and user experience for engineers interacting with code.

  • Added claude auto-mode reset to restore the default auto-mode configuration, with a confirmation prompt (pass --yes to skip)
  • Deprecated the Task tool's mode parameter (now ignored); subagents inherit the parent session's permission mode by default
  • Fixed plan mode auto-running file-modifying Bash commands (e.g. touch, rm) without a permission prompt or SDK canUseTool callback
  • Fixed worktree creation following a repository-committed symlink at .claude/worktrees, which could create files outside the repository
  • Fixed shell mode (!) not executing commands containing file paths while the path autocomplete popup was open
Deprecations (1)
  • Deprecated the Task tool's mode parameter (now ignored); subagents inherit the parent session's permission mode by default
Features (3)
  • Added claude auto-mode reset to restore the default auto-mode configuration, with a confirmation prompt (pass --yes to skip)
  • Added a session-wide limit on WebSearch tool calls (default 200, tunable via CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION) to stop runaway search loops

  • Added a per-session cap on subagent spawns (default 200, override with CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION) to stop runaway delegation loops; /clear resets the budget

Enhancements (11)
  • Improved web search and web fetch reliability by retrying 529 errors and rate-limited requests with bounded backoff
  • Improved prompt caching: the mid-conversation system block now works behind LLM gateways and custom base URLs (Bedrock, Vertex, 1P)
  • Improved background agent attach: cold-attaching now instantly shows the formatted transcript while the session boots, instead of a blank wait

  • Changed /fork to name the copy after your prompt when the session has no title, so the row is recognizable in the agent view
  • Changed bare /btw to reopen the side-question panel on your most recent exchange so you can browse earlier answers
  • Changed the ← footer hint to pulse N done for a moment when a background agent finishes while nothing needs your input
  • Changed Enterprise forceLoginMethod to be enforced for VS Code extension, SDK, setup-token, and install-github-app logins, not just the terminal

  • Changed session transcripts to record the reasoning effort level on each assistant message
  • Changed headless/SDK sessions to apply a set_model control request mid-turn; the next model round-trip uses the new model instead of waiting for the next turn

  • Changed agent view / claude agents --json: sessions waiting on a sandbox, MCP-input, or managed-settings prompt now show as "Needs input" instead of "Working"

  • Updated the auth status panel title from "Cloud authentication" to "Authentication"
Fixes (28)
  • Fixed plan mode auto-running file-modifying Bash commands (e.g. touch, rm) without a permission prompt or SDK canUseTool callback
  • Fixed worktree creation following a repository-committed symlink at .claude/worktrees, which could create files outside the repository
  • Fixed a continue:false hook's halt being dropped when the tool fails or completes mid-stream, and hook infrastructure errors being misreported as user rejections

  • Fixed SIGTERM during a running Bash tool orphaning the command's process tree in print/SDK mode; the CLI now aborts the turn, kills the tree, and exits 143

  • Fixed /background and claude --bg failing with "EUNKNOWN: unknown error, uv_spawn" on Windows when Group Policy blocks PowerShell 5.1; the daemon now prefers PowerShell 7

  • Fixed shell mode (!) not executing commands containing file paths while the path autocomplete popup was open
  • Fixed auto-mode denial notifications rendering broken characters when a long denial reason was truncated mid-emoji
  • Fixed Ctrl+J not inserting a newline in the agent view dispatch input on terminals with extended key reporting, and surfaced the newline shortcut in the ? help overlay

  • Fixed /ultrareview rejecting PR references like #123, PR 123, and pasted PR URLs; error hints now name the command you actually typed
  • Fixed /ultrareview <branch> not fetching the branch from origin when it exists remotely; it now suggests the closest branch name on typos
  • Fixed /ultrareview skipping the billing confirmation in a new conversation after /clear
  • Fixed /ultrareview's "not a git repository" error on Claude Desktop now suggesting the project's repository folder instead of terminal commands

  • Fixed hosted (host-managed) sessions failing at startup when repository settings configured mTLS certs, extra CA bundles, or OAuth scopes; these transport settings are now ignored with a warning

  • Fixed a spurious "File has not been read yet" error when editing a file that had been read with offset/limit before resuming a session
  • Fixed ExitWorktree failing with "no active EnterWorktree session" after resuming a session with --continue/--resume in print/SDK mode
  • Fixed the workflow agent grid staying empty for Remote Control clients that join a session mid-run
  • Fixed streaming-mode control requests being marked complete before their handler finished, which could lose the request on session restart
  • Fixed background sessions created with /fork losing their live-parent protection after a state write failure
  • Fixed reopening a stopped background session from the agent view failing silently — it now resumes the session, or shows why it can't and lets you force a restart

  • Fixed agent teams: a stopping teammate could send the leader duplicate idle notifications when team initialization re-ran within a session
  • Fixed the plan-approval dialog footer splitting "ctrl+g to edit in <editor>" apart when the file path is long
  • Fixed the welcome banner keeping its old panel widths after a combined width+height terminal resize in fullscreen mode
  • Fixed diff previews losing their line numbers and +/- markers in narrow layouts
  • Fixed @-mentions attaching nothing after a partial file read, plugin uninstall targeting the wrong marketplace, and false "Command timed out" on exit code 143

  • Fixed OpenTelemetry HTTP exports being rejected with 411/400 by Azure Monitor and other endpoints that don't accept chunked transfer encoding

  • Fixed OTLP event log records missing trace_id/span_id when TRACEPARENT is set in SDK/headless mode
  • Fixed conversations with many images incorrectly failing with "Request too large" errors, and improved the error message to explain the actual cause

  • Fixed web search and web fetch returning "API Error" text as search results or page content when the API was overloaded
Read the original announcement →

https://github.com/anthropics/claude-code/releases/tag/v2.1.212

Related releases