Claude Code v2.1.211: Subagent Text in stream-json, Always-Allow Rules at the Repo Root, and a Prompt-Caching Fix
Claude Code v2.1.211 adds --forward-subagent-text for stream-json output, saves always-allow rules at the repository root, and fixes a prompt-caching regression on Bedrock, Vertex, Mantle, and Foundry.
Claude Code v2.1.211 is a large release with 37 changelog entries. It adds a way to forward subagent text and thinking into stream-json output, makes “always allow” permission rules persist across git worktrees, and fixes a prompt-caching regression on Bedrock, Vertex, Mantle, and Foundry. Other changes cover permission safety, background agents, Claude in Chrome, and Windows.
What’s New
Forward Subagent Text to stream-json
The new --forward-subagent-text flag and CLAUDE_CODE_FORWARD_SUBAGENT_TEXT environment variable include subagent text and thinking in stream-json output.
”Always Allow” Rules Save at the Repository Root
“Always allow” permission rules are now saved at the repository root, so approvals granted in a git worktree persist across sessions and worktrees.
Scientific Notation in Integer Environment Variables
Integer environment variables, such as timeouts, token budgets, and retry counts, now accept scientific notation and digit-separator spellings like 1e6 and 64_000.
Vim Mode s and S
In Vim mode, s and S (substitute char/line) now work in NORMAL mode, matching vim behavior.
Background Agent Result Reporting
Claude now reports the status of background agents that are still running and waits for the real completion instead of fabricating results.
/usage-credits Confirmation
/usage-credits now asks for confirmation before sending a request to organization admins.
Claude in Chrome: save_to_disk for Screenshots
save_to_disk on screenshot actions now writes the image to disk and returns the path; previously it did nothing.
Fixes and Improvements
- Prompt caching: Fixed a prompt-caching regression on Bedrock, Vertex, Mantle, and Foundry that billed the trailing system context block as fresh input tokens on every request.
- Permissions: Permission previews relayed to chat channels now neutralize bidirectional-override, zero-width, and look-alike quote characters, so tool inputs cannot visually alter the approval message. Auto mode no longer overrides a PreToolUse hook’s
askdecision for unsandboxed Bash; a hookasknow always results in at least a prompt. - Login: Parallel Claude Code sessions that share one credential store no longer all log out simultaneously after wake-from-sleep. Background jobs on LLM gateway auth (
ANTHROPIC_AUTH_TOKEN+ANTHROPIC_BASE_URL) no longer come back “Not logged in” after the daemon respawns them. - Models: On Vertex and Bedrock, Claude Code no longer attempts the default Opus model at startup or prints a spurious fallback notice when a model is explicitly configured. Subagents spawned with an explicit model override no longer revert to the parent’s model when resumed or sent a follow-up message.
- Settings: Nested
.claude/rules/*.mdfiles no longer load when setting sources exclude project settings. - MCP: Plugin MCP servers now reconnect after an idle web session wakes, instead of leaving MCP calls failing until the next message.
- Background agents: Background agents killed by the user no longer auto-respawn, and revived agents no longer re-run stale prompts from old sessions. Reopening a just-stopped background session from the agents view no longer starts a blank conversation under the same session id, and
claude agentsjobs no longer become permanently undeletable when git no longer recognizes their worktree; the row now shows why the delete was refused. - Session commands:
/loopno longer hides the session from/resumeafter a single use, and/clearnow resets the session cost counter, so the statusline’s cost starts at $0. - Claude in Chrome: File uploads to Claude in Chrome from remote and CLI sessions are fixed, Claude Code no longer hangs at startup when the extension is enabled but Chrome is not running, and file-upload path validation is hardened.
- Windows: Headless print-mode sessions no longer crash or silently exit when stdin is unreadable.
- Performance: Terminal layout and rendering performance are improved.
- Accessibility: Screen reader users no longer lose the audible terminal bell after
/terminal-setupor onboarding terminal setup.
This release contains 37 changes in total; see the full changelog for every item.
How to Update
- Check your installed version:
claude --version - Update in place:
claude update - Note that “always allow” permission rules are now saved at the repository root, so approvals granted in a git worktree carry over to other sessions and worktrees.