mirror of
https://github.com/anthropics/claude-code.git
synced 2026-05-13 19:52:43 +00:00
Compare commits
9 Commits
devsec/pin
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6b070c31bc | ||
|
|
fdfbc06c7a | ||
|
|
831608a360 | ||
|
|
33a87addb4 | ||
|
|
f7ef09f496 | ||
|
|
2bd8547920 | ||
|
|
6cd790cd21 | ||
|
|
fb063cd5e0 | ||
|
|
60348c9536 |
183
CHANGELOG.md
183
CHANGELOG.md
@@ -1,5 +1,188 @@
|
||||
# Changelog
|
||||
|
||||
## 2.1.140
|
||||
|
||||
- Improved Agent tool `subagent_type` matching to accept case- and separator-insensitive values (e.g. `"Code Reviewer"` resolves to `code-reviewer`)
|
||||
- Updated agent color palette
|
||||
- Fixed `/goal` silently hanging when `disableAllHooks` or `allowManagedHooksOnly` is set — now shows a clear message instead of an indicator that never resolves
|
||||
- Fixed a regression in settings hot-reload where symlinked settings files caused misattributed change events and spurious `ConfigChange` hooks
|
||||
- Fixed `claude --bg` failing with "connection dropped mid-request" when the background service was about to idle-exit
|
||||
- Fixed background service startup failing on machines with enterprise endpoint security by allowing more time
|
||||
- Fixed remote managed settings not retrying on 401 — now retries once with a force-refreshed token
|
||||
- Fixed managed `extraKnownMarketplaces` auto-update policy not being persisted to `known_marketplaces.json`
|
||||
- Fixed `/loop` scheduling redundant wakeups to poll for background tasks that already notify on completion
|
||||
- Fixed a recurring event-loop stall on Windows when a missing executable (e.g. `gh`) triggered synchronous `where.exe` re-spawns on every check
|
||||
- Fixed `Read` tool calls failing validation when `offset` is passed as a whitespace-padded or `+`-prefixed string
|
||||
- Fixed native terminal cursor not staying at the input caret when the terminal loses focus
|
||||
- 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`.
|
||||
|
||||
## 2.1.139
|
||||
|
||||
- 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
|
||||
- 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
|
||||
- Added `/scroll-speed` command to tune mouse wheel scroll speed with a live preview
|
||||
- Added `claude plugin details <name>` to show a plugin's component inventory and projected per-session token cost
|
||||
- Added transcript view navigation: `?` for keyboard shortcuts, `{`/`}` to jump between user prompts, `v` to toggle shortcut panel
|
||||
- Added hook `args: string[]` field (exec form) that spawns the command directly without a shell, so path placeholders never need quoting
|
||||
- Added hook `continueOnBlock` config option for `PostToolUse` — set to `true` to feed the hook's rejection reason back to Claude and continue the turn
|
||||
- MCP stdio servers now receive `CLAUDE_PROJECT_DIR` in their environment, matching hooks. Plugin configs can reference `${CLAUDE_PROJECT_DIR}` in commands
|
||||
- Compaction prompt now asks the model to preserve sensitive user instructions
|
||||
- `/mcp` Reconnect now picks up `.mcp.json` edits without a restart, and shows the HTTP status and URL when reconnecting fails
|
||||
- `/context all` per-skill token estimates now account for the model's tokenizer and show rounded values
|
||||
- `claude plugin install <name>@<marketplace>` now auto-refreshes the marketplace and retries before reporting a plugin as not found
|
||||
- `/plugin` installed-plugin details now show hook event names and MCP server names cleanly
|
||||
- `/context` now shows the providing plugin's name for plugin-sourced skills
|
||||
- Remote MCP server reconnect retry on transient failures is now enabled for all users
|
||||
- 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
|
||||
- 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
|
||||
- Fixed a deadlock where expired credentials and the `forceRemoteSettingsRefresh` policy setting blocked `claude auth login`/`logout`/`status` with no way to recover
|
||||
- Fixed `autoAllowBashIfSandboxed` not auto-approving commands with 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 streams non-protocol data — response bodies now capped at 16 MB per SSE frame
|
||||
- Fixed `Skill(name *)` permission rules — the wildcard form now works as a prefix match, matching `Bash(ls *)` behavior
|
||||
- Fixed settings hot-reload not detecting edits to symlinked `~/.claude/settings.json`
|
||||
- Fixed plugin details failing to load when the marketplace key differs from the manifest name
|
||||
- Fixed `/model` picker "Default" row not reflecting `ANTHROPIC_DEFAULT_OPUS_MODEL`/`ANTHROPIC_DEFAULT_SONNET_MODEL` overrides
|
||||
- Fixed spurious "stream idle timeout" 5 minutes after a response completed, caused by the watchdog timer not being cleared on stream cancellation
|
||||
- Fixed silent `exit 1` when 10+ MCP servers are configured and the cache directory is unwritable — the error message now includes the underlying cause
|
||||
- Fixed a typing cursor blinking on tab names, list pointers, and select rows in dialogs
|
||||
- Fixed transcript view letter shortcuts not working after mouse click
|
||||
- Fixed Bash-mode up-arrow history repeating the first entry and clobbering the in-progress draft
|
||||
- Fixed pasting or dropping multiple images only inserting the last one
|
||||
- Fixed hyperlinks using unreadable dark navy on dark themes — they now adapt to the active theme
|
||||
- Fixed model picker showing a redundant "Current model" row for third-party users whose model is set to the `opus` alias
|
||||
- Fixed legacy Opus picker entry on PAYG 3P providers resolving to the same model as the default entry
|
||||
- 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
|
||||
- Fixed scroll behavior in Windows Terminal and VS Code when attached to background sessions
|
||||
- Fixed MCP resources from disconnected servers lingering in `@server:` autocomplete
|
||||
- Fixed two-file diff snippets over-reporting the number of truncated lines by one
|
||||
- Fixed Grep results not relativizing Windows drive-letter paths and count mode reporting wrong totals for single-file paths
|
||||
- Fixed border-embedded text overflowing on CJK/emoji due to visual cell width miscalculation
|
||||
- Fixed fuzzy-match highlighting splitting emoji and astral-plane characters mid-pair
|
||||
- Fixed skill argument names containing regex metacharacters breaking argument substitution
|
||||
- Fixed ProgressBar rendering a full block for an almost-full fractional cell
|
||||
- Fixed task polling and `fs.watch` being resurrected when the last subscriber leaves while a fetch is in flight
|
||||
- Fixed plugin dependency resolution leaving a stale count when the manifest name differs from the source identifier
|
||||
- Fixed Insights Time-of-Day chart skewing when a session has an unparseable timestamp
|
||||
- Fixed keybindings using only the cmd/super/win modifier being flagged as unparseable
|
||||
- Fixed `claude_code.active_time.total` OpenTelemetry metric not being emitted in `--print` mode
|
||||
- Fixed `claude plugin update` not preserving cross-plugin symlinks inside a marketplace
|
||||
- [VSCode] Press Cmd/Ctrl+Shift+T to reopen the most recently closed session tab, configurable via `claudeCode.enableReopenClosedSessionShortcut`
|
||||
|
||||
## 2.1.138
|
||||
|
||||
- Internal fixes
|
||||
|
||||
## 2.1.137
|
||||
|
||||
- [VSCode] Fixed extension failing to activate on Windows
|
||||
|
||||
## 2.1.136
|
||||
|
||||
- Added `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` to re-enable the session quality survey for enterprises capturing responses through OpenTelemetry
|
||||
- Added `settings.autoMode.hard_deny` for auto mode classifier rules that block unconditionally regardless of user intent or allow exceptions
|
||||
- Fixed MCP servers configured in `.mcp.json`, plugins, and claude.ai connectors silently disappearing after `/clear` in the VS Code extension, JetBrains plugin, and Agent SDK
|
||||
- Fixed a rare login loop where a concurrent credential write could overwrite a freshly-rotated OAuth token and force re-login
|
||||
- Fixed MCP OAuth refresh tokens being lost when multiple servers refresh concurrently — users with several remote MCP servers should no longer need daily re-authentication
|
||||
- Fixed an API error (400) when extended thinking emitted a redacted thinking block after a tool call
|
||||
- Fixed `--resume` / `--continue` not finding sessions when the project path contains underscores
|
||||
- Fixed plan mode not blocking file writes when a matching `Edit(...)` allow rule exists
|
||||
- WSL2: image paste from Windows clipboard now works via a PowerShell fallback when xclip/wl-paste cannot read image data
|
||||
- Fixed plugin `Stop`/`UserPromptSubmit` hooks failing when cache cleanup deletes a version still in use by a running session
|
||||
- Improved visual consistency across slash command dialogs: standardized footer hints, dialog spacing, and arrow-key styling, and the dialog frame now appears immediately during loading instead of popping in after
|
||||
- Fixed colors appearing at wrong positions in bash command output and markdown code blocks
|
||||
- Fixed ReasonML diffs rendering corrupted "undefined" text artifacts at word-diff boundaries
|
||||
- Fixed worktree exit dialog warning about uncommitted files in the wrong directory after worktree removal
|
||||
- Fixed `@` file picker not matching files created mid-session in small non-git directories
|
||||
- Fixed `@`-mention file picker not finding files in directories with more than 100 entries
|
||||
- Fixed failed tool calls not being click-to-expand in fullscreen mode when their output was truncated
|
||||
- Fixed Backspace and Ctrl+Backspace getting swapped after using Ctrl+G to open an external editor on terminals with persistent extended-key modes
|
||||
- Fixed `/usage` weekly reset showing time of day instead of the calendar date
|
||||
- Fixed welcome banner ellipsis causing column overflow on CJK terminals
|
||||
- Fixed `/insights` crash when session history contains tool calls with malformed input fields
|
||||
- Fixed a renderer crash when a tool's collapsibility classification changes mid-session
|
||||
- Fixed a `skills` entry in `plugin.json` hiding the plugin's default `skills/` directory, and listing a file path now shows an error instead of failing silently
|
||||
- Fixed IDE shell-integration lock files not respecting `CLAUDE_CONFIG_DIR`
|
||||
- Fixed trailing whitespace in copied terminal output during streaming
|
||||
- Fixed plugin uninstall and enable/disable not matching slugs case-insensitively
|
||||
- Fixed tool error truncation marker showing a negative count for surrogate-pair strings
|
||||
- Fixed env vars from `CLAUDE_ENV_FILE` SessionStart hooks going stale after `/resume` or `/clear`
|
||||
- Fixed `/branch` saving a multi-line session title when given a pasted multi-line name
|
||||
- Fixed a stray leading space on the second line of wrapped text at the column boundary
|
||||
- Fixed Esc not dismissing dialogs in `/install-github-app`, `/desktop`, `/resume`, and `/web-setup`
|
||||
- Fixed `/doctor` MCP schema errors not naming the missing field or showing the source file path
|
||||
- Fixed Bash permission prompts showing an internal parser diagnostic instead of a user-readable explanation
|
||||
- Fixed plugin slash commands with spaces (e.g. `/myplugin review`) not resolving to their namespaced form
|
||||
- Fixed `AskUserQuestion` discarding multi-select answers when supplied as an array
|
||||
- Fixed `/clear <name>` not labeling the cleared session for `/resume`
|
||||
- Fixed `CronList` output missing qualifiers and the scheduled prompt
|
||||
- Fixed "Jump to bottom" overlay leaving color artifacts on CJK characters in fullscreen mode
|
||||
- Fixed wide markdown tables leaving a stale bordered render in terminal scrollback while streaming
|
||||
- Fixed pasted text being silently dropped when a long prompt with a pasted-text placeholder was auto-truncated
|
||||
- Fixed `/release-notes` getting stuck on an old version after a failed changelog refresh
|
||||
- Fixed `/mcp` server list not scrolling when there are more servers than fit in the terminal
|
||||
- Fixed mid-input slash command autocomplete not working after an initial slash command
|
||||
- Fixed scrolling to bottom re-engaging auto-follow with `autoScrollEnabled: false`
|
||||
- Fixed prompt suggestions being auto-submitted by Enter on an empty input instead of requiring Tab or arrow to accept
|
||||
- Fixed keyboard shortcut hints not reflecting rebound keys from `keybindings.json`
|
||||
- Fixed `/settings` language change being reverted on Escape after confirming
|
||||
- Fixed `/terminal-setup` only appearing in autocomplete on exact name match instead of partial prefixes
|
||||
- Fixed "Chat about this" on an `AskUserQuestion` dialog erasing the question text
|
||||
- Fixed MCP tool results being invisible when the server returns content blocks
|
||||
- Improved error message when `--worktree` collides with an existing or stale worktree
|
||||
- Changed plugin marketplace removal key to `d` (matching delete elsewhere) instead of `r` which collided with retry
|
||||
|
||||
## 2.1.133
|
||||
|
||||
- Added `worktree.baseRef` setting (`fresh` | `head`) to choose whether `--worktree`, `EnterWorktree`, and agent-isolation worktrees branch from `origin/<default>` or local `HEAD`. **Note:** the default `fresh` changes `EnterWorktree`'s base back to `origin/<default>` (it has been local `HEAD` since 2.1.128) — set `worktree.baseRef: "head"` to keep unpushed commits in new worktrees
|
||||
- Added `sandbox.bwrapPath` and `sandbox.socatPath` managed settings (Linux/WSL) to specify custom bubblewrap and socat binary locations
|
||||
- Added `parentSettingsBehavior` admin-tier key (`'first-wins' | 'merge'`) to let admins opt SDK `managedSettings` (parent tier) into the policy merge
|
||||
- Hooks now receive the active effort level via the `effort.level` JSON input field and the `$CLAUDE_EFFORT` environment variable, and Bash tool commands can read `$CLAUDE_EFFORT`
|
||||
- Improved focus mode behavior
|
||||
- Improved memory usage by releasing warm-spare background workers under memory pressure
|
||||
- Fixed parallel sessions all dead-ending at 401 after a refresh-token race wiped shared credentials
|
||||
- Fixed `Edit`/`Write` allow rules scoped to a drive root (`C:\`) or POSIX `/` matching incorrectly and always prompting
|
||||
- Fixed an unhandled rejection (`ECOMPROMISED`) when a history or session-log file lock is compromised by clock skew or slow disk
|
||||
- Fixed pressing Esc during conversation compaction showing a spurious "Error compacting conversation" notification
|
||||
- Fixed `HTTP(S)_PROXY` / `NO_PROXY` / mTLS not being respected for the full MCP OAuth flow including discovery, dynamic client registration, token exchange, and token refresh
|
||||
- Fixed Read/Write/Edit being denied on mapped network drives passed via `--add-dir` / SDK `additionalDirectories`
|
||||
- Fixed Remote Control stop/interrupt from claude.ai not fully canceling the CLI session the same way local Esc does, causing queued messages to never advance after interrupting a stuck tool or prompt
|
||||
- Fixed `/effort` in one session unexpectedly changing the effort level of other concurrent sessions, and a related issue where an IDE effort change could be silently dropped
|
||||
- Fixed subagents not discovering project, user, or plugin skills via the Skill tool
|
||||
- `claude --help` now lists `--remote-control` alongside `--remote-control-session-name-prefix`
|
||||
- [VSCode] Fixed `claudeCode.claudeProcessWrapper` failing with "Unsupported platform" when the extension build doesn't bundle a Claude binary
|
||||
|
||||
## 2.1.132
|
||||
|
||||
- Added `CLAUDE_CODE_SESSION_ID` environment variable to the Bash tool subprocess environment, matching the `session_id` passed to hooks
|
||||
- Added `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1` env var to opt out of the fullscreen alternate-screen renderer and keep the conversation in the terminal's native scrollback
|
||||
- Added a "Pasting…" footer hint while a Ctrl+V image paste is being read from the clipboard
|
||||
- Fixed external SIGINT (e.g. IDE stop button, `kill -INT`) not running graceful shutdown — terminal modes are now restored and the `--resume` hint is printed instead of an abrupt exit
|
||||
- Fixed an uncaught exception when the terminal is closed or SSH disconnects mid-session under the native build
|
||||
- Fixed `--resume` failing with `no low surrogate in string` when a tool error truncation split an emoji; pre-corrupted sessions are sanitized on load
|
||||
- Fixed `--permission-mode` flag being ignored when resuming a plan-mode session with `-p --continue`/`--resume`, and plan mode not being re-applied after `ExitPlanMode` within the same session
|
||||
- Fixed fullscreen mode showing a blank screen after laptop sleep/wake or Ctrl+Z/`fg` until the next keystroke or stream output
|
||||
- Fixed cursor landing mid-grapheme on Ctrl+E/A/K/U/arrow keys when an Indic conjunct or ZWJ emoji wraps across lines
|
||||
- Fixed vim operators corrupting text containing decomposed (NFD) accented characters
|
||||
- Fixed pasting text starting with `/` silently swallowing the input or triggering an unknown-command reply
|
||||
- Fixed pasting dumping stray escape sequences into the prompt when focus events or mouse-tracking reports interleave with the bracketed paste
|
||||
- Fixed mouse wheel scrolling being too fast in Cursor and VS Code 1.92–1.104 due to an upstream xterm.js bug
|
||||
- Fixed scroll-wheel handling in JetBrains IDE 2025.2 terminals (spurious arrow keys, wrong-direction events, runaway acceleration)
|
||||
- Fixed `/usage` Ctrl+S hanging when copying the stats screenshot to the clipboard on Linux/X11
|
||||
- Fixed `/terminal-setup` showing a contradictory error in Windows Terminal — Shift+Enter is natively supported there
|
||||
- Fixed `/effort` picker not reflecting the `CLAUDE_CODE_EFFORT_LEVEL` env var override
|
||||
- Fixed `/status` showing the wrong default model for some users
|
||||
- Fixed slash command autocomplete popup being capped at ~3–5 visible commands instead of scaling with terminal height
|
||||
- Fixed statusline `context_window` token counts reflecting cumulative session totals instead of current context usage
|
||||
- Fixed Alt+T (thinking toggle) not working on macOS terminals without "Option as Meta" enabled (iTerm2, Terminal.app defaults)
|
||||
- Fixed dead keyboard input on Windows after re-opening a background session from `claude agents`
|
||||
- Fixed unbounded memory growth (10GB+ RSS) when a stdio MCP server writes non-protocol data to stdout
|
||||
- Fixed MCP servers that connect but fail `tools/list` silently showing 0 tools — they now retry once and show "connected · tools fetch failed" in `/mcp`
|
||||
- Fixed unauthorized claude.ai MCP connectors showing as "failed" instead of "needs auth", and headless `-p` mode retrying non-transient 4xx connection failures
|
||||
- Improved visual consistency in slash command dialogs and `/login`, `/upgrade`, `/extra-usage` dialog spacing
|
||||
- Updated the `/tui fullscreen` startup banner to describe additional renderer benefits (lower memory usage, mouse support, auto-copy on select)
|
||||
- Fixed Bedrock and Vertex 400 errors when `ENABLE_PROMPT_CACHING_1H` is set
|
||||
|
||||
## 2.1.131
|
||||
|
||||
- Fixed VS Code extension failing to activate on Windows due to a hardcoded build path in the bundled SDK (`createRequire` polyfill bug)
|
||||
|
||||
@@ -5,8 +5,8 @@ Thank you for helping us keep Claude Code secure!
|
||||
|
||||
The security of our systems and user data is Anthropic's top priority. We appreciate the work of security researchers acting in good faith in identifying and reporting potential vulnerabilities.
|
||||
|
||||
Our security program is managed on HackerOne and we ask that any validated vulnerability in this functionality be reported through their [submission form](https://hackerone.com/anthropic-vdp/reports/new?type=team&report_type=vulnerability).
|
||||
Our security program is managed on HackerOne and we ask that any validated vulnerability in this functionality be reported through their [submission form](https://hackerone.com/4f1f16ba-10d3-4d09-9ecc-c721aad90f24/embedded_submissions/new).
|
||||
|
||||
## Vulnerability Disclosure Program
|
||||
## Anthropic Bug Bounty
|
||||
|
||||
Our Vulnerability Program Guidelines are defined on our [HackerOne program page](https://hackerone.com/anthropic-vdp).
|
||||
Our Bug Bounty Program Guidelines are defined on our [HackerOne program page](https://hackerone.com/anthropic).
|
||||
|
||||
Reference in New Issue
Block a user