Claude Code v2.1.218 Major Updates - Background execution of /code-review and detailed display of MCP connection errors

Claude Code v2.1.218 Major Updates - Background execution of /code-review and detailed display of MCP connection errors

Claude Code v2.1.218 has been released. It is a highly anticipated release with many changes that directly impact day-to-day usability, including reduced context consumption and revised permission checks. I tried out the new MCP connection error detail display feature.
2026.07.23

This page has been translated by machine translation. View original

This is Ishikawa from the Cloud Business Division. Claude Code v2.1.218 (released 2026-07-22) has been released. I feel this is a highly anticipated release with many changes that directly impact day-to-day usability. I tried out the new feature for displaying detailed MCP connection errors.

The previous update article is here.

https://dev.classmethod.jp/articles/20260722-cc-updates-v2-1-217/

Update Summary

v2.1.218 includes 37 changes. The breakdown is 4 new features, 7 improvements, 2 security fixes, and 22 bug fixes, with 2 behavioral changes that could constitute breaking changes. The focus is on revisions to review and permission-related behavior, along with accumulated stability fixes.

Notable Updates

/code-review Now Runs as a Background Subagent

/code-review now runs as a background subagent. Review work no longer consumes conversation context, and stacked slash commands are retained as review targets.

Since even large reviews no longer put pressure on conversation context, I feel this is an impactful change for those who handle both reviewing and implementation within the same session.

Detailed Display of MCP Connection Errors

claude mcp list and /mcp now display HTTP status and error text when a connection to a server fails. A warning has also been added for when MCP configuration values contain invisible whitespace at the beginning or end.

I feel that the more MCP servers you have configured, the more time this will save when investigating connection issues.

Fix for Lost Conversations and Files

On Windows, a bug was fixed where paths containing segments starting with \u (e.g., C:\Users\unicorn) were corrupted into CJK characters within tool input, making the target files inaccessible. For those using Claude Code on Windows, this is probably a long-awaited fix.

A bug was also fixed where pressing the left arrow key would irrecoverably discard a conversation. It now prompts for confirmation when pressed immediately after editing, and pressing Esc in the agent view returns to the original conversation that was backgrounded. I feel this is a reassuring fix for anyone who has accidentally lost a conversation through a miskey.

Workspace Trust Now Required for Agent Hook Execution

A bug was fixed where hooks from agent frontmatter could be executed from untrusted folders. Hook execution now requires that the agent file's own folder has workspace trust approved.

For those who frequently open third-party repositories, I feel it is reassuring that hook execution is now limited to trusted folders.

Revision of Permission Checks in auto Mode and Manualization of /deep-research

In auto mode, the checks for dangerous rm, background &, and suspicious Windows paths no longer open the permission dialog, and are now determined by the auto mode classifier. Since there will be fewer situations where permission dialogs interrupt your workflow in auto mode, I feel this is an impactful change for those who use it in a "set it and let it run" style.

Additionally, /deep-research now only starts when manually invoked and will no longer be launched autonomously by Claude. Since heavy research tasks will no longer run at unintended times, this should be a welcome change for those who want to control token consumption.

Update Details

New Features

  • claude mcp list and /mcp now display HTTP status and error text on server connection failure. A warning for invisible whitespace at the beginning or end of MCP configuration values has also been added (mentioned above)
  • In --ax-screen-reader mode, deleted text is now announced by the screen reader during word/line deletion operations (Option+Delete, Ctrl+W, Cmd+Backspace, Ctrl+U, Ctrl+K)
  • When fast mode changes as a result of switching models via /config model=<x> or Remote Control, this is now announced
  • Skill/plugin frontmatter boolean values now accept yes/no/on/off/1/0 (case-insensitive) in addition to true/false

Improvements

  • Changed /code-review to run as a background subagent (mentioned above)
  • Changed the checks for dangerous rm, background &, and suspicious Windows paths in auto mode from permission dialogs to classifier determination (mentioned above)
  • Changed /deep-research to only start when manually invoked (mentioned above)
  • In plan mode combined with auto, Bash commands that static analysis cannot prove are read-only no longer show a confirmation prompt and are instead determined by the auto mode classifier
  • Improved error feedback in /ultrareview so Claude can correct invalid arguments instead of retrying them as-is
  • The trust dialog now shows the name of the repository root to which the permission applies
  • In server-managed settings, toggling harmless feature/cost settings no longer triggers a settings approval prompt

Security

  • Fixed a bug where agent frontmatter hooks could be executed from untrusted folders (mentioned above)
  • Improved sandbox command restrictions for IDE operations

Bug Fixes

  • Fixed Windows path corruption: Fixed an issue where paths containing segments starting with \u were corrupted into CJK characters, making files inaccessible (mentioned above)
  • Fixed conversation discard via left arrow key: Fixed an issue where conversations were irrecoverably discarded (mentioned above)
  • Fixed spend metering when using Bedrock: Gateway spend metering now correctly prices Bedrock application-inference-profile ARNs and other configured upstream model IDs at the rate of the configured model
  • Fixed Bedrock setup wizard validation failure: Fixed an issue where profile validation failed for assume-role profiles in partitioned AWS regions and proxy-only networks
  • Fixed crashes from deep nesting: Fixed crashes (maximum call stack exceeded) when deleting or moving deeply nested watched directory trees, or when rendering deeply nested UI trees
  • Fixed retry loop after context overflow: Fixed an issue where after a context overflow error with a large thinking budget, the same inevitably-failing request was repeatedly resent. Also applied the same background shell limit used by other paths to backgrounding via Ctrl+B
  • Fixed failures and crashes on session resume: Fixed an issue where sessions containing malformed delta attachments in their history would fail or crash on every turn when resumed
  • Fixed infinite retry of remote sessions: Fixed an issue where heartbeats continued to be sent after a worker was replaced, causing long-running desktop and IDE processes to retry rejected requests every few seconds
  • A quietly satisfying fix: Fixed an issue where the "N MCP servers require authentication" notification at startup overcounted claude.ai connectors that were not connected on the claude.ai side. For those who saw "authentication required" notifications at every startup that didn't match reality, this is a quietly satisfying fix.
  • In addition, numerous minor bugs have been fixed, including corrupted multi-line pastes, argument handling in /ultrareview and /code-review ultra, false messages and display inconsistencies during tool interruption, missing and duplicate prompt history, and screen reader support.

Breaking Changes

Skills with context: fork Now Run in Background by Default

Skills specifying context: fork now run in the background by default. To maintain the previous behavior, opt out by specifying background: false in the frontmatter for each skill.

After the change (v2.1.218 and later, to maintain previous behavior):

---
context: fork
background: false
---

Agent Definitions Containing ":" in the Name Are Now Rejected

In agent Markdown files, agent names containing : are now rejected. : is reserved for plugin namespacing. If you are using such a name, you will need to change it to a name that does not contain :. Here is a configuration example.

Before (example that was not rejected up to v2.1.217):

name: my:agent

After (v2.1.218 and later):

name: my-agent

Trying Out the New MCP Connection Error Detail Display

In the v2.1.218 environment, I ran claude mcp list to check the display for servers that failed to connect.

Preparation

To force errors or return arbitrary response codes, I started a dummy local MCP server.

% python3 -c "
from http.server import BaseHTTPRequestHandler, HTTPServer
class H(BaseHTTPRequestHandler):
    def do_POST(self):
        if self.path == '/401':
            body = b'Invalid API key: authentication required for this MCP endpoint'
            self.send_response(401)
        else:
            body = b'Service temporarily unavailable: upstream MCP backend is down'
            self.send_response(503)
        self.send_header('Content-Length', str(len(body)))
        self.end_headers()
        self.wfile.write(body)
    do_GET = do_POST
HTTPServer(('127.0.0.1', 8931), H).serve_forever()" &
[1] 45960
:
:

I registered the MCP servers.

% claude mcp add --transport http test-http-503 http://127.0.0.1:8931/503
Added HTTP MCP server test-http-503 with URL: http://127.0.0.1:8931/503 to local config
File modified: /Users/ishikawa.satoru/.claude.json [project: /Users/ishikawa.satoru/workspaces/cc/blog/20260723-v2.1.218/tryit]

% claude mcp add --transport http test-auth http://127.0.0.1:8931/401 \
  --header "Authorization: Bearer wrong-token"
Added HTTP MCP server test-auth with URL: http://127.0.0.1:8931/401 to local config
Headers: {
  "Authorization": "[REDACTED]"
}
File modified: /Users/ishikawa.satoru/.claude.json [project: /Users/ishikawa.satoru/workspaces/cc/blog/20260723-v2.1.218/tryit]

Verification with claude mcp list

The CHANGELOG states both claude mcp list and /mcp, but in practice the list side only showed ✘ Failed to connect.

% claude mcp list
:
(abbreviated)
:
test-http-503: http://127.0.0.1:8931/503 (HTTP) - ✘ Failed to connect
test-auth: http://127.0.0.1:8931/401 (HTTP) - ✘ Failed to connect

Verification with /mcp

In the server list, test-auth and test-http-503 both show only ✘ Failed.

20260723-cc-v2_1_218-1

test-auth is displayed with the case where the Authorization header was rejected (with HTTP status).

20260723-cc-v2_1_218-2

test-http-503 displays the error text from the response body.

20260723-cc-v2_1_218-3

Results

In the actual environment, I was able to confirm at a glance that failing servers were listed as ✘ Failed to connect. Note that the servers that were failing this time were stdio-type (command-launched) servers, so I was not able to confirm the new feature of HTTP status and error text display itself.

Since there used to be few clues when an MCP server "wouldn't connect" and it took considerable effort to isolate the issue, having the HTTP status and error text visible through standard commands is straightforwardly useful as a first step in troubleshooting, especially now that remote MCP server usage is growing.

Closing Thoughts

I feel v2.1.218 is a release where changes aimed at reducing "interruptions" to work stand out, such as the backgrounding of /code-review and the revision of permission checks in auto mode. With 37 changes in a single version, the steady accumulation of minor fixes is also notable.

Those who have created their own context: fork skills or agent definitions should check their definition files, and everyone else should update and give it a try.

References

https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md

https://code.claude.com/docs/en/changelog

https://dev.classmethod.jp/articles/20260722-cc-updates-v2-1-217/


Claudeならクラスメソッドにお任せください

クラスメソッドは、Anthropic社とリセラー契約を締結しています。各種製品ガイドから、業種別の活用法、フェーズごとのお悩み解決などサービス支援ページにまとめております。まずはご覧いただき、お気軽にご相談ください。

サービス詳細を見る

Share this article

AI白書