What changed
Claude Code 2.1.218 shipped on July 22, 2026, and centers on the code-review workflow. /code-review moves to the background so review work no longer fills your conversation, and the argument handling and non-interactive behavior of /ultrareview and /code-review ultra are fixed. Auto mode and plan mode now hand dangerous-command decisions to the classifier instead of the static analyzer, and skill and plugin frontmatter handling is more forgiving. On top of that comes a large batch of fixes for Windows paths, session resume, accessibility, and remote sessions.
New features
-
Diagnostics when an MCP server fails to connect
When an MCP server failed to connect, there was no signal about why, making it hard to debug.
claude mcp listand/mcpnow show the HTTP status and error text on a failed connection, plus a warning for MCP config values with hidden leading or trailing whitespace. -
More accepted values for skill and plugin frontmatter booleans
Frontmatter boolean fields only accepted
true/false, so common spellings likeyesoronwere treated as errors.yes/no/on/off/1/0(case-insensitive) are now accepted alongsidetrue/false. -
Announcement when fast mode changes on a model switch
Switching models via
/config model=<x>or Remote Control could silently change fast mode. There is now an announcement when fast mode changes as a result of that switch. -
Screen-reader announcements of deleted text
In
--ax-screen-readermode, word and line deletions (Option+Delete,Ctrl+W,Cmd+Backspace,Ctrl+U,Ctrl+K) gave no indication of what was removed. Deleted text is now announced to the screen reader.
Key improvements
-
/code-reviewruns as a background subagentRunning review in the main conversation filled it with review output and pushed stacked slash commands out of the review target.
/code-reviewnow runs as a background subagent, so review work no longer fills your conversation and stacked slash commands stay as its review target. -
Auto mode routes dangerous-command checks through the classifier
In auto mode, the dangerous-rm, background-
&, and suspicious-Windows-path checks still opened permission dialogs on every hit. Those three checks no longer open dialogs; the auto-mode classifier adjudicates them instead. Plan mode with auto likewise no longer prompts for Bash commands the static analyzer can’t prove read-only — the classifier judges them. -
Skills with
context: forkrun in the background by defaultFork-context skills held the foreground and blocked the conversation. Skills with
context: forknow run in the background by default; opt out per skill withbackground: false. -
/deep-researchstarts only when invoked manuallyClaude could launch
/deep-researchon its own, starting research you didn’t ask for. It now starts only when you invoke it manually. -
Trust dialogs name the repository root
It wasn’t clear exactly what scope a workspace-trust grant covered. Trust dialogs now name the repository root the grant covers.
-
Fewer settings-approval prompts for server-managed settings
Server-managed settings triggered the approval prompt even for minor feature and cost toggles. Benign feature and cost toggles no longer trigger the settings-approval prompt.
-
Agent names reject
:The colon (
:) is reserved for plugin namespacing, so an agent name containing:could collide. Agent markdown files now reject agent names containing:.
Key bug fixes
Code review
/ultrareviewfailing on descriptive arguments like “review my auth changes” — it now runs a review of your current branch with the text applied as a note to the findings. Error feedback on an invalid argument was also improved so Claude can correct it instead of retrying it unchanged./code-review ultrasilently running a local review in non-interactive sessions — it now launches the cloud review.
Sessions and context
/contextreporting stale pre-compact token usage after compacting from the message picker — fixed.- A retry loop that re-sent identical doomed requests after a context-overflow error with a large thinking budget — fixed.
Ctrl+Bbackgrounding now applies the same background-shell caps as other paths. - An engine teardown race that could start and abandon a phantom turn — fixed; input pushed after close is now consistently rejected.
- Spurious “[Request interrupted by user]” messages after interrupted tool calls — fixed, along with an unpaired
tool_useblock left in the transcript when a tool aborted mid-response. - Fork-session lineage being lost after compaction in headless and SDK sessions — fixed.
- A resumed session failing every turn, or crashing on resume, when its history held a malformed delta attachment — fixed.
Terminal and input
- Windows paths with
\u-prefixed segments (likeC:\Users\unicorn) being corrupted into CJK characters in tool inputs, which made those files inaccessible — fixed. - The left arrow key discarding the conversation with no undo — fixed: presses right after editing now ask to confirm, and Esc in the agent view returns to the conversation it backgrounded.
- Multi-line paste collapsing into one line with
jin place of newlines in terminals that encode pasted newlines as Ctrl+J — fixed. - Mojibake when a long IDE selection was truncated mid-emoji — fixed, along with a case where a tool executor error could be silently dropped.
Accessibility
- VoiceOver reading “new line” instead of echoing the typed space at the end of the input in
--ax-screen-readermode — fixed. - Plugin and settings panels not moving the terminal cursor to the focused row, so screen readers and magnifiers couldn’t follow arrow-key navigation — fixed.
MCP and remote sessions
- The “N MCP servers need authentication” startup notice over-counting claude.ai connectors that aren’t connected in claude.ai — fixed.
- Remote sessions continuing to send heartbeats after their worker was replaced, which left long-lived desktop and IDE processes retrying a rejected request every few seconds forever — fixed.
- Pull request events occasionally being lost when a session exited immediately after creating or linking a PR — fixed.
Bedrock and gateway
- Gateway spend metering not pricing Bedrock application-inference-profile ARNs and other config-mapped upstream model IDs at the configured model’s rates — fixed.
- The Bedrock setup wizard failing profile verification for assume-role profiles in partitioned AWS regions and on proxy-only networks — fixed.
Trust and stability
- Agent frontmatter hooks running from untrusted folders — fixed: hooks now require the agent file’s own folder to have accepted workspace trust.
- Crashes (maximum call stack exceeded) when a deeply nested watched directory tree was deleted or moved, and when rendering deeply nested UI trees — fixed.
- Rare negative or incorrect turn duration measurements after a system clock adjustment — fixed by timing turns with a monotonic clock.
- Prompt history entries being dropped or duplicated when history writes raced or failed — fixed.
Notes
/code-reviewnow runs in the background — review output no longer fills your conversation, and slash commands you stack after starting a review stay as its review target.context: forkskills default to the background — setbackground: falseon a skill to keep it in the foreground./deep-researchno longer starts on its own — Claude won’t launch it autonomously, so invoke it manually when you need it.- Agent names can’t contain
:— the colon is reserved for plugin namespacing. Rename any existing agent whose name contains:to avoid load failures after updating. - Frontmatter booleans accept
yes/no/on/off/1/0— skill and plugin settings now recognize these alongsidetrue/false.