What changed
Claude Code 2.1.203 shipped on July 7, 2026. Most of this release lands on background agent and session reliability: sessions that went unresponsive or silently dropped their in-progress work, and sessions that failed after inheriting a stale environment (PATH, ANTHROPIC_BASE_URL) from the daemon, are now fixed, along with a batch of git worktree isolation regressions. A few small conveniences — a login-expiry warning and a manual permission mode indicator — are added too.
New features
-
Login-expiry warning
When your login expired, background sessions were interrupted without notice. A warning now appears when your login is about to expire, so you can re-authenticate before background sessions are interrupted.
-
Grey ⏸ badge for manual permission mode
It wasn’t obvious at a glance whether you were in manual permission mode. A grey ⏸ badge now shows in the footer when in manual permission mode, making the active mode always visible.
-
Additional working directories in MCP
roots/listMCP servers had no way to see a session’s additional working directories. The session’s additional working directories are now added to MCP
roots/list, withnotifications/roots/list_changedsent when the set changes. -
[VS Code] Toggle for Remote Control on all sessions
There was no setting to enable Remote Control across every session in VS Code. A Settings toggle for “Enable Remote Control for all sessions” has been added.
Key improvements
-
More responsive while long responses stream
While a long response streamed, live-preview updates re-rendered the whole screen. Live-preview updates no longer re-render the whole screen, keeping the session responsive during streaming.
-
Context-usage indicator no longer re-analyzes the transcript every turn
In interactive sessions, the context-usage indicator re-analyzed the entire transcript after every turn, causing a memory and per-turn CPU regression. It no longer re-analyzes the entire transcript after every turn.
-
Less re-delegation from subagents
Subagents sometimes re-delegated their entire task to another subagent. Agents are now less likely to re-delegate their entire task.
-
~7 MB smaller binary and startup memory
A large bundled dependency was inlined, inflating both the binary and startup memory. Loading it lazily instead of inlining it reduces binary size by ~7 MB and startup memory by ~7 MB.
-
Left arrow no longer closes detail views
The left arrow closed the background tasks, diff, and workflow detail views, making it easy to leave a view by accident. Left arrow no longer closes them — press Esc instead.
-
Organized empty
claude agentsviewThe empty
claude agentsview showed no structure. It now always shows the organized sections (Needs input / Working / Completed) with descriptions. -
Startup warnings moved to
/doctorand/statusThe “claude command missing or broken” warnings appeared on startup every time. They’ve been removed from startup and now appear in
/doctorand/statusinstead. -
Redundant
claude agentsfooter hint removedA redundant navigation hint in the
claude agentsfooter has been removed.
Bug fixes
Background agents and sessions
- Background sessions becoming permanently unresponsive to attach, replies, and stop when the daemon’s session token went stale — the session now recovers automatically.
- Returning to
claude agentssilently stopping running subagents and re-running the prompt from scratch — their work now carries over. - Opening or switching background agent sessions on macOS stalling for 15–20 seconds due to a false low-memory detection (regression in 2.1.196). Fixed.
- Background agents inheriting a stale
PATHfrom the daemon instead of the dispatching shell, causing missing tools on Windows. Fixed. - Background and agent-view sessions dropping a shell-exported
ANTHROPIC_BASE_URL, which sent API keys to the default endpoint and failed with 401. Fixed. - Background agents crash-looping when their working directory was deleted, replaced by a file, or became an invalid path — they now fail once with a clear error.
- A background daemon auto-upgrade failure silently killing all running background sessions. Fixed.
TaskStopandTaskOutputfailing to find background agents spawned by another agent — errors now list running agents by id and description.- Background sessions ignoring
effortLevelchanges in settings.json when forked through the daemon. Fixed. - Attached background sessions ignoring
CLAUDE_CODE_DISABLE_MOUSEandCLAUDE_CODE_DISABLE_MOUSE_CLICKSopt-outs. Fixed. - The
claude agentscomposer discarding your typed message when a slash command isn’t available there. Fixed. - The agent list crashing when opening a stopped session whose conversation was already open in another session. Fixed.
- Background sessions showing “Needs input” in the agent list after the question was already answered. Fixed.
- Background agent startup failures showing only “exit_with_message” instead of the actual error. Fixed.
/exitincorrectly warning about running background agents after all named agents had completed. Fixed.- Background task output on Windows being permanently replaced by an empty file after
/clear. Fixed.
Git worktree isolation
- Bash failing with “argument list too long” in repos with many git worktrees. Fixed.
- Worktree-isolated subagents sometimes running shell commands in the parent checkout instead of their own worktree. Fixed.
- Worktree creation rejecting nested repositories in multi-repo workspaces, leaving background sessions unable to isolate and edit. Fixed.
- Background sessions started from a non-git directory unable to edit files when a
WorktreeCreatehook was configured. Fixed. - The
@directory picker inclaude agentsnot showing registered git worktrees. Fixed.
Terminal and display
- Content jumping when scrolling up through long transcript history. Fixed.
- The terminal flickering and jumping while typing in bash mode when a shell-history suggestion was shown. Fixed.
- Literal
^[[I/^[[Oescape codes being printed when reattaching to a background session. Fixed.
Plugins
- LSP-only plugins being incorrectly flagged for disuse when their language servers deliver diagnostics or answer navigation requests. Fixed.
Notes
- Left arrow → Esc — The background tasks, diff, and workflow detail views no longer close on left arrow. Press Esc to leave a view.
- Startup warnings relocated — The “claude command missing or broken” warnings no longer appear on startup; check
/doctorand/statusinstead. A missing warning doesn’t mean the problem is gone, so run/doctorif you suspect a broken install. - Use the login-expiry warning — If you run background sessions for a long time, re-authenticate when the login-expiry warning appears to keep them from being interrupted.
- Re-check background sessions that rely on shell env vars — If you export
ANTHROPIC_BASE_URLorPATHin your shell, this fix passes them through to background sessions correctly. If you hit 401 errors or missing tools before, they should be resolved after updating.