What changed
Claude Code 2.1.211 shipped on July 15, 2026. The only new feature is a flag that forwards subagent output into stream-json; everything else is stabilization work. A prompt-caching billing regression on Bedrock and Vertex-family providers, conflicts between auto mode and hook permissions, and a cluster of background-agent respawn, deletion, and result-reporting issues all get cleaned up, and always allow approvals now persist across worktrees thanks to a change in where rules are saved.
New features
-
--forward-subagent-textincludes subagent output in stream-jsonstream-json output did not include subagent text or thinking, so scripts and automation could not see what a subagent was doing in real time. The new
--forward-subagent-textflag andCLAUDE_CODE_FORWARD_SUBAGENT_TEXTenvironment variable include subagent text and thinking in stream-json output.
Key improvements
-
always allowpermission rules save at the repository rootAn
always allowapproval granted in a git worktree only applied inside that worktree, so the same tool had to be re-approved in other sessions and worktrees. Rules now save at the repository root, so approvals persist across sessions and worktrees. -
Better background agent result reporting
Claude sometimes fabricated results for background agents that were still running. It now reports the status of still-running agents and waits for the real completion instead.
-
Integer environment variables accept scientific notation and digit separators
Integer environment variables (timeouts, token budgets, retry counts) only accepted plain number spellings. They now accept scientific notation and digit-separator spellings like
1e6and64_000. -
Memory index over-limit warning measures only loaded content
The memory index over-limit warning counted frontmatter and HTML comments toward the size, so it could fire on content that wasn’t actually loaded. It now measures only loaded content.
-
/usage-creditsasks for confirmation — it now confirms before sending a request to organization admins. -
Vim mode
sandSwork in NORMAL mode — substitute char and line now work in NORMAL mode, matching vim behavior. -
Claude in Chrome
save_to_diskon screenshots —save_to_diskon screenshot actions now writes the image to disk and returns the path; previously it did nothing. -
Also — improved terminal layout and rendering performance, updated documentation links to the current docs sites, [VS Code] updated the Remote Control banner to describe what it does, and hardened synced skill/plugin directory naming on Windows (keeping CCR web fetch/search proxies working after
/clear).
Bug fixes
Security & permissions
- Look-alike characters in permission previews relayed to chat channels — previews did not neutralize bidirectional-override, zero-width, and look-alike quote characters, so tool inputs could visually alter the approval message. Fixed.
- Auto mode overriding a PreToolUse hook’s
askdecision for unsandboxed Bash — a hookasknow floors the decision at a prompt. - File upload validation — filenames ending in a DOS device suffix (
.prn) or a trailing dot are now accepted, and files with multiple hard links are refused. - Claude in Chrome file-upload path validation hardened.
Model & caching
- Prompt-caching regression on Bedrock, Vertex, Mantle, and Foundry — the trailing system context block was billed as fresh input tokens on every request. Fixed.
- Claude Code on Vertex and Bedrock attempting the default Opus model at startup and printing a spurious fallback notice when a model is explicitly configured — fixed.
- Subagents spawned with an explicit model override reverting to the parent’s model when resumed or sent a follow-up message — fixed.
Sessions & background agents
- Parallel Claude Code sessions all logging out simultaneously after wake-from-sleep when many sessions share one credential store — fixed.
- Plugin MCP servers not reconnecting after an idle web session woke, leaving MCP calls failing until the next message — fixed.
- Reopening a just-stopped background session from the agents view starting a blank conversation under the same session id — fixed.
/loophiding the session from/resumeafter a single use — fixed.- Background jobs on LLM gateway auth (
ANTHROPIC_AUTH_TOKEN+ANTHROPIC_BASE_URL) coming back “Not logged in” after the daemon respawns them — fixed. claude agentsjobs becoming permanently undeletable when git no longer recognizes their worktree — the row now shows why the delete was refused instead of silently reappearing.- Background session titles in the agents view showing the naming model’s refusal text when the prompt contains a link — fixed.
- Background agents killed by the user auto-respawning, and revived agents re-running stale prompts from old sessions — fixed.
- Routines with no schedule reporting a next run time in the year 1 — fixed.
Config & memory
- Nested
.claude/rules/*.mdfiles loading even when setting sources exclude project settings — fixed. /clearnot resetting the session cost counter — the statusline’s cost now starts at $0 after/clear.
Terminal & platform
- File uploads to Claude in Chrome from remote and CLI sessions — fixed.
- Edits that leave the input as ”?” being silently swallowed and toggling the shortcuts panel — fixed.
- A startup hang when the Claude in Chrome extension is enabled but Chrome is not running — fixed.
- A 300ms delay revealing async content (Settings tabs, Stats, diff views, and other loading states) — fixed.
- Screen reader users losing the audible terminal bell after
/terminal-setupor onboarding terminal setup — fixed. - Claude in Chrome setup pages failing to open in the browser on Windows — fixed.
- Headless print-mode sessions on Windows crashing or silently exiting when stdin is unreadable — fixed.
Notes
- A bug-fix-focused release — the only new feature is
--forward-subagent-text; the rest is reliability and stabilization work. - Check billing on Bedrock and Vertex-family providers — the prompt-caching regression fix stops the trailing system context block from being billed as fresh input tokens on every request. If you run on Bedrock, Vertex, Mantle, or Foundry, it’s worth verifying token billing after upgrading.
always allowapprovals move to the repository root — approvals now save at the repository root, so a single approval applies across worktrees. Worth knowing that rules are stored somewhere different than before.