MCP servers are no longer told Claude Code takes background-task input requests#
Claude Code no longer tells MCP servers it can handle requests for your input as background tasks; it still supports plain input requests
MCP tools that take file inputs can now accept local file paths. Claude Code uploads the file and passes the tool a reference instead. The Read tool's new allow_large option lets Claude read an oversized text file when there is room left in the conversation. Hook commands now take an on_failure setting of continue or block. You can set CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL to choose the model subagents use during a workflow run. Administrators can switch off messaging beyond a user's own agents with the managed setting messagingBeyondOwnAgentsDisabled.
This build holds 11 features that are not switched on yet. Claude can ask a subagent for lower or higher effort than its own, but the option is off by default. A session moved to the cloud from auto mode is being prepared to stay in auto mode. Remote sessions gain a check that probes a stream after about 8 seconds of quiet. That check is controlled remotely and is not on yet. A new restriction could limit an agent to messaging only its own agents.
Messages you typed ahead are no longer lost when a turn is cancelled. They go back into the input box or to the front of the queue. A PreToolUse hook that blocks a tool now shows its full reason in the error. Workspace diffs now follow renamed files and show deleted files as removed. On Windows, MCP servers now get a chance to shut down cleanly before being force-closed. Resumed sessions no longer restore saved MCP tasks from the 2025-11-25 tasks protocol.
Written by our agent from the shipped bundle, not by Anthropic.
allowedProviders can now set ANTHROPIC_BASE_URL automaticallySettings & configCLAUDE_CODE_AGENT_PROGRESS_SUMMARIES, CLAUDE_CODE_SLEEP_COMPACT_AFTER_MS and CLAUDE_CODE_RESUME_SESSIONSTART_HOOKS_WAIT_MS are new and are read by Claude Code
SDK set_model requests can swap the system prompt only if a named model is running, failing with model_not_current otherwise; Remote Control refuses it
Sessions & agentsA managed setting, messagingBeyondOwnAgentsDisabled, now turns this feature off and overrides CLAUDE_CODE_HARBOR_KITE
Gateway policies can use a code block for Claude Desktop's Code tab, cannot mix it with cli or settings, and get clearer warnings about serve_to_desktop
Platform & internalsModel catalog entries can set min_claude_code_version, and older clients see the model as unavailable with a message naming the version to update to
Extensions.mcp.json files can now be skipped when loading MCP serversExtensionsWant the reasoning? Read walks the 38 entries that probably matter to you, each one opening to what changed and why.
Read this release → Every row →Claude Code no longer tells MCP servers it can handle requests for your input as background tasks; it still supports plain input requests
The limit-wall promo row and its claim page screen are gone from /rate-limit-options, and its notice type is no longer listed
The remote setting behind promo claim links is no longer passed to the VS Code extension when it starts, but is still read elsewhere
Unclear It is not clear whether anything the VS Code extension showed or did depended on this setting.
The usage limit status display drops its promo line and shows nothing when there is no status or upcoming line
Published verbatim by Anthropic for v2.1.296. Text is unmodified from the upstream changelog. Everything else on this page came out of the bundle instead, which is why the two lists don't match.
Of these 79 bullets, 15 name something an entry on this page also names, 27 name something no entry here does, and 37 name nothing specific enough to line up either way. The pairings are made on names both sides wrote down, a flag or a setting or a slash command, so read one as probably the same thing rather than as a fact, and read the middle number as candidates rather than as a miss count.
code key to the Claude apps gateway's managed.policies[]: the same settings as cli, also applied in Claude Desktop's Code tab; beside desktop, it turns on Claude Desktop's gateway mode
No entry names this autoCompactWindow to subagent frontmatter and --agents definitions, so a subagent can auto-compact earlier than the main conversation's window
Probably agent-definitions-can-carry-an-autocompactwindow-passed-to, agent-auto-compact-threshold-now-takes-a-second-window-sourc, plugin-agent-frontmatter-gains-autocompactwindow-passed-thr CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL to run every workflow agent on one model while other subagents keep theirs
Probably new-env-var-claude-code-workflow-subagent-model-overrides-th CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS environment variable to set a longer maximum delay for the backoff when retrying an overloaded (529) request
No entry names this /plugin on a plugin whose hooks are left out because another enabled plugin has the same name
No entry names this allow_large option to the Read tool so Claude can read a text file past the usual size limits in one call when it needs the whole file and the context has room
Probably read-tool-allow-large-override-messages-added, read-tool-gains-allow-large-option-sized-to-remaining-contex PreToolUse hooks that deny a tool call with "continue": false, and managed prompt hooks that block one, refusing the call but not ending the turn
Probably pretooluse-hook-stop-reason-is-appended-correctly, pretooluse-hook-stop-attachment-helper-and-422-to-400-error updatedMCPToolOutput in some sessions
Probably posttooluse-hooks-can-rewrite-mcp-tool-output-via-updatedmcp .mcp.json or plugin MCP server that was switched off for that folder, after changing directory or reloading plugins
Probably telemetry-for-auto-approved-project-mcp-servers, project-mcp-config-skipped-when-a-flag-checked-helper-is-on allowedProviders with "gateway" locking out laptops that name that gateway in user settings
Probably managed-settings-env-now-injects-a-computed-anthropic-base-u forceLoginMethod to gateway with no forceLoginGatewayUrl (regression in 2.1.295)
Probably gateway-login-method-now-counts-as-gateway-required --teleport opening an empty conversation when the session's history could not be read
No entry names this #95873[BUG] Regression since ~2026-09-12: Remote Control sessions have 0 teleport-events, so opening them from another machine (VS Code Remote tab / --teleport) yields an empty session (worked 2026-08-26 → 09-11) Open
52;c;… escape sequence printed on screen after copying in older VTE-based terminals such as MATE Terminal
No entry names this /diff panel or dialog was open
No entry names this #99026[BUG] Built-in /diff pane holds mod toasts, undocumented and contradicted by the screen map Open
UserPromptSubmit hook or a mod's prompt.submit hook ending headless sessions, clearing the typed prompt, or letting the unchecked prompt through
Probably prompt-submit-hook-interrupted-while-checking, input-hooks-interrupted-by-abort-now-return-interrupted-resu, prompt-submit-hook-handling-blocked-prompt-tracking-and-abo, interrupted-while-prompt-checked-handling, userpromptsubmit-hook-cancellation-distinguishes-interrupts claude self-hosted-runner printing misleading errors when registration is refused: it now names the org admin setting, or says a restarted on-demand runner needs a fresh work order
No entry names this --capacity above 1
No entry names this $ methods running in the main session's working directory instead of the calling agent's, and ignoring the turn their calling hook holds
Nothing to match on $.agent.register succeeding from a mod's hook that was still running after the mod was reloaded or removed; the call is now refused
No entry names this $.http.fetch in mods refusing a HEAD request when the response declares a Content-Length over the 4 MiB body limit
Probably custom-headers-check-function-replaced-and-git-subprocess-e, api-client-adds-per-request-extra-headers-and-awaits-a-heade, git-commit-detection-from-reflog, web-fetch-head-requests-skip-the-content-length-size-refusa, new-x-claude-code-wiggly-dove-request-header-off-by-default claude plugin marketplace add, marketplace update and plugin install failing with an internal error for a marketplace named like constructor; add now refuses such names clearly
Probably plugin-install-gets-replace-for-same-repo-duplicates-mcp constructor or prototype being deleted by the next save of that plugin's options
Nothing to match on CLAUDE_CODE_RESUME_INTERRUPTED_TURN re-running a finished turn after a restart when an MCP tool result had ended that turn
No entry names this BASH_ARGV0 shell variable and then use it; these now prompt for approval
Probably bash-variable-list-adds-bash-argv0 ← being run twice, once unseen in the foreground, when the background service was slow to answer
Nothing to match on ← moved the session to the background; it is still not sent, but ↑ now brings it back
Nothing to match on /clear in headless sessions
No entry names this /mcp or claude mcp when an MCP server needs authentication
Probably auth-needed-prompt-for-remote-sessions-without-oauth, remote-environment-classifier-and-ccr-artifacts-endpoints /code-review ending on a raw JSON array in cloud sessions, the Agent SDK and IDE integrations; the findings now print as a numbered list
No entry names this tool_result events missing git_commit_id after git commit -q or git -C <dir> commit
No entry names this #95934OTel: git_commit_id still silently dropped for `git -C <path> commit` and quiet/redirected commits (2.1.278) — recurrence of #77237 Open
CLAUDE_CODE_TRANSCRIPT_LOCAL_GC dropping a message from the saved transcript when its text held a Unicode line or paragraph separator (U+2028, U+2029)
No entry names this claude purge leaving a prompt in the history file when its text held a Unicode line or paragraph separator (U+2028, U+2029)
No entry names this claude plugin install failing for GitHub owner/repo plugin sources on machines with no GitHub SSH key; the clone is now retried over HTTPS
No entry names this rm -rf /c/Users/<name> in Git Bash not asking in bypass permissions mode
No entry names this code settings, the reason shows as a reply
Nothing to match on --debug output to name unrecognized frontmatter fields in custom agent files, with a hint for likely typos
No entry names this --debug output for hooks: command hooks on tool calls, prompts, SessionStart and Stop now log their command, plugin, outcome and duration when they finish, so a slow hook is identifiable
No entry names this CLAUDE_CODE_TRANSCRIPT_LOCAL_GC: a large transcript file is no longer rewritten when that would free under 10% of it
No entry names this /cost, the status line, --max-budget-usd and the SDK's cost figures to price Sonnet 5.5 cache reads at $0.10 per million tokens (was $0.20)
No entry names this ←: a turn or ! command started while the session moves to the background is now stopped instead of finishing out of sight
Nothing to match on claudeCode.spinnerVerbs missing from the extension's settings, so settings.json now completes and validates it; a malformed value no longer breaks the chat panel
No entry names this @browser, as the terminal does; allowing a site for the session stops repeat asks
No entry names this prefersReducedMotion setting
No entry names this A model matched these bullets to the GitHub issues they fix, so a link can be wrong.
910 documentation changes were recorded within 24 hours either side of this release, nearest first. The closest 12 are below. They're here because they happened near this release in time. That's not a claim that this release caused the edit, or that the page documents anything in it.
The 43 literal strings found in the bundle, with the number of entries that name each one. Picking one searches for it. A name is here because this build's code mentions it, which is not the same as it working or being finished.
What's wrong with this entry?