diff --git a/CHANGELOG.md b/CHANGELOG.md
index d4dab2e6..e02bb2ee 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,36 @@
# Changelog
+## 2.1.162
+
+- `claude agents --json` now includes `waitingFor` showing what a waiting session is blocked on (e.g. permission prompt)
+- `--tools`: explicitly listing Grep/Glob now provides the dedicated search tools on native builds with embedded search (previously these names were silently ignored)
+- `/effort` now confirms when your chosen level will persist as the default for new sessions
+- Clicking a slash command in the autocomplete menu now fills it into your prompt instead of running it immediately; press Enter to run
+- Remote Control now shows as a persistent footer pill (with a link to the session) instead of a startup message
+- Renamed Windsurf to Devin Desktop in the `/ide` menu, `/terminal-setup`, and `/scroll-speed`, following the editor's rebrand
+- Fixed a 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
+- Fixed 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
+- Fixed 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 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 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
+- Fixed the LSP tool's `workspaceSymbol` operation returning no results; it now accepts a `query` parameter and passes it to the language server
+- Fixed `claude agents` cutting live status text (tool args, replies, prompts, exec output) at 60–120 columns on wide terminals; the status detail now uses the full terminal width
+- Fixed `claude agents` truncating long session names at 40 columns; the name column now grows with terminal width
+- Fixed `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
+- Fixed 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
+- Fixed replies from the agents view that fail to send being lost; they are now queued for delivery on the next session start
+- Fixed 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
+- Quieter startup: notices group by severity, and session info and announcements share a single line per launch
+- Startup warnings 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 now show a compact warning line instead of a multi-line red error block
+- Improved background service startup and `claude update` verification to wait out endpoint-security scanning of new binaries instead of failing after 5 seconds
+- Background dispatch spawn failures now report the error class name when no errno is available
+- Removed the "Claude in Chrome enabled" and "marketplace installed" startup messages; model auto-updates and the team-onboarding tip now show as quiet notices under the logo
+
## 2.1.161
- `OTEL_RESOURCE_ATTRIBUTES` values are now included as labels on metric datapoints, so you can slice usage metrics by custom dimensions like team or repo
diff --git a/feed.xml b/feed.xml
index e7586288..ae4f1dae 100644
--- a/feed.xml
+++ b/feed.xml
@@ -6,7 +6,41 @@
Anthropic
- 2026-06-02T21:58:16Z
+ 2026-06-03T21:31:28Z
+
+ https://github.com/anthropics/claude-code/releases/tag/v2.1.162
+ Claude Code v2.1.162
+
+ 2026-06-03T21:31:28Z
+ <p>• claude agents --json now includes waitingFor showing what a waiting session is blocked on (e.g. permission prompt)</p>
+<p>• --tools: explicitly listing Grep/Glob now provides the dedicated search tools on native builds with embedded search (previously these names were silently ignored)</p>
+<p>• /effort now confirms when your chosen level will persist as the default for new sessions</p>
+<p>• Clicking a slash command in the autocomplete menu now fills it into your prompt instead of running it immediately; press Enter to run</p>
+<p>• Remote Control now shows as a persistent footer pill (with a link to the session) instead of a startup message</p>
+<p>• Renamed Windsurf to Devin Desktop in the /ide menu, /terminal-setup, and /scroll-speed, following the editor's rebrand</p>
+<p>• Fixed a 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</p>
+<p>• Fixed 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</p>
+<p>• Fixed 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</p>
+<p>• 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</p>
+<p>• Fixed API 400 no low surrogate in string errors for classifier side-queries and MCP server descriptions containing emoji near a truncation boundary</p>
+<p>• 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</p>
+<p>• Fixed the LSP tool's workspaceSymbol operation returning no results; it now accepts a query parameter and passes it to the language server</p>
+<p>• Fixed claude agents cutting live status text (tool args, replies, prompts, exec output) at 60–120 columns on wide terminals; the status detail now uses the full terminal width</p>
+<p>• Fixed claude agents truncating long session names at 40 columns; the name column now grows with terminal width</p>
+<p>• Fixed claude agents attach occasionally bouncing straight back to the session list on the first try after a background-service restart</p>
+<p>• 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</p>
+<p>• Fixed 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</p>
+<p>• Fixed replies from the agents view that fail to send being lost; they are now queued for delivery on the next session start</p>
+<p>• Fixed cross-session messaging (SendMessage) silently breaking when CLAUDE_CODE_TMPDIR or $TMPDIR points at a deep directory</p>
+<p>• Fixed opening a running background session from claude agents stalling for 5 seconds before attaching</p>
+<p>• Quieter startup: notices group by severity, and session info and announcements share a single line per launch</p>
+<p>• Startup warnings rewritten to be shorter and clearer, each with a concrete fix</p>
+<p>• Launch-prompt warnings (deep link/pre-filled prompt) now stay pinned below the input until you act instead of scrolling away</p>
+<p>• Failed turns now show a compact warning line instead of a multi-line red error block</p>
+<p>• Improved background service startup and claude update verification to wait out endpoint-security scanning of new binaries instead of failing after 5 seconds</p>
+<p>• Background dispatch spawn failures now report the error class name when no errno is available</p>
+<p>• Removed the "Claude in Chrome enabled" and "marketplace installed" startup messages; model auto-updates and the team-onboarding tip now show as quiet notices under the logo</p>
+ https://github.com/anthropics/claude-code/releases/tag/v2.1.161Claude Code v2.1.161
@@ -581,60 +615,4 @@
<p>• Fixed native terminal cursor not staying at the input caret when the terminal loses focus</p>
<p>• Plugins now warn when a default component folder (e.g. commands/) is silently ignored because plugin.json sets the matching key. Shown in /doctor, claude plugin list, and /plugin.</p>
-
- https://github.com/anthropics/claude-code/releases/tag/v2.1.139
- Claude Code v2.1.139
-
- 2026-05-18T01:52:01Z
- <p>• Added agent view (Research Preview): a single list of every Claude Code session — running, blocked on you, or done. Run claude agents to get started. See https://code.claude.com/docs/en/agent-view</p>
-<p>• Added /goal command: set a completion condition and Claude keeps working across turns until it's met. Works in interactive, -p, and Remote Control. Shows live elapsed/turns/tokens as an overlay panel</p>
-<p>• Added /scroll-speed command to tune mouse wheel scroll speed with a live preview</p>
-<p>• Added claude plugin details <name> to show a plugin's component inventory and projected per-session token cost</p>
-<p>• Added transcript view navigation: ? for keyboard shortcuts, {/} to jump between user prompts, v to toggle shortcut panel</p>
-<p>• Added hook args: string[] field (exec form) that spawns the command directly without a shell, so path placeholders never need quoting</p>
-<p>• Added hook continueOnBlock config option for PostToolUse — set to true to feed the hook's rejection reason back to Claude and continue the turn</p>
-<p>• MCP stdio servers now receive CLAUDE_PROJECT_DIR in their environment, matching hooks. Plugin configs can reference ${CLAUDE_PROJECT_DIR} in commands</p>
-<p>• Compaction prompt now asks the model to preserve sensitive user instructions</p>
-<p>• /mcp Reconnect now picks up .mcp.json edits without a restart, and shows the HTTP status and URL when reconnecting fails</p>
-<p>• /context all per-skill token estimates now account for the model's tokenizer and show rounded values</p>
-<p>• claude plugin install <name>@<marketplace> now auto-refreshes the marketplace and retries before reporting a plugin as not found</p>
-<p>• /plugin installed-plugin details now show hook event names and MCP server names cleanly</p>
-<p>• /context now shows the providing plugin's name for plugin-sourced skills</p>
-<p>• Remote MCP server reconnect retry on transient failures is now enabled for all users</p>
-<p>• API requests from subagents now carry x-claude-code-agent-id / x-claude-code-parent-agent-id headers, and claude_code.llm_request OTEL spans include agent_id / parent_agent_id attributes</p>
-<p>• Remote Control, /schedule, claude.ai MCP connectors, and notification preferences are now disabled when ANTHROPIC_API_KEY / apiKeyHelper / ANTHROPIC_AUTH_TOKEN is set, even if a Claude.ai login also exists. Unset the API key to use these features</p>
-<p>• Fixed a deadlock where expired credentials and the forceRemoteSettingsRefresh policy setting blocked claude auth login/logout/status with no way to recover</p>
-<p>• Fixed autoAllowBashIfSandboxed not auto-approving commands with shell expansions like $VAR and $(cmd)</p>
-<p>• Fixed a bug where a hook writing to the terminal could corrupt an on-screen interactive prompt; hooks now run without terminal access</p>
-<p>• Fixed unbounded memory growth when an HTTP/SSE MCP server streams non-protocol data — response bodies now capped at 16 MB per SSE frame</p>
-<p>• Fixed Skill(name *) permission rules — the wildcard form now works as a prefix match, matching Bash(ls *) behavior</p>
-<p>• Fixed settings hot-reload not detecting edits to symlinked ~/.claude/settings.json</p>
-<p>• Fixed plugin details failing to load when the marketplace key differs from the manifest name</p>
-<p>• Fixed /model picker "Default" row not reflecting ANTHROPIC_DEFAULT_OPUS_MODEL/ANTHROPIC_DEFAULT_SONNET_MODEL overrides</p>
-<p>• Fixed spurious "stream idle timeout" 5 minutes after a response completed, caused by the watchdog timer not being cleared on stream cancellation</p>
-<p>• Fixed silent exit 1 when 10+ MCP servers are configured and the cache directory is unwritable — the error message now includes the underlying cause</p>
-<p>• Fixed a typing cursor blinking on tab names, list pointers, and select rows in dialogs</p>
-<p>• Fixed transcript view letter shortcuts not working after mouse click</p>
-<p>• Fixed Bash-mode up-arrow history repeating the first entry and clobbering the in-progress draft</p>
-<p>• Fixed pasting or dropping multiple images only inserting the last one</p>
-<p>• Fixed hyperlinks using unreadable dark navy on dark themes — they now adapt to the active theme</p>
-<p>• Fixed model picker showing a redundant "Current model" row for third-party users whose model is set to the opus alias</p>
-<p>• Fixed legacy Opus picker entry on PAYG 3P providers resolving to the same model as the default entry</p>
-<p>• Fixed mouse wheel scrolling speed in Cursor and VS Code 1.92–1.104; the trackpad now scrolls at a steady rate and the mouse wheel keeps ~3 lines per notch</p>
-<p>• Fixed scroll behavior in Windows Terminal and VS Code when attached to background sessions</p>
-<p>• Fixed MCP resources from disconnected servers lingering in @server: autocomplete</p>
-<p>• Fixed two-file diff snippets over-reporting the number of truncated lines by one</p>
-<p>• Fixed Grep results not relativizing Windows drive-letter paths and count mode reporting wrong totals for single-file paths</p>
-<p>• Fixed border-embedded text overflowing on CJK/emoji due to visual cell width miscalculation</p>
-<p>• Fixed fuzzy-match highlighting splitting emoji and astral-plane characters mid-pair</p>
-<p>• Fixed skill argument names containing regex metacharacters breaking argument substitution</p>
-<p>• Fixed ProgressBar rendering a full block for an almost-full fractional cell</p>
-<p>• Fixed task polling and fs.watch being resurrected when the last subscriber leaves while a fetch is in flight</p>
-<p>• Fixed plugin dependency resolution leaving a stale count when the manifest name differs from the source identifier</p>
-<p>• Fixed Insights Time-of-Day chart skewing when a session has an unparseable timestamp</p>
-<p>• Fixed keybindings using only the cmd/super/win modifier being flagged as unparseable</p>
-<p>• Fixed claude_code.active_time.total OpenTelemetry metric not being emitted in --print mode</p>
-<p>• Fixed claude plugin update not preserving cross-plugin symlinks inside a marketplace</p>
-<p>• [VSCode] Press Cmd/Ctrl+Shift+T to reopen the most recently closed session tab, configurable via claudeCode.enableReopenClosedSessionShortcut</p>
-