v2.1.76
Claude CodeSummary
This release introduces significant new capabilities, including MCP elicitation support for structured mid-task input and new developer hooks for response interception. Numerous bugs have been resolved across areas like slash commands, voice mode, and session management, alongside performance improvements for `--worktree` startup and better handling of background agents.
New Features
- Added MCP elicitation support, allowing MCP servers to request structured input mid-task via interactive dialogs (form fields or browser URL)
- Added new Elicitation and ElicitationResult hooks to intercept and override responses before they are sent back
- Added `-n` / `--name <name>` CLI flag to set a display name for the session at startup
- Added `worktree.sparsePaths` setting for `claude --worktree` to check out only necessary directories in large monorepos using git sparse-checkout
- Added `PostCompact` hook that fires after compaction completes
- Added `/effort` slash command to set the model effort level
- Enabled session quality surveys, configurable by enterprise admins via the `feedbackSurveyRate` setting
Bug Fixes
- Fixed deferred tools losing their input schemas after conversation compaction, which caused array and number parameters to be rejected with type errors
- Fixed slash commands incorrectly showing "Unknown skill"
- Fixed plan mode incorrectly asking for re-approval after the plan was already accepted
- Fixed voice mode swallowing keypresses while a permission dialog or plan editor was open
- Fixed `/voice` command not working on Windows when installed via npm
- Fixed spurious "Context limit reached" error when invoking a skill with `model:` frontmatter on a 1M-context session
- Fixed "adaptive thinking is not supported on this model" error when using non-standard model strings
- Fixed `Bash(cmd:*)` permission rules not matching when a quoted argument contains #
- Fixed "don't ask again" in the Bash permission dialog showing the full raw command for pipes and compound commands
- Fixed auto-compaction retrying indefinitely after consecutive failures by implementing a circuit breaker that stops after 3 attempts
- Fixed MCP reconnect spinner persisting after successful reconnection
- Fixed LSP plugins not registering servers when the LSP Manager initialized before marketplaces were reconciled
- Fixed clipboard copying in tmux over SSH by attempting both direct terminal write and tmux clipboard integration
- Fixed `/export` showing only the filename instead of the full file path in the success message
- Fixed transcript not auto-scrolling to new messages after selecting text
- Fixed Escape key not working to exit the login method selection screen
- Fixed several Remote Control issues, including sessions silently dying when the server reaps an idle environment, rapid messages being queued one-at-a-time instead of batched, and stale work items causing redelivery after JWT refresh
- Fixed bridge sessions failing to recover after extended WebSocket disconnects
- Fixed slash commands not being found when typing the exact name of a soft-hidden command
- [VSCode] Fixed gitignore patterns containing commas silently excluding entire filetypes from the @-mention file picker
Improvements
- Improved `--worktree` startup performance by reading git refs directly and skipping redundant `git fetch` when the remote branch is already available locally
- Improved background agent behavior by preserving partial results in the conversation context when a background agent is killed
- Improved model fallback notifications to be always visible with human-friendly model names, instead of being hidden behind verbose mode
- Improved blockquote readability on dark terminal themes by using italic text with a left bar instead of dim styling
- Improved stale worktree cleanup by automatically cleaning up worktrees left behind after an interrupted parallel run
- Improved Remote Control session titles to be derived from the first prompt instead of showing "Interactive session"
- Improved `/voice` to show the dictation language on enable and warn when the `language` setting is not supported for voice input
- Updated `--plugin-dir` to only accept one path to support subcommands; users must now use repeated `--plugin-dir` for multiple directories