claudekit / updates / claude-code-2-1-162
[ PATCH · ]

Claude Code 2.1.162

`claude agents --json` now includes `waitingFor` showing what a waiting session is blocked on, and `--tools` finally provides the dedicated Grep/Glob tools on native builds when you list them. Slash command autocomplete clicks now fill the prompt instead of running immediately, and Remote Control moves from a startup message to a persistent footer pill. Plus a round of fixes for silent startup hangs on read-only config dirs, WebFetch permission rules being skipped for preapproved domains, and Windows permission rules never matching backslash paths.

Official announcement →

This article is a summary based on official documentation.

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 --json includes waitingFor

    It was hard to tell from JSON what a waiting session was actually blocked on. The output now includes a waitingFor field that surfaces the reason (e.g. a permission prompt) to external tooling.

  • --tools listing Grep/Glob actually provides them

    Explicitly listing Grep/Glob in --tools previously had those names silently ignored on native builds with embedded search. Listing them now provides the dedicated search tools.

  • /effort confirms when the chosen level persists as the default

    It was ambiguous whether the selected effort level would carry over to new sessions. /effort now 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 /ide menu, /terminal-setup, and /scroll-speed now 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 update verification wait out endpoint-security scanning

    Background service startup and claude update verification 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 string errors for classifier side-queries and MCP server descriptions containing emoji near a truncation boundary — fixed.
  • MCP per-server timeout config 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 to MCP_TOOL_TIMEOUT or default), and claude mcp get annotates them accordingly.
  • LSP tool’s workspaceSymbol operation returning no results — it now accepts a query parameter and passes it to the language server.

claude agents & sessions

  • claude agents cutting 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 agents truncating long session names at 40 columns — the name column grows with terminal width.
  • claude agents attach occasionally bouncing straight back to the session list on the first try after a background-service restart — fixed.
  • claude agents Ctrl+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 when CLAUDE_CODE_TMPDIR or $TMPDIR points at a deep directory — fixed.
  • Opening a running background session from claude agents stalling 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 changedWebFetch(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 timeout configuration — sub-1000 ms values are ignored and fall back to MCP_TOOL_TIMEOUT or the default. Use claude mcp get to see the effective timeout.
  • --tools with Grep/Glob — listing Grep and Glob explicitly 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-speed now show Devin Desktop, but it’s the same editor — no configuration changes are needed.