Claude Code 2.1.47 is a massive release with dozens of improvements: performance boosts (~500ms faster startup), major memory usage reductions for long sessions, a new last_assistant_message field in Stop/SubagentStop hooks, a new chat:newline keybinding action, and ctrl+f to kill background agents (replacing double-ESC)
Delegate mode has been removed from Claude Code — the delegate permission mode is gone from all documentation, and agent team navigation simplified to Shift+Down only (with wrapping)
OTPM rate limits now evaluated in real-time based on actual tokens generated (not estimated from max_tokens), so setting a high max_tokens no longer penalizes rate limits
Compaction is now ZDR-eligible and supports Claude Sonnet 4.6 in addition to Opus 4.6
Web search/fetch dynamic filtering has graduated from beta — the code-execution-web-tools-2026-02-09 beta header is no longer required
Added last_assistant_message field to Stop and SubagentStop hook inputs, providing the final assistant response text so hooks can access it without parsing transcript files
Added chat:newline keybinding action for configurable multi-line input
Added added_dirs to the statusline JSON workspace section, exposing directories added via /add-dir to external scripts
Use ctrl+f to kill all background agents (replaces double-pressing ESC). Background agents now continue running when you press ESC to cancel the main thread, giving more control over agent lifecycle
spinnerTipsOverride setting added: override spinner tips with custom strings, with option to exclude default tips
Existing feature improvements
Improved VS Code plan preview: auto-updates as Claude iterates, enables commenting only when the plan is ready for review, and keeps the preview open when rejecting so Claude can revise
Improved startup performance by deferring SessionStart hook execution, reducing time-to-interactive by ~500ms
Improved performance of @ file mentions — file suggestions now appear faster by pre-warming the index on startup and using session-based caching with background refresh
Improved memory usage in long-running sessions by releasing API stream buffers, agent context, and skill state after use
Improved memory usage by trimming agent task message history after tasks complete and eliminating O(n²) message accumulation in agent progress updates
Simplified teammate navigation to use only Shift+Down (with wrapping back to lead) instead of both Shift+Up and Shift+Down
Increased initial session count in resume picker from 10 to 50 for faster session discovery
Moved config backup files from home directory root to ~/.claude/backups/
The /rename command now updates the terminal tab title by default
Search patterns in collapsed tool results are now displayed in quotes for clarity
Major bug fixes
Fixed compaction failing when conversation contains many PDF documents
Fixed plan mode being lost after context compaction, causing the model to switch from planning to implementation mode
Fixed background agent results returning raw transcript data instead of the agent's final answer
Fixed custom agent model field in .claude/agents/*.md being ignored when spawning team teammates
Fixed bash permission classifier to validate that returned match descriptions correspond to actual input rules, preventing hallucinated descriptions from incorrectly granting permissions
Fixed custom session titles set via /rename being lost after resuming a conversation or context compaction
Fixed /resume silently dropping sessions when the first message exceeds 16KB or uses array-format content
Fixed hooks (PreToolUse, PostToolUse) silently failing to execute on Windows (now uses Git Bash instead of cmd.exe)
Fixed Edit tool silently corrupting Unicode curly quotes when making edits
Fixed alwaysThinkingEnabled: true in settings.json not enabling thinking mode on Bedrock and Vertex providers
Fixed shell commands permanently failing after a command deletes its own working directory
Fixed custom agents and skills not being discovered when running from a git worktree
Fixed image pasting not working on WSL2 systems where Windows copies images as BMP format
Fixed CJK wide characters causing misaligned timestamps and layout elements in the TUI
Fixed LSP findReferences and other location-based operations returning results from gitignored files
Fixed "Always allow" on multiline bash commands creating invalid permission patterns that corrupt settings
Fixed inline code spans in markdown being incorrectly parsed as bash commands
New "Pin model versions" section added (step 4) with specific environment variable instructions and example values for pinning Bedrock model IDs to prevent breakage when Anthropic releases new models. [line 161] [Source]
SubagentStop hooks now receive a last_assistant_message field containing the subagent's final response text, eliminating the need to parse transcript files. [line 1227] [Source]
Stop hooks now receive a last_assistant_message field containing Claude's final response text. [line 1259] [Source]
Extended context (1M token window) availability updated: Pro/Max/Teams/Enterprise subscribers can now access it with extra usage enabled (previously stated they had no access at launch). [line 165] [Source]
New "Pin models for third-party deployments" section added explaining how to pin model versions for Bedrock, Vertex AI, and Foundry to prevent user breakage on new model releases. [line 209] [Source]
New OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE environment variable added (default: delta, set to cumulative for backends that expect cumulative temporality). [line 88] [Source]
New standard telemetry attributes: user.id (anonymous device identifier) and user.email (OAuth-authenticated email). [line 259] [Source]
File edit counter metric: tool attribute renamed to tool_name; new source attribute added for decision source. [line 333] [Source]
Active time counter now has a type attribute ("user" for keyboard interactions, "cli" for tool execution and AI responses). [line 345] [Source]
New event correlation section: prompt.id UUID attribute links all events (user_prompt, api_request, tool_result) triggered by a single user prompt. [line 352] [Source]
Tool result events: decision/source renamed to decision_type/decision_source; new tool_result_size_bytes and mcp_server_scope attributes added; Bash tool parameters updated to include dangerouslyDisableSandbox and git_commit_id. [line 389] [Source]
API request and API error events now include a speed attribute ("fast" or "normal") indicating whether fast mode was active. [line 415] [Source]
Tool decision event source field now includes "hook" as a possible value. [line 446] [Source]
Security/privacy section clarified: tool_parameters may contain sensitive values (bash commands, file paths) and should be filtered if needed; user.email is now always included when authenticated via OAuth. [line 526] [Source]
New "Pin model versions for cloud providers" section added, recommending use of ANTHROPIC_DEFAULT_OPUS_MODEL, ANTHROPIC_DEFAULT_SONNET_MODEL, and ANTHROPIC_DEFAULT_HAIKU_MODEL when deploying through Bedrock, Vertex AI, or Foundry. [line 181] [Source]
Dynamic filtering no longer requires the code-execution-web-tools-2026-02-09 beta header — use web_fetch_20260209 tool version directly. [line 62] [Source]
Dynamic filtering no longer requires the code-execution-web-tools-2026-02-09 beta header — use web_search_20260209 tool version directly. [line 49] [Source]
OTPM rate limits are now evaluated in real time based on actual tokens generated — the max_tokens parameter no longer factors into OTPM calculations, so there is no rate limit downside to setting a higher max_tokens value. [line 92] [Source]
Web search and web fetch dynamic filtering section updated: no longer labeled as "beta", beta header requirement removed from the description. [line 38] [Source]