New fallbackModel setting in v2.1.166 lets you configure up to three fallback models tried in order when the primary model is overloaded or unavailable
New requiredMinimumVersion/requiredMaximumVersion managed settings allow organizations to block Claude Code from starting if the running version is outside an approved range — stronger than the existing minimumVersion floor
Stop and SubagentStop hooks now support additionalContext for non-error feedback that continues the conversation without triggering a hook error notification
Claude Opus 4.1 is now marked as deprecated across API documentation; Claude Opus 4 is marked as retired on Amazon Bedrock
A new api_refusal telemetry event lets operators track API refusal frequency separately from errors
Added fallbackModel setting to configure up to three fallback models tried in order when the primary model is overloaded or unavailable; --fallback-model now also applies to interactive sessions
Added glob pattern support in deny rule tool-name position ("*" denies all tools); allow rules reject non-MCP globs, and unknown tool names in deny rules warn at startup
Hardened cross-session messaging: messages relayed via SendMessage from other Claude sessions no longer carry user authority — receivers refuse relayed permission requests, and auto mode blocks them
MAX_THINKING_TOKENS=0, --thinking disabled, and the per-model thinking toggle now disable thinking on models that think by default via the Claude API (3P providers unchanged)
claude agents: typing a URL into the list now filters to the session whose first prompt contained it
Existing feature improvements
Claude Code now retries a turn once on the fallback model when the API rejects an unexpected non-retryable error; auth, rate-limit, request-size, and transport errors still surface immediately
claude update now announces the target version before downloading instead of going silent
Major bug fixes
Fixed a recurring "image could not be processed" error and extra token usage when an unprocessable image was sent in a session
Fixed remote sessions becoming permanently stuck when a brief backend disruption occurred during worker registration at startup
Fixed flickering in JetBrains IDE terminals (IntelliJ, PyCharm, WebStorm, etc.) on 2026.1+ by enabling synchronized output
Fixed Shift+non-ASCII characters (e.g. Shift+ä → Ä) being dropped in terminals using the Kitty keyboard protocol (WezTerm, Ghostty, kitty)
Fixed PowerShell command validation occasionally hanging far past its time budget on Windows when a killed process's children held its output pipes
Fixed orphaned claude --bg-pty-host processes spinning at 100% CPU after the daemon dies while connected on macOS
Fixed managed settings with an invalid entry silently disabling enforcement of their remaining valid policies
Fixed managed-settings allowedMcpServers/deniedMcpServers predicates not matching when they use ${VAR} references
Fixed background agent sessions that entered a git worktree crash-looping with "No conversation found" when reopened from claude agents
Fixed duplicated thinking text in the Ctrl+O transcript view while streaming
New requiredMinimumVersion/requiredMaximumVersion managed settings added to the capabilities table — blocks Claude Code from starting when outside the approved version range, which is stronger than minimumVersion (which only prevents downgrades). [line 66] [Source]
Clarified that model aliases resolve to Claude Code's built-in default for Bedrock (which can lag the newest release), not simply "the latest version". [line 188] [Source]
/plugin now documented with subcommand support (list, install, enable, disable). [line 234] [Source]
/reload-plugins now supports --force flag; without it, the command warns and holds when the reload would invalidate the prompt cache. [line 242] [Source]
New /plugin list command documented for listing installed plugins without opening the menu; supports --enabled and --disabled filters. [lines 268-273] [Source]
CLAUDE_CODE_FORK_SUBAGENT now accepts 0 to explicitly disable fork subagents, overriding any server-side staged rollout. [line 286] [Source]
New CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS env var added — bounds the mid-session skills resync triggered when the host requests a skill reload. [line 303] [Source]
CLAUDE_CODE_TMPDIR clarified: the short fallback $TMPDIR for long paths only applies to sandboxed Bash; unsandboxed Bash inherits your shell's $TMPDIR unchanged. [line 309] [Source]
New "Background tasks at exit" section: background Bash tasks started during a claude -p run are terminated ~5 seconds after Claude returns its final result and stdin closes. [lines 48-51] [Source]
Expanded if field documentation with a detailed matching table showing exactly when hooks fire for $(), backtick substitutions, and compound commands. [lines 20-30] [Source]
Clarified that the if filter fails open (hook runs) when the Bash command cannot be parsed, and that the permission system should be used for hard allow/deny rather than hooks.
Expanded Bash if matching table with behavior for leading VAR=value assignments, $(), and backtick patterns. [lines 52-60] [Source]
Stop and SubagentStop hooks now support hookSpecificOutput.additionalContext as a non-error way to give Claude feedback that keeps the conversation going without showing a hook error notification. [lines 103-120] [Source]
prompt hook field now supports backslash-escaping $ to include literal dollar signs in prompts. [line 69] [Source]
New c key in the /btw overlay copies the answer to clipboard as raw Markdown (avoids hard-wrapped terminal rendering from mouse selection). [line 133] [Source]
Clarified that model aliases resolve to Claude Code's built-in default for Foundry and that Foundry has no startup model check — requests fail if the default model is unavailable. [line 155] [Source]
New claude_code.api_refusal telemetry event for tracking stop_reason: "refusal" responses, which arrive on a successful stream rather than as HTTP errors. [lines 183-195] [Source]
MCP server connection events now include is_plugin, plugin_id_hash, and plugin.name attributes, letting operators identify plugin-provided MCP servers in logs without exposing third-party plugin names. [lines 201-203] [Source]
Documented that as of v2.1.163, /reload-plugins warns and holds instead of applying a reload that would trigger a full cache re-read; pass --force to proceed anyway. [line 246] [Source]
New requiredMinimumVersion and requiredMaximumVersion managed settings documented — Claude Code exits at startup if the running version is outside the approved range. [lines 280-281] [Source]
Git commit attribution format updated: the 🤖 Generated with Claude Code line has been removed; only the Co-Authored-By trailer remains. [lines 289-293] [Source]
Documented the distinction between minimumVersion (constrains updates only) and the new requiredMinimumVersion/requiredMaximumVersion (blocks startup entirely). [line 307] [Source]
New initialPrompt parameter added to AgentDefinition — auto-submitted as the first user turn when the agent runs as the main thread agent. [line 41] [Source]
Resuming subagents section rewritten: the agentId is now found in the Agent tool result text block; built-in Explore and Plan agents are one-shot and omit the trailer. [lines 70-83] [Source]
Resume example replaced: now shows Python (custom endpoint-finder agent) instead of TypeScript. [lines 85-176] [Source]
Lifecycle dates note updated: specific Bedrock retirement dates removed; now directs users to Amazon Bedrock's model lifecycle page for current dates. [line 78] [Source]
Claude Opus 4.1 marked as Deprecated; Claude Opus 4 changed to Retired (was Deprecated with May 31, 2026 date) with all regional availability removed. [lines 85-93] [Source]
Vertex AI documentation links updated to new URL (docs.cloud.google.com). [lines 12, 54, 274]
Lifecycle dates note updated: specific Vertex AI retirement dates removed; now directs users to Google Cloud's documentation for current dates. [line 57] [Source]
Claude Opus 4.1 marked as Deprecated. [line 73] [Source]