Skip to main content

Claude Code v2.1.222: Stronger Worktree Isolation, Remote Control Auto-Start Changes, and Ultraplan Removed

Claude Code v2.1.222 stops worktree-isolated sessions from running destructive git commands on the main checkout, blocks repo-local settings from enabling Remote Control auto-start, and removes ultraplan.

Claude Code v2.1.222 is a fix-focused release with 21 changelog entries. Several changes tighten safety: worktree isolation now applies to file edits and Bash in every session type, PreToolUse auto-allow hooks no longer bypass tool restrictions in background agent tasks, and auto mode now classifies SendMessage messages before dispatch. The release also changes how Remote Control auto-start can be enabled, removes the ultraplan feature, and fixes proxy, usage-reporting, and connector issues.

What’s New

Worktree Isolation Now Covers Edits and Bash Everywhere

Worktree-isolated sessions and their subagents could previously run destructive git commands against the main checkout. That is fixed: isolation now applies to file edits and Bash in every session type.

Remote Control Auto-Start Can’t Be Enabled by Repo-Local Settings

Repo-local settings (.claude/settings.json or .claude/settings.local.json) can no longer turn on Remote Control auto-start, though they can still turn it off. To enable it, use user scope via /config.

Ultraplan Removed

The ultraplan feature has been removed.

Auto Mode Checks SendMessage Before Dispatch

In auto mode, messages sent to other agent sessions via SendMessage are now evaluated by the permission classifier before dispatch. Separately, SendMessage now truncates a long summary instead of rejecting it, so sends no longer fail on a character limit.

Diffs Use Raw Git Blob Content

The /diff view, the Remote Control workspace diff, and file-edit diffs in Claude Code on the web sessions now use raw git blob content, ignoring workspace-configured diff drivers and textconv.

Fixes and Improvements

Hooks, skills, and permissions

  • PreToolUse auto-allow hooks no longer bypass tool restrictions in background agent tasks (summaries, compaction, renames).
  • When Claude tries to invoke a skill with disable-model-invocation, the refusal now tells Claude to ask you to run the skill instead of replicating its workflow.

Usage and credits

  • /usage-credits on Team and Enterprise no longer shows “you’ve already sent a usage credit request” to members whose earlier request was dismissed, which had blocked them from sending a new one.
  • /usage no longer overattributes usage to MCP servers: a server’s share now reflects only the requests that actually consumed its tool results, instead of every turn after any call to it.

Network and connectivity

  • The startup connectivity check no longer hangs and then fails behind an HTTPS proxy; it now uses the same proxy-aware transport as API requests and times out with a clear message.
  • “Connection closed mid-response” errors are no longer reported on responses that had actually completed.
  • The stream idle timeout no longer fires on custom ANTHROPIC_BASE_URL gateways while server keep-alive pings are arriving on the wire.

MCP and connectors

  • claude.ai connectors are no longer falsely marked as needing authorization when the session token is invalid; they now show a /login hint instead.
  • Tool errors are now displayed for tools that are no longer available locally, for example after an MCP server is removed.

Subagents and models

  • Org-restricted model: opus-style subagent and teammate family aliases now step down to the newest org-allowed model in the family instead of dropping to the parent model.
  • The spinner’s effort label in a subagent’s transcript view now shows the subagent’s own effort: setting instead of the session’s effort level.
  • Host model-selection keys now take precedence over a stale on-disk managed-settings.json when CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST is set.

Pull requests

  • Sessions now link to pull requests created after the branch was pushed, including through the GitHub REST API.

Accessibility and stability

  • In --ax-screen-reader mode, screen readers no longer re-read the whole input line on every backspace; end-of-line deletions now echo just the deleted characters.
  • Rare crashes when a file watcher hit a filesystem error, or during file-watcher teardown, are fixed.

How to Update

  1. Check your installed version: claude --version
  2. Update in place: claude update
  3. Repo-local settings can no longer turn on Remote Control auto-start; if you relied on them, enable it at user scope via /config.