v2.1.139
Claude CodeSummary
This release introduces powerful new session management features, including the Agent View and the `/goal` command for setting persistent completion conditions. Numerous bug fixes address stability, UI rendering issues across different themes and terminals, and improved reliability for plugin management and MCP connections. Users can now better manage sessions and control Claude's execution flow.
New Features
- Added agent view (Research Preview) allowing users to see a single list of all Claude Code sessions (running, blocked, or done) via the `claude agents` command.
- Introduced the `/goal` command to set a completion condition, enabling Claude to work across multiple turns until that condition is met, displaying live progress.
- Added the `/scroll-speed` command to allow users to tune mouse wheel scroll speed with a live preview.
- Enabled `claude plugin details <name>` to display a plugin's component inventory and its projected per-session token cost.
- Added transcript view navigation shortcuts: `?` for keyboard shortcuts, `{`/`}` to jump between user prompts, and `v` to toggle the shortcut panel.
- Added hook `args: string[]` field (exec form) that spawns commands directly without a shell, eliminating the need to quote path placeholders.
- Added hook `continueOnBlock` config option for `PostToolUse` to feed the hook's rejection reason back to Claude and continue the turn if set to `true`.
Bug Fixes
- Fixed a deadlock that occurred when expired credentials and the `forceRemoteSettingsRefresh` policy blocked `claude auth login`, `logout`, or `status` commands.
- Fixed `autoAllowBashIfSandboxed` not auto-approving commands containing shell expansions like `$VAR` and `$(cmd)`.
- Fixed a bug where a hook writing to the terminal could corrupt an on-screen interactive prompt; hooks now run without terminal access.
- Fixed unbounded memory growth when an HTTP/SSE MCP server streamed non-protocol data by capping response bodies at 16 MB per SSE frame.
- Fixed `Skill(name *)` permission rules so the wildcard form now correctly functions as a prefix match, consistent with `Bash(ls *)` behavior.
- Fixed settings hot-reload failing to detect edits made to symlinked `~/.claude/settings.json` files.
- Fixed plugin details failing to load when the marketplace key differed from the manifest name.
- Fixed the `/model` picker's "Default" row not correctly reflecting overrides set by `ANTHROPIC_DEFAULT_OPUS_MODEL` or `ANTHROPIC_DEFAULT_SONNET_MODEL`.
- Fixed spurious "stream idle timeout" errors occurring 5 minutes after a response completed because the watchdog timer was not cleared on stream cancellation.
- Fixed silent `exit 1` errors when 10+ MCP servers were configured and the cache directory was unwritable; the error message now shows the underlying cause.
- Fixed a blinking typing cursor appearing on tab names, list pointers, and select rows within dialogs.
- Fixed transcript view letter shortcuts failing to work after a mouse click.
- Fixed the Bash-mode up-arrow history repeating the first entry and overwriting the in-progress draft.
- Fixed pasting or dropping multiple images resulting in only the last image being inserted.
- Fixed hyperlinks appearing in an unreadable dark navy color on dark themes; they now adapt to the active theme.
- Fixed the model picker showing a redundant "Current model" row for third-party users whose model was set to the `opus` alias.
- Fixed the legacy Opus picker entry on PAYG 3P providers resolving to the same model as the default entry.
- Fixed mouse wheel scrolling speed inconsistencies in Cursor and VS Code versions 1.92–1.104, ensuring steady trackpad scrolling and ~3 lines per notch for the mouse wheel.
- Fixed scroll behavior in Windows Terminal and VS Code when attached to background sessions.
- Fixed MCP resources from disconnected servers lingering in `@server:` autocomplete suggestions.
- Fixed two-file diff snippets over-reporting the number of truncated lines by one.
- Fixed Grep results failing to relativize Windows drive-letter paths, leading to incorrect count mode totals for single-file paths.
- Fixed text overflowing borders on CJK/emoji characters due to incorrect visual cell width calculation.
- Fixed fuzzy-match highlighting incorrectly splitting emoji and astral-plane characters mid-pair.
- Fixed skill argument names containing regex metacharacters breaking argument substitution.
- Fixed ProgressBar rendering a full block when it should have shown a fractional cell that was almost full.
- Fixed task polling and `fs.watch` being incorrectly resurrected when the last subscriber left while a fetch operation was still in flight.
- Fixed plugin dependency resolution leaving a stale count when the manifest name differed from the source identifier.
- Fixed the Insights Time-of-Day chart skewing results when a session contained an unparseable timestamp.
- Fixed keybindings that used only the cmd/super/win modifier being flagged as unparseable.
- Fixed the `claude_code.active_time.total` OpenTelemetry metric not being emitted when running in `--print` mode.
- Fixed `claude plugin update` failing to preserve cross-plugin symlinks inside a marketplace installation.
Improvements
- The compaction prompt now instructs the model to preserve sensitive user instructions.
- MCP Reconnect for `/mcp` now successfully picks up edits to `.mcp.json` without requiring a restart, and displays the HTTP status and URL upon connection failure.
- Token estimates for `/context all` per-skill calculations now use the model's tokenizer and display rounded values.
- Plugin installation via `claude plugin install <name>@<marketplace>` now automatically refreshes the marketplace and retries before reporting a plugin as not found.
- Details shown via `/plugin` for installed plugins now cleanly display hook event names and MCP server names.
- The `/context` command now shows the name of the providing plugin for plugin-sourced skills.
- Remote MCP server reconnection retry logic for transient failures is now enabled for all users.
- API requests originating from subagents now include `x-claude-code-agent-id` and `x-claude-code-parent-agent-id` headers, and corresponding attributes are added to OTEL spans.
- Remote Control, `/schedule`, claude.ai MCP connectors, and notification preferences are now disabled if an API key is set, requiring users to unset the key to use these features.
- [VSCode] Added a new shortcut: Press Cmd/Ctrl+Shift+T to reopen the most recently closed session tab, which is configurable via `claudeCode.enableReopenClosedSessionShortcut`.