What changed
Claude Code 2.1.162 shipped on June 3, 2026. Diagnostics on claude agents and the slash command and Remote Control surfaces got clearer, and a backlog of regressions and edge cases across permission rules, MCP timeouts, LSP, and background sessions all landed together.
Improvements
-
claude agents --jsonincludeswaitingForIt was hard to tell from JSON what a waiting session was actually blocked on. The output now includes a
waitingForfield that surfaces the reason (e.g. a permission prompt) to external tooling. -
--toolslisting Grep/Glob actually provides themExplicitly listing
Grep/Globin--toolspreviously had those names silently ignored on native builds with embedded search. Listing them now provides the dedicated search tools. -
/effortconfirms when the chosen level persists as the defaultIt was ambiguous whether the selected effort level would carry over to new sessions.
/effortnow confirms when your chosen level will persist as the default for new sessions. -
Slash command autocomplete clicks fill the prompt instead of running
Clicking a slash command in the autocomplete menu used to run it immediately, sometimes triggering an unintended action. Clicks now fill the command into your prompt; press Enter to run.
-
Remote Control as a persistent footer pill
Remote Control status used to appear as a startup message that scrolled away, making it hard to tell whether it was still active. It now shows as a persistent footer pill with a link to the session.
-
Windsurf renamed to Devin Desktop
Following the editor’s rebrand, the
/idemenu,/terminal-setup, and/scroll-speednow refer to it as Devin Desktop. -
Quieter startup
Notices group by severity, and session info and announcements share a single line per launch. Startup warnings were rewritten to be shorter and clearer, each with a concrete fix. Launch-prompt warnings (deep link / pre-filled prompt) now stay pinned below the input until you act instead of scrolling away.
-
Failed turns show a compact warning line
Failed turns previously rendered as a multi-line red error block. They now show as a compact warning line.
-
Background service startup and
claude updateverification wait out endpoint-security scanningBackground service startup and
claude updateverification were failing after 5 seconds when endpoint-security tools were scanning new binaries. They now wait out the scan, so startup and update complete reliably in environments with security agents in place.
Bug fixes
Startup, config & permissions
- Silent startup hang when the config directory is read-only or unwritable — Claude Code now starts with in-memory config and surfaces startup errors instead of showing a blank screen.
- WebFetch permission rules not being applied to built-in preapproved domains — explicit
WebFetch(domain:...)deny/ask/allow rules now take precedence over the preapproved-host auto-allow. - Windows permission rules never matching when spelled with backslashes (
~\,\\server\share) or case-variant paths, and Read deny rules not hiding files from Glob/Grep results — fixed.
API, MCP & telemetry
- API 400
no low surrogate in stringerrors for classifier side-queries and MCP server descriptions containing emoji near a truncation boundary — fixed. - MCP per-server
timeoutconfig values below 1000 ms being floored to a 1-second watchdog that aborted every tool call — sub-1000 ms values are now ignored (falling back toMCP_TOOL_TIMEOUTor default), andclaude mcp getannotates them accordingly.
LSP & search
- LSP tool’s
workspaceSymboloperation returning no results — it now accepts aqueryparameter and passes it to the language server.
claude agents & sessions
claude agentscutting live status text (tool args, replies, prompts, exec output) at 60–120 columns on wide terminals — status detail now uses the full terminal width.claude agentstruncating long session names at 40 columns — the name column grows with terminal width.claude agentsattach occasionally bouncing straight back to the session list on the first try after a background-service restart — fixed.claude agentsCtrl+V image paste doing nothing in the dispatch input and the session reply box — pasting with no image now shows a hint.- Backgrounding a session with ← silently losing the conversation when the background service cannot start — the session stays in the list as a failed row you can wake with Enter.
- Replies from the agents view that fail to send being lost — they’re now queued for delivery on the next session start.
- Cross-session messaging (
SendMessage) silently breaking whenCLAUDE_CODE_TMPDIRor$TMPDIRpoints at a deep directory — fixed. - Opening a running background session from
claude agentsstalling for 5 seconds before attaching — fixed. - An interrupt (Esc) sent at the very start of a turn being silently dropped in stream-json/SDK sessions, leaving the turn running with no “Interrupted” feedback — fixed.
Notes
- WebFetch permission precedence changed —
WebFetch(domain:...)deny/ask/allow rules now win over the preapproved-host auto-allow. Environments that locked down a preapproved domain (deny, or ask) should verify the rules now behave as intended. - Windows permission rule normalization — patterns that were silently bypassed by backslash spelling, UNC paths, or case differences now match. Conservatively written deny rules will actually enforce; check whether any policy applies more broadly than intended.
- MCP
timeoutconfiguration — sub-1000 ms values are ignored and fall back toMCP_TOOL_TIMEOUTor the default. Useclaude mcp getto see the effective timeout. --toolswith Grep/Glob — listingGrepandGlobexplicitly is required on native builds to get the dedicated search tools. These names are no longer silently dropped.- Slash command autocomplete behavior — menu clicks fill the prompt instead of running. Press Enter to execute.
- Windsurf rename —
/ide,/terminal-setup, and/scroll-speednow show Devin Desktop, but it’s the same editor — no configuration changes are needed.