v2.1.121
Claude CodeSummary
This release introduces significant quality-of-life improvements, including a type-to-filter search for skills and better handling of tool output replacement via PostToolUse hooks. Numerous critical bugs have been resolved, focusing heavily on fixing memory leaks related to image processing and transcript history, and improving session stability during restarts and network transients. Users will also notice better scrolling behavior in fullscreen mode and enhanced clipboard support in certain terminal setups.
New Features
- Added `alwaysLoad` option to MCP server config to force immediate loading of all tools from that server.
- Introduced `claude plugin prune` command to remove orphaned auto-installed plugin dependencies; `plugin uninstall --prune` now cascades.
- Added a type-to-filter search box to the `/skills` command for easier navigation of long skill lists.
- Enabled PostToolUse hooks to replace tool output for all tools via `hookSpecificOutput.updatedToolOutput`, expanding beyond MCP-only functionality.
- Enabled support for X.509 certificate-based Workload Identity Federation (mTLS ADC) for Vertex AI connections.
- Enabled `CLAUDE_CODE_FORK_SUBAGENT=1` to function correctly in non-interactive sessions for SDK and `claude -p`.
- The `--dangerously-skip-permissions` flag now suppresses prompts for writes to `.claude/skills/`, `.claude/agents/`, and `.claude/commands/`.
- Enabled iTerm2's "Applications in terminal may access clipboard" setting via `/terminal-setup` to ensure `/copy` functionality works, including from tmux.
- The terminal tab session title is now generated based on your configured `language` setting.
- Enabled `mcp_authenticate` in the SDK to support `redirectUri` for custom scheme completion and claude.ai connectors.
- Added `stop_reason`, `gen_ai.response.finish_reasons`, and `user_system_prompt` (gated by `OTEL_LOG_USER_PROMPTS`) to OpenTelemetry LLM request spans.
- Enabled Voice dictation in VSCode to respect the `accessibility.voice.speechLanguage` setting when no Claude Code language is configured.
- Enabled `/context` in VSCode to open a native token usage dialog.
Bug Fixes
- Fixed unbounded memory growth (multi-GB RSS) that occurred when processing many images in a single session.
- Fixed a memory leak in `/usage` that consumed up to ~2GB of memory on machines with large transcript histories.
- Fixed a memory leak that occurred when long-running tools failed to emit a clear progress event.
- Fixed the Bash tool becoming permanently unusable if the directory Claude was started in was deleted or moved during a session.
- Fixed `--resume` crashing on startup in external builds.
- Fixed `--resume` failing on large sessions when a transcript line was corrupted by an unclean shutdown; the corrupt line is now skipped.
- Fixed `thinking.type.enabled is not supported` error when using Bedrock application inference profile ARNs.
- Fixed Microsoft 365 MCP OAuth failures caused by duplicate or unsupported `prompt` parameters.
- Fixed scrollback duplication when pressing Ctrl+L or triggering a redraw in non-fullscreen mode across tmux, GNOME Terminal, Windows Terminal, and Konsole.
- Fixed claude.ai MCP connectors silently disappearing if the connector-list fetch encountered a transient authentication error at startup.
- Fixed "Always allow" rules for built-in tools in remote sessions failing to persist across worker restarts.
- Fixed `NO_PROXY` setting not being respected by all HTTP clients when set via `managed-settings.json` in native builds.
- Fixed the managed settings approval prompt incorrectly exiting the session upon acceptance; settings are now applied and the session continues.
- Fixed `/usage` returning "rate limited" due to a stale OAuth token; tokens now refresh automatically.
- Fixed invalid legacy enum values in `settings.json` from invalidating the entire settings file.
- Fixed `/usage` dialog content being clipped when no-flicker mode was disabled.
- Fixed `/focus` showing "Unknown command" when the fullscreen renderer was off; it now explains how to enable fullscreen rendering.
- Fixed embedded grep/find/rg shell wrappers failing if the running binary was deleted mid-session; now falls back to installed tools.
Improvements
- Fullscreen mode now prevents the prompt from jumping scroll back to the bottom after scrolling up to review earlier output.
- Dialogs that overflow the terminal are now scrollable using arrow keys, PgUp/PgDn, home/end, and mouse wheel in all modes.
- Clicking any line of a long, wrapped URL in fullscreen mode now correctly opens the full URL.
- MCP servers experiencing a transient error during startup will now auto-retry up to 3 times instead of remaining disconnected.
- Duplicate Claude.ai connectors with the same upstream URL are now deduplicated.
- Startup time is faster after upgrading due to the removal of the Recent Activity panel from the release-notes splash screen.
- LSP diagnostic summaries now expand on click or Ctrl+O and display the expand hint.
- Reduced peak file descriptor usage during `find` operations within the Bash tool on large directory trees.