v2.1.163
Claude CodeSummary
This release introduces new managed settings for version enforcement and adds the `/plugin list` command for better plugin management. Several critical bugs were fixed, including hangs in background processes and permission rule application issues. Additionally, background agent sessions now update seamlessly without blocking the user upon restart.
New Features
- Added `requiredMinimumVersion` and `requiredMaximumVersion` managed settings to enforce Claude Code version compliance.
- Added `/plugin list` command with `--enabled`/`--disabled` filters to view installed plugins.
- Added a "c to copy" shortcut to `/btw` that copies the raw markdown answer to the clipboard, preserving formatting.
- Enabled Hooks (Stop and SubagentStop) to return `hookSpecificOutput.additionalContext` to provide feedback and continue the turn without error.
- Enabled the use of `$` escape syntax in Skills command bodies to include a literal `$` before a digit.
Bug Fixes
- Fixed `claude -p` hanging indefinitely after its final result when a backgrounded command never exits by stopping background shells after ~5s.
- Fixed `claude -p` failing with "ANTHROPIC_API_KEY required" on Bedrock/Vertex/Foundry when `CI=true` and no Anthropic API key is set.
- Fixed Bash commands failing under bazel and EDR-protected Go workflows by correcting the override of `$TMPDIR` to only apply to sandboxed commands.
- Fixed Bash commands failing on Windows with "EEXIST: file already exists" on the session-env directory when it was read-only or inside OneDrive.
- Fixed org-managed permission rules not applying for the entire session when managed settings fetch completed during startup on a fresh config directory.
- Fixed background sessions in `claude agents` losing running background tasks when reattaching after a Claude Code update.
- Fixed terminal misalignment and a multi-second hang when exiting the agent view by pressing Esc.
- Fixed clicking Stop on a background-task chip in the desktop app not clearing the chip when the underlying process was already gone.
- Fixed keyboard input becoming permanently unresponsive after a paste operation whose end marker was dropped by the terminal.
- Fixed hook `if: "Bash(...)"` conditions firing incorrectly by ensuring the pattern matches commands inside subshells and backticks.
- Fixed deny rules on home-directory paths (e.g. `Read(~/Desktop/**)`) not blocking Bash commands that reference the path via `$HOME`.
Improvements
- stdio MCP servers now receive the same `CLAUDE_CODE_SESSION_ID` as hooks/Bash on `--resume`.
- Background agent sessions now update to a new Claude Code version in the background, preventing waits on cold restarts upon opening.
- Provided clearer descriptions for built-in commands and skills in the / menu.
- The subscription-switch suggestion now appears in the startup announcement slot instead of a toast notification.
- Agent sessions dispatched from the state-grouped view now correctly start in the directory the agent view was opened from.
- Fixed a stray "(no content)" line left in the transcript after closing panel dialogs like /mcp and /plugins.