Skip to main content

Claude Code v2.1.203: Background Agent Reliability Overhaul and Performance Gains

Claude Code v2.1.203 delivers a login expiry warning, a manual permission mode badge, MCP roots for additional working directories, and a large batch of background session, worktree, and performance fixes.

July 7, 2026 10 min read By ClaudeWorld

The Claude Code development team has released version 2.1.203, a substantial update centered on background agent reliability. Alongside new quality-of-life features like a login expiry warning and a visible manual permission mode badge, this release fixes dozens of issues affecting background sessions, git worktrees, and the claude agents view, while also trimming binary size and startup memory.

What’s New

Login Expiry Warning

Claude Code now warns you when your login is about to expire, so you can re-authenticate before background sessions are interrupted. This prevents long-running work from silently stalling due to expired credentials.

Visible Manual Permission Mode

A grey ⏸ badge now appears in the footer when you are in manual permission mode, making the active permission mode always visible at a glance.

MCP Roots for Additional Working Directories

The session’s additional working directories are now included in MCP roots/list, with notifications/roots/list_changed sent whenever the set changes. MCP servers can now accurately track the full workspace scope of a session.

Background Session Reliability Fixes

This release resolves a long list of background agent issues:

  • Opening or switching background agent sessions on macOS no longer stalls for 15–20 seconds due to a false low-memory detection (a regression in 2.1.196)
  • Background sessions no longer become permanently unresponsive to attach, replies, and stop when the daemon’s session token goes stale — they now recover automatically
  • Returning to claude agents no longer silently stops running subagents and re-runs the prompt from scratch — their work now carries over
  • Background agents no longer inherit a stale PATH from the daemon, which caused missing tools on Windows
  • Background and agent-view sessions no longer drop a shell-exported ANTHROPIC_BASE_URL, which previously sent API keys to the default endpoint and failed with 401
  • Background agents no longer crash-loop when their working directory is deleted, replaced by a file, or becomes invalid — they now fail once with a clear error
  • A background daemon auto-upgrade failure no longer silently kills all running background sessions
  • TaskStop and TaskOutput can now find background agents spawned by another agent, and errors list running agents by id and description
  • Background sessions now respect effortLevel changes in settings.json when forked through the daemon, and honor the CLAUDE_CODE_DISABLE_MOUSE and CLAUDE_CODE_DISABLE_MOUSE_CLICKS opt-outs when attached
  • Background task output on Windows is no longer permanently replaced by an empty file after /clear

Git Worktree Fixes

  • Bash no longer fails with “argument list too long” in repos with many git worktrees
  • Worktree-isolated subagents no longer sometimes run shell commands in the parent checkout instead of their own worktree
  • Worktree creation no longer rejects nested repositories in multi-repo workspaces, which had left background sessions unable to isolate and edit
  • Background sessions started from a non-git directory can now edit files when a WorktreeCreate hook is configured
  • The @ directory picker in claude agents now shows registered git worktrees

Agents View and UI Improvements

  • The claude agents composer no longer discards your typed message when a slash command isn’t available there
  • The agent list no longer crashes when opening a stopped session whose conversation is already open in another session
  • Background sessions no longer show “Needs input” after the question was already answered, and startup failures now show the actual error instead of just “exit_with_message”
  • /exit no longer incorrectly warns about running background agents after all named agents have completed
  • Content no longer jumps when scrolling up through long transcript history, terminal flicker while typing in bash mode with a shell-history suggestion is fixed, and literal ^[[I / ^[[O escape codes no longer print when reattaching to a background session
  • The empty claude agents view now always shows the organized sections (Needs input / Working / Completed) with descriptions, and a redundant navigation hint was removed from its footer
  • Left arrow no longer closes the background tasks, diff, and workflow detail views — press Esc instead

Performance Improvements

  • Fixed a memory and per-turn CPU regression in interactive sessions: the context-usage indicator no longer re-analyzes the entire transcript after every turn
  • Binary size reduced by ~7 MB and startup memory by ~7 MB by loading a large bundled dependency lazily instead of inlining it
  • Improved responsiveness while long responses stream: live-preview updates no longer re-render the whole screen

Other Changes

  • Subagents are now less likely to re-delegate their entire task to another subagent
  • LSP-only plugins are no longer incorrectly flagged for disuse when their language servers deliver diagnostics or answer navigation requests
  • The startup “claude command missing or broken” warnings were removed — they now appear in /doctor and /status instead
  • VSCode: Added a Settings toggle for “Enable Remote Control for all sessions”

How to Update

To update to Claude Code v2.1.203:

  1. Check your current version: claude --version
  2. Update using your preferred method:
    • Package manager: Follow your distribution’s update process
    • Direct download: Visit the release page for platform-specific binaries
  3. Restart any active background sessions to benefit from the reliability fixes
  4. Note the keybinding change: use Esc instead of the left arrow to close the background tasks, diff, and workflow detail views