mirror of
https://github.com/anthropics/claude-code.git
synced 2026-04-24 05:02:43 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2923bc87d1 | ||
|
|
f75b6138ef | ||
|
|
a0d9b87038 | ||
|
|
a542f1b4b3 |
122
CHANGELOG.md
122
CHANGELOG.md
@@ -1,5 +1,110 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 2.1.86
|
||||||
|
|
||||||
|
- Added `X-Claude-Code-Session-Id` header to API requests so proxies can aggregate requests by session without parsing the body
|
||||||
|
- Added `.jj` and `.sl` to VCS directory exclusion lists so Grep and file autocomplete don't descend into Jujutsu or Sapling metadata
|
||||||
|
- Fixed `--resume` failing with "tool_use ids were found without tool_result blocks" on sessions created before v2.1.85
|
||||||
|
- Fixed Write/Edit/Read failing on files outside the project root (e.g., `~/.claude/CLAUDE.md`) when conditional skills or rules are configured
|
||||||
|
- Fixed unnecessary config disk writes on every skill invocation that could cause performance issues and config corruption on Windows
|
||||||
|
- Fixed potential out-of-memory crash when using `/feedback` on very long sessions with large transcript files
|
||||||
|
- Fixed `--bare` mode dropping MCP tools in interactive sessions and silently discarding messages enqueued mid-turn
|
||||||
|
- Fixed the `c` shortcut copying only ~20 characters of the OAuth login URL instead of the full URL
|
||||||
|
- Fixed masked input (e.g., OAuth code paste) leaking the start of the token when wrapping across multiple lines on narrow terminals
|
||||||
|
- Fixed official marketplace plugin scripts failing with "Permission denied" on macOS/Linux since v2.1.83
|
||||||
|
- Fixed statusline showing another session's model when running multiple Claude Code instances and using `/model` in one of them
|
||||||
|
- Fixed scroll not following new messages after wheel scroll or click-to-select at the bottom of a long conversation
|
||||||
|
- Fixed `/plugin` uninstall dialog: pressing `n` now correctly uninstalls the plugin while preserving its data directory
|
||||||
|
- Fixed a regression where pressing Enter after clicking could leave the transcript blank until the response arrived
|
||||||
|
- Fixed `ultrathink` hint lingering after deleting the keyword
|
||||||
|
- Fixed memory growth in long sessions from markdown/highlight render caches retaining full content strings
|
||||||
|
- Reduced startup event-loop stalls when many claude.ai MCP connectors are configured (macOS keychain cache extended from 5s to 30s)
|
||||||
|
- Reduced token overhead when mentioning files with `@` — raw string content no longer JSON-escaped
|
||||||
|
- Improved prompt cache hit rate for Bedrock, Vertex, and Foundry users by removing dynamic content from tool descriptions
|
||||||
|
- Memory filenames in the "Saved N memories" notice now highlight on hover and open on click
|
||||||
|
- Skill descriptions in the `/skills` listing are now capped at 250 characters to reduce context usage
|
||||||
|
- Changed `/skills` menu to sort alphabetically for easier scanning
|
||||||
|
- Auto mode now shows "unavailable for your plan" when disabled by plan restrictions (was "temporarily unavailable")
|
||||||
|
- [VSCode] Fixed extension incorrectly showing "Not responding" during long-running operations
|
||||||
|
- [VSCode] Fixed extension defaulting Max plan users to Sonnet after the OAuth token refreshes (8 hours after login)
|
||||||
|
- Read tool now uses compact line-number format and deduplicates unchanged re-reads, reducing token usage
|
||||||
|
|
||||||
|
## 2.1.85
|
||||||
|
|
||||||
|
- Added `CLAUDE_CODE_MCP_SERVER_NAME` and `CLAUDE_CODE_MCP_SERVER_URL` environment variables to MCP `headersHelper` scripts, allowing one helper to serve multiple servers
|
||||||
|
- Added conditional `if` field for hooks using permission rule syntax (e.g., `Bash(git *)`) to filter when they run, reducing process spawning overhead
|
||||||
|
- Added timestamp markers in transcripts when scheduled tasks (`/loop`, `CronCreate`) fire
|
||||||
|
- Added trailing space after `[Image #N]` placeholder when pasting images
|
||||||
|
- Deep link queries (`claude-cli://open?q=…`) now support up to 5,000 characters, with a "scroll to review" warning for long pre-filled prompts
|
||||||
|
- MCP OAuth now follows RFC 9728 Protected Resource Metadata discovery to find the authorization server
|
||||||
|
- Plugins blocked by organization policy (`managed-settings.json`) can no longer be installed or enabled, and are hidden from marketplace views
|
||||||
|
- PreToolUse hooks can now satisfy `AskUserQuestion` by returning `updatedInput` alongside `permissionDecision: "allow"`, enabling headless integrations that collect answers via their own UI
|
||||||
|
- `tool_parameters` in OpenTelemetry tool_result events are now gated behind `OTEL_LOG_TOOL_DETAILS=1`
|
||||||
|
- Fixed `/compact` failing with "context exceeded" when the conversation has grown too large for the compact request itself to fit
|
||||||
|
- Fixed `/plugin enable` and `/plugin disable` failing when a plugin's install location differs from where it's declared in settings
|
||||||
|
- Fixed `--worktree` exiting with an error in non-git repositories before the `WorktreeCreate` hook could run
|
||||||
|
- Fixed `deniedMcpServers` setting not blocking claude.ai MCP servers
|
||||||
|
- Fixed `switch_display` in the computer-use tool returning "not available in this session" on multi-monitor setups
|
||||||
|
- Fixed crash when `OTEL_LOGS_EXPORTER`, `OTEL_METRICS_EXPORTER`, or `OTEL_TRACES_EXPORTER` is set to `none`
|
||||||
|
- Fixed diff syntax highlighting not working in non-native builds
|
||||||
|
- Fixed MCP step-up authorization failing when a refresh token exists — servers requesting elevated scopes via `403 insufficient_scope` now correctly trigger the re-authorization flow
|
||||||
|
- Fixed memory leak in remote sessions when a streaming response is interrupted
|
||||||
|
- Fixed persistent ECONNRESET errors during edge connection churn by using a fresh TCP connection on retry
|
||||||
|
- Fixed prompts getting stuck in the queue after running certain slash commands, with up-arrow unable to retrieve them
|
||||||
|
- Fixed Python Agent SDK: `type:'sdk'` MCP servers passed via `--mcp-config` are no longer dropped during startup
|
||||||
|
- Fixed raw key sequences appearing in the prompt when running over SSH or in the VS Code integrated terminal
|
||||||
|
- Fixed Remote Control session status staying stuck on "Requires Action" after a permission is resolved
|
||||||
|
- Fixed shift+enter and meta+enter being intercepted by typeahead suggestions instead of inserting newlines
|
||||||
|
- Fixed stale content bleeding through when scrolling up during streaming
|
||||||
|
- Fixed terminal left in enhanced keyboard mode after exit in Ghostty, Kitty, WezTerm, and other terminals supporting the Kitty keyboard protocol — Ctrl+C and Ctrl+D now work correctly after quitting
|
||||||
|
- Improved @-mention file autocomplete performance on large repositories
|
||||||
|
- Improved PowerShell dangerous command detection
|
||||||
|
- Improved scroll performance with large transcripts by replacing WASM yoga-layout with a pure TypeScript implementation
|
||||||
|
- Reduced UI stutter when compaction triggers on large sessions
|
||||||
|
|
||||||
|
## 2.1.84
|
||||||
|
|
||||||
|
- Added PowerShell tool for Windows as an opt-in preview. Learn more at https://code.claude.com/docs/en/tools-reference#powershell-tool
|
||||||
|
- Added `ANTHROPIC_DEFAULT_{OPUS,SONNET,HAIKU}_MODEL_SUPPORTS` env vars to override effort/thinking capability detection for pinned default models for 3p (Bedrock, Vertex, Foundry), and `_MODEL_NAME`/`_DESCRIPTION` to customize the `/model` picker label
|
||||||
|
- Added `CLAUDE_STREAM_IDLE_TIMEOUT_MS` env var to configure the streaming idle watchdog threshold (default 90s)
|
||||||
|
- Added `TaskCreated` hook that fires when a task is created via `TaskCreate`
|
||||||
|
- Added `WorktreeCreate` hook support for `type: "http"` — return the created worktree path via `hookSpecificOutput.worktreePath` in the response JSON
|
||||||
|
- Added `allowedChannelPlugins` managed setting for team/enterprise admins to define a channel plugin allowlist
|
||||||
|
- Added `x-client-request-id` header to API requests for debugging timeouts
|
||||||
|
- Added idle-return prompt that nudges users returning after 75+ minutes to `/clear`, reducing unnecessary token re-caching on stale sessions
|
||||||
|
- Deep links (`claude-cli://`) now open in your preferred terminal instead of whichever terminal happens to be first in the detection list
|
||||||
|
- Rules and skills `paths:` frontmatter now accepts a YAML list of globs
|
||||||
|
- MCP tool descriptions and server instructions are now capped at 2KB to prevent OpenAPI-generated servers from bloating context
|
||||||
|
- MCP servers configured both locally and via claude.ai connectors are now deduplicated — the local config wins
|
||||||
|
- Background bash tasks that appear stuck on an interactive prompt now surface a notification after ~45 seconds
|
||||||
|
- Token counts ≥1M now display as "1.5m" instead of "1512.6k"
|
||||||
|
- Global system-prompt caching now works when `ToolSearch` is enabled, including for users with MCP tools configured
|
||||||
|
- Fixed voice push-to-talk: holding the voice key no longer leaks characters into the text input, and transcripts now insert at the correct position
|
||||||
|
- Fixed up/down arrow keys being unresponsive when a footer item is focused
|
||||||
|
- Fixed `Ctrl+U` (kill-to-line-start) being a no-op at line boundaries in multiline input, so repeated `Ctrl+U` now clears across lines
|
||||||
|
- Fixed null-unbinding a default chord binding (e.g. `"ctrl+x ctrl+k": null`) still entering chord-wait mode instead of freeing the prefix key
|
||||||
|
- Fixed mouse events inserting literal "mouse" text into transcript search input
|
||||||
|
- Fixed workflow subagents failing with API 400 when the outer session uses `--json-schema` and the subagent also specifies a schema
|
||||||
|
- Fixed missing background color behind certain emoji in user message bubbles on some terminals
|
||||||
|
- Fixed the "allow Claude to edit its own settings for this session" permission option not sticking for users with `Edit(.claude)` allow rules
|
||||||
|
- Fixed a hang when generating attachment snippets for large edited files
|
||||||
|
- Fixed MCP tool/resource cache leak on server reconnect
|
||||||
|
- Fixed a startup performance issue where partial clone repositories (Scalar/GVFS) triggered mass blob downloads
|
||||||
|
- Fixed native terminal cursor not tracking the text input caret, so IME composition (CJK input) now renders inline and screen readers can follow the input position
|
||||||
|
- Fixed spurious "Not logged in" errors on macOS caused by transient keychain read failures
|
||||||
|
- Fixed cold-start race where core tools could be deferred without their bypass active, causing Edit/Write to fail with InputValidationError on typed parameters
|
||||||
|
- Improved detection for dangerous removals of Windows drive roots (`C:\`, `C:\Windows`, etc.)
|
||||||
|
- Improved interactive startup by ~30ms by running `setup()` in parallel with slash command and agent loading
|
||||||
|
- Improved startup for `claude "prompt"` with MCP servers — the REPL now renders immediately instead of blocking until all servers connect
|
||||||
|
- Improved Remote Control to show a specific reason when blocked instead of a generic "not yet enabled" message
|
||||||
|
- Improved p90 prompt cache rate
|
||||||
|
- Reduced scroll-to-top resets in long sessions by making the message window immune to compaction and grouping changes
|
||||||
|
- Reduced terminal flickering when animated tool progress scrolls above the viewport
|
||||||
|
- Changed issue/PR references to only become clickable links when written as `owner/repo#123` — bare `#123` is no longer auto-linked
|
||||||
|
- Slash commands unavailable for the current auth setup (`/voice`, `/mobile`, `/chrome`, `/upgrade`, etc.) are now hidden instead of shown
|
||||||
|
- [VSCode] Added rate limit warning banner with usage percentage and reset time
|
||||||
|
- Stats screenshot (Ctrl+S in /stats) now works in all builds and is 16× faster
|
||||||
|
|
||||||
## 2.1.83
|
## 2.1.83
|
||||||
|
|
||||||
- Added `managed-settings.d/` drop-in directory alongside `managed-settings.json`, letting separate teams deploy independent policy fragments that merge alphabetically
|
- Added `managed-settings.d/` drop-in directory alongside `managed-settings.json`, letting separate teams deploy independent policy fragments that merge alphabetically
|
||||||
@@ -59,8 +164,25 @@
|
|||||||
- Linux: respect `XDG_DATA_HOME` when registering the `claude-cli://` protocol handler
|
- Linux: respect `XDG_DATA_HOME` when registering the `claude-cli://` protocol handler
|
||||||
- Changed "stop all background agents" keybinding from `Ctrl+F` to `Ctrl+X Ctrl+K` to stop shadowing readline forward-char
|
- Changed "stop all background agents" keybinding from `Ctrl+F` to `Ctrl+X Ctrl+K` to stop shadowing readline forward-char
|
||||||
- Deprecated `TaskOutput` tool in favor of using `Read` on the background task's output file path
|
- Deprecated `TaskOutput` tool in favor of using `Read` on the background task's output file path
|
||||||
|
- Added `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` env var to disable the non-streaming fallback when streaming fails
|
||||||
|
- Plugin options (`manifest.userConfig`) now available externally — plugins can prompt for configuration at enable time, with `sensitive: true` values stored in keychain (macOS) or protected credentials file (other platforms)
|
||||||
|
- Claude can now reference the on-disk path of clipboard-pasted images for file operations
|
||||||
|
- `Ctrl+L` now clears the screen and forces a full redraw — use this to recover when Cmd+K leaves the UI partially blank. Use `Ctrl+U` or double-Esc to clear prompt input.
|
||||||
|
- `--bare -p` (SDK pattern) is ~14% faster to the API request
|
||||||
|
- Memory: `MEMORY.md` index now truncates at 25KB as well as 200 lines
|
||||||
|
- Disabled `AskUserQuestion` and plan-mode tools when `--channels` is active
|
||||||
|
- Fixed API 400 error when a pasted image was queued during a failing tool call
|
||||||
|
- Fixed MCP tool calls hanging indefinitely when an SSE connection drops mid-call and exhausts its reconnection attempts
|
||||||
|
- Fixed Remote Control session titles showing raw XML when a background agent completed before the first user message
|
||||||
|
- Fixed remote sessions forgetting conversation history after a container restart due to progress-message gaps in the resumed transcript chain
|
||||||
|
- Fixed remote sessions requiring re-login on transient auth errors instead of retrying automatically
|
||||||
|
- Fixed `rg ... | wc -l` and similar piped commands hanging and returning `0` in sandbox mode on Linux
|
||||||
|
- Fixed voice input hold-to-talk not activating when a CJK IME inserts a full-width space
|
||||||
|
- Fixed `--worktree` hanging silently when the worktree name contained a forward slash
|
||||||
- [VSCode] Spinner now turns red with "Not responding" when the backend hasn't responded for 60 seconds
|
- [VSCode] Spinner now turns red with "Not responding" when the backend hasn't responded for 60 seconds
|
||||||
- [VSCode] Fixed session history not loading correctly when reopening a session via URL or after restart
|
- [VSCode] Fixed session history not loading correctly when reopening a session via URL or after restart
|
||||||
|
- [VSCode] Added Esc-twice (or `/rewind`) to open a keyboard-navigable rewind picker
|
||||||
|
- [VSCode] Fixed "Fork conversation from here" and rewind actions failing silently after the session cache goes stale
|
||||||
|
|
||||||
## 2.1.81
|
## 2.1.81
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user