最近 12 个版本
稳定性修复与配置规范化,插件安全加强
亮点
- Auto mode 在 Bedrock、Vertex AI、Foundry 默认启用,可通过 settings 禁用Bedrock/Vertex AI 用户
- 修复流式输出超长列表、表格或代码时导致的终端冻结和键盘延迟
- 修复远程管理设置被永久记录为已同意但不显示安全对话框
- 修复虚假的提示词注入警告
- 修复更新器覆盖自定义启动脚本或符号链接,/doctor 现报告外部管理的启动器
- 插件 hooks/monitors 加强参数验证,拒绝不安全的 shell 形式 ${user_config.*} 命令插件作者
破坏性变化
- autoMode 不再从项目级 .claude/settings.local.json 读取,改为仅读用户级 ~/.claude/settings.json↳ 升级后:检查项目 .claude/settings.local.json 中的 autoMode 设置,移至用户级 ~/.claude/settings.json
- pluginConfigs 不再从项目级 .claude/settings.json 读取,仅支持用户级、--settings 和管理设置↳ 升级后:将插件配置从项目级 settings 移至用户级 ~/.claude/settings.json 或通过 --settings 指定
- 插件 hooks/monitors/MCP headersHelper 中 shell 形式的 ${user_config.*} 命令被拒绝(安全修复)↳ 升级后:改用 exec 形式(args 数组)或通过 $CLAUDE_PLUGIN_OPTION_<KEY> 环境变量读取配置
展开官方原文 ↓收起官方原文 ↑
## 2.1.207
- Auto mode is now available without `CLAUDE_CODE_ENABLE_AUTO_MODE` opt-in on Bedrock, Vertex AI, and Foundry; disable via `disableAutoMode` in settings
- Fixed the terminal freezing and keystrokes lagging while streaming responses containing very long lists, tables, paragraphs, or code blocks
- Fixed remote managed settings from a non-interactive run (`claude -p`, the SDK) being permanently recorded as consented without ever showing the security consent dialog
- Fixed spurious prompt-injection warnings triggered by benign system-generated conversation updates
- Fixed the auto-updater overwriting a custom launcher script or symlink at `~/.local/bin/claude` on every release; `/doctor` now reports an externally managed launcher
- Fixed compound commands with `cd` prompting for permission when the only output redirect was to `/dev/null`
- Fixed the transcript jumping above the start of the answer when a response finishes streaming
- Fixed `extensions.worktreeConfig` being left in the repo's `.git/config` (breaking go-git tools like `tea`) after the last `worktree.sparsePaths` worktree was removed
- Fixed malformed bracket patterns in rules globs, skill paths, `.ignore`, and `.worktreeinclude` breaking file reads, file suggestions, and worktree creation
- Fixed a crash loop in agent teams where a malformed teammate mailbox message caused repeated errors every second until the mailbox file was manually deleted
- Fixed background sessions auto-named by accepting a plan not showing that name on their agent-view row
- Fixed background sessions that entered a git worktree resuming blank after a cold reopen from the agent list
- Fixed Remote Control task status updates being lost when the connection recovered from a network interruption or credential refresh
- Fixed Remote Control sessions hosted by the desktop app not showing background agent and workflow progress on mobile and web
- Fixed Deep research runs labeling every Fetch-phase agent "unknown" — chips now show the source hostname
- Fixed Bedrock repeatedly requesting fresh AWS SSO credentials from IAM Identity Center on every API request
- Improved agent view: pasting the same text again now expands the collapsed `[Pasted text #N]` placeholder instead of adding a second one
- Improved agent view: blocked session peeks now lead with the question and show a worded staleness clock (`waiting 3m`) instead of the same timestamp twice
- Changed Bedrock, Vertex, and Claude Platform on AWS to default to Claude Opus 4.8
- Changed auto mode to no longer read `autoMode` from `.claude/settings.local.json` (repo-resident); use `~/.claude/settings.json` instead
- Fixed an indefinite hang on Windows when AWS credential resolution stalls (e.g. a stuck `credential_process`): the 60-second stall guard now fires instead of waiting forever.
- Plugin hooks/monitors/MCP headersHelper: `${user_config.*}` in shell-form commands is now rejected (shell-injection fix). Hooks: use exec form (`args` array) or `$CLAUDE_PLUGIN_OPTION_<KEY>`; monitors and headersHelper: read the value inside the script (config file or the server's `env` block).
- Plugin option values (`pluginConfigs`) are no longer read from project-level `.claude/settings.json`; only user, `--settings`, and managed settings are honored
- Fixed `/usage-credits` amount inputs silently stripping malformed values (e.g. a pasted timestamp) to digits; malformed amounts are now rejected with an error, and amounts over $1,000 require a typed confirmation修复 MCP、登录、后台任务的核心问题,完善开发工具链
稳定性加固亮点
- 修复 MCP 服务器 per-server 超时配置被忽略、OAuth 认证失败需手动重新认证等问题,提升 MCP 集成稳定性MCP 用户
- 修复过期登录显示"选中的模型有问题"的误导错误,改为提示运行 /login
- 后台 agent 在 Claude Code 更新后自动升级,无需等待 reattach 时的 stale session 升级CI 用户
- 新增 /doctor 检查,可建议清理 CLAUDE.md 中从代码库可推导的冗余内容
- 改进 /code-review 在 claude-opus-4-8 上的检测质量,修复模型选择器的价格显示
- 改进 agents 视图状态列显示宽度,修复
claude --resume启动时的键盘输入响应
展开官方原文 ↓收起官方原文 ↑
## 2.1.206 - Added directory path suggestions to `/cd`, matching `/add-dir` behavior - Added a `/doctor` check that proposes trimming checked-in `CLAUDE.md` files by cutting content Claude could derive from the codebase - `/commit-push-pr` now auto-allows `git push` to the repo's configured push remote (`remote.pushDefault`, or the sole remote when only one is configured) in addition to `origin` - Gateway: `/login` now supports Anthropic-operated public gateway endpoints - `EnterWorktree` now asks for confirmation before entering a git worktree outside the project's `.claude/worktrees/` directory - Background agents now upgrade to a new version in the background right after a Claude Code update, instead of paying a slow stale-session upgrade when you attach - Fixed an expired login failing every model with a misleading "There's an issue with the selected model" error instead of prompting to run `/login` - Fixed `claude --resume` and `--continue` not responding to keyboard input on startup - Fixed MCP servers configured via `--mcp-config` or `.mcp.json` ignoring a per-server `request_timeout_ms`, which caused long-running MCP tool calls to time out at the 60s default in fresh sessions - Fixed `CLAUDE_CODE_EXTRA_BODY` being silently ignored by `claude agents` / `--bg` background workers; the shell-exported override now follows the dispatching session - Fixed OAuth MCP servers requiring manual re-authentication after a single failed token refresh - Fixed `--permission-prompt-tool` pointing at an MCP server crashing with "MCP tool not found" on cold start before the server finishes connecting - Fixed `/model` picker rows printing a price for a different model than the row named, and stopped quoting first-party list prices on providers that don't bill them - Fixed server-provided model rows being misplaced in the `/model` picker when an entitlement or allowlist restriction drops the row they were positioned against - Fixed desktop sessions getting stuck showing "running" after a slash command was sent mid-turn - Fixed keyboard input being ignored in the agents view when a setup prompt appeared before a bare `claude --resume` on Windows - Fixed `claude rm` leaving the removed job in the daemon roster, causing the row to reappear in `claude agents` - Fixed `/remote-control` showing "Unknown command" when logged out — it now explains how to sign in - Fixed left arrow not stepping back out of a phase or agent in the workflow detail view - Fixed `/status` listing the same broken-install warning twice - Fixed false "disused plugin" tips and skewed disuse telemetry for LSP plugins - Fixed `/doctor`'s update check to compare Homebrew installs against their cask's channel instead of the settings channel - Fixed the fullscreen jump-to-bottom pill suggesting Ctrl+End on macOS, not showing rebound chords, and wrapping over the transcript - Bedrock: fixed a multi-minute startup hang when using an `awsCredentialExport` helper on networks with restricted egress - Improved `/code-review` findings quality on claude-opus-4-8 across all effort levels - Improved agents view: status column now uses full terminal width instead of truncating at 64 characters - Changed agents view: Ctrl+X now permanently removes a completed session, and sessions no longer render twice; deleted background jobs stay deleted
Agent 和会话管理稳定性集中修复
稳定性加固亮点
- Auto mode 改进:运行 rm -rf 前会询问确认,防止变量无法解析时的误删
- Agent view 改进:任务状态用彩色关键词显示,标题由分类器生成;支持链接已有 PR
- 后台任务通知改进:明确说明未发生人工输入,防止虚假批准被执行
- 自动更新内存优化:二进制下载改为流式写入磁盘,峰值内存占用减少约 400MB
- JSON schema 修复:无效 schema 不再静默失效生成非结构化输出,现支持 format 关键字
破坏性变化
- User-configured MCP 服务器不能再注册为 "Claude Browser" 或 "Claude Preview" 这两个名称↳ 升级后:如果现有自定义 MCP 服务器使用了这两个名称,需要改为其他名称重新配置
展开官方原文 ↓收起官方原文 ↑
## 2.1.205 - Added an auto mode rule that blocks tampering with session transcript files - Fixed `--json-schema` silently producing unstructured output when the schema was invalid, and schemas using the `format` keyword being rejected - Fixed a message sent while Claude was working being silently lost when the turn ended at the `--max-turns` limit - Fixed Windows worktree removal deleting files outside the worktree when an NTFS junction or directory symlink existed inside it - Fixed background agents staying shown as "failed" or "completed" in the agent list after being resumed with `SendMessage` - Fixed background jobs flipping from "needs input" back to "working" in the agent list when the agent's turn contained no readable text - Fixed `claude attach` erroring when a background agent was mid-upgrade restart instead of waiting for it to come back - Fixed session-to-PR linking missing a PR created in a Bash call whose output exceeded the 30K inline limit - Fixed `claude mcp add-from-claude-desktop` getting stuck when a server name contains unsupported characters; invalid names are now reported and remaining servers still import - Fixed a plugin LSP server that fails to initialize preventing a valid LSP server from another plugin handling the same file extension - Fixed a Windows crash when the directory Claude was launched from is deleted, locked, or unmounted while a command is running - Fixed a crash when a file watcher was closed while a directory scan was still in flight - Fixed project verify skills being rewritten on every session instead of only when a documented command changed - Fixed the agent view rendering one line too high and clipping its header when the job list slightly overflowed the screen - Fixed background tasks in the web and mobile Remote Control panels showing stale "Running" status by forwarding full task state on every membership change - Improved auto mode to ask before running `rm -rf` on a variable it can't resolve from context - Auto-update binary downloads now stream to disk instead of buffering in memory, cutting the updater's peak memory usage by roughly 400 MB - Background task notifications now explicitly state that no human input has occurred, preventing fabricated in-transcript approvals from being acted on - Improved agent view: sessions that edit, merge, comment on, or push to an existing PR now link it in `claude agents` - Improved agent view: rows now show a colored state word and a classifier-written headline instead of raw tool call text, and the peek opens with full status including the exact ask for blocked sessions - `/doctor` is now a full setup checkup that can diagnose and fix issues; `/checkup` is its alias - Reserved the "Claude Browser" MCP server name (alongside "Claude Preview") ahead of the Claude Desktop pane rename; user-configured MCP servers can no longer register under either name - Fixed Cowork VM-mode local-agent sessions failing to start with "Not logged in · Please run /login" on CLI 2.1.203+
修复无头会话 Hook 事件流中断问题
稳定性加固亮点
- 修复无头会话中 SessionStart Hook 期间事件流中断,防止 remote workers 被误判为空闲而遭重启CI 用户
展开官方原文 ↓收起官方原文 ↑
## 2.1.204 - Fixed hook events not streaming during SessionStart hooks in headless sessions, which could cause remote workers to be idle-reaped mid-hook
后台 Session 稳定性大修,登录过期保护与自动恢复
稳定性加固亮点
- 新增登录过期警告,让用户在后台 session 中断前及时重新认证
- Session token 过期时自动恢复,解决后台 agent 永久无响应的问题后台 agent 用户
- 修复 macOS 后台 agent 启动卡顿 15-20 秒的回归问题
- 优化 context 分析逻辑,交互式 session 性能显著提升,不再每轮全量扫描 transcript
- 修复 worktree 隔离 subagent 在错误工作目录执行命令的问题
破坏性变化
- 左箭头不再关闭后台任务、diff 和 workflow 详情视图↳ 升级后:改用 Esc 键关闭这些视图
展开官方原文 ↓收起官方原文 ↑
## 2.1.203 - Added a warning when your login is about to expire, so you can re-authenticate before background sessions are interrupted - Added a grey ⏸ badge to the footer when in manual permission mode, making the active mode always visible - Added the session's additional working directories to MCP `roots/list`, with `notifications/roots/list_changed` sent when the set changes - Fixed opening or switching background agent sessions on macOS stalling for 15–20 seconds due to a false low-memory detection (regression in 2.1.196) - Fixed background sessions becoming permanently unresponsive to attach, replies, and stop when the daemon's session token went stale — the session now recovers automatically - Fixed returning to `claude agents` silently stopping running subagents and re-running the prompt from scratch — their work now carries over - Fixed a memory and per-turn CPU regression in interactive sessions: the context-usage indicator no longer re-analyzes the entire transcript after every turn - Fixed background agents inheriting a stale `PATH` from the daemon instead of the dispatching shell, causing missing tools on Windows - Fixed background and agent-view sessions dropping a shell-exported `ANTHROPIC_BASE_URL`, which sent API keys to the default endpoint and failed with 401 - Fixed Bash failing with "argument list too long" in repos with many git worktrees - Fixed worktree-isolated subagents sometimes running shell commands in the parent checkout instead of their own worktree - Fixed worktree creation rejecting nested repositories in multi-repo workspaces, leaving background sessions unable to isolate and edit - Fixed background agents crash-looping when their working directory was deleted, replaced by a file, or became an invalid path — they now fail once with a clear error - Fixed a background daemon auto-upgrade failure silently killing all running background sessions - Fixed `TaskStop` and `TaskOutput` failing to find background agents spawned by another agent — errors now list running agents by id and description - Fixed the `claude agents` composer discarding your typed message when a slash command isn't available there - Fixed the agent list crashing when opening a stopped session whose conversation was already open in another session - Fixed background sessions showing "Needs input" in the agent list after the question was already answered - Fixed background agent startup failures showing only "exit_with_message" instead of the actual error - Fixed background sessions ignoring `effortLevel` changes in settings.json when forked through the daemon - Fixed attached background sessions ignoring `CLAUDE_CODE_DISABLE_MOUSE` and `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` opt-outs - Fixed `/exit` incorrectly warning about running background agents after all named agents had completed - Fixed background sessions started from a non-git directory unable to edit files when a `WorktreeCreate` hook was configured - Fixed the `@` directory picker in `claude agents` not showing registered git worktrees - Fixed background task output on Windows being permanently replaced by an empty file after `/clear` - Fixed content jumping when scrolling up through long transcript history - Fixed the terminal flickering and jumping while typing in bash mode when a shell-history suggestion was shown - Fixed literal `^[[I` / `^[[O` escape codes being printed when reattaching to a background session - Fixed LSP-only plugins being incorrectly flagged for disuse when their language servers deliver diagnostics or answer navigation requests - Improved responsiveness while long responses stream: live-preview updates no longer re-render the whole screen - Improved subagent behavior: agents are now less likely to re-delegate their entire task to another subagent - Reduced binary size by ~7 MB and startup memory by ~7 MB by loading a large bundled dependency lazily instead of inlining it - Changed left arrow to no longer close the background tasks, diff, and workflow detail views — press Esc instead - Changed the empty `claude agents` view to always show the organized sections (Needs input / Working / Completed) with descriptions - Removed the startup "claude command missing or broken" warnings — they now appear in `/doctor` and `/status` instead - Removed a redundant navigation hint from the `claude agents` footer - [VSCode] Added a Settings toggle for "Enable Remote Control for all sessions"
多模块稳定性修复与功能增强
亮点
- 修复 Remote Control 移动/网页端命令执行、文件和图片发送失败Remote Control 用户
- 修复语音录制在麦克风或录音器故障时无限重试,现改为暂停输入语音输入用户
- 修复 Workflow 脚本中 unicode 转义字符被破坏;脚本错误现显示具体行号
- 优化大型 Git Worktree 仓库中 Session resume 的性能和内存占用
- 新增 Dynamic workflow size 配置选项,可在 /config 中调整 Workflow 代理规模
破坏性变化
- /review <pr> 改为单速评审;多代理评审功能被移除↳ 升级后:需多代理评审改用 /code-review <level> <pr#> 命令
展开官方原文 ↓收起官方原文 ↑
## 2.1.202 - Added a "Dynamic workflow size" setting in `/config` for controlling how large Claude generally makes dynamic workflows (small/medium/large agent counts) — an advisory guideline, not an enforced cap - Added `workflow.run_id` and `workflow.name` OpenTelemetry attributes to telemetry emitted by workflow-spawned agents, so a workflow run's activity can be reconstructed from OTel data - Fixed a crash in the inline Ctrl+R history search when accepting or cancelling while the search was still scanning the history file - Fixed `/rename` on background sessions being reverted when the job restarts, which broke addressing the session by its new name - Fixed transient mTLS handshake failures when settings were re-applied during an in-place client certificate rotation - Fixed commands sent from Remote Control (mobile/web) into an interactive session failing with "Unknown command" - Fixed images and files sent from the Remote Control mobile or web app without a caption being silently dropped - Fixed the sign-in URL printed by `claude auth login` and `claude mcp login --no-browser` not being reliably clickable when it wraps over SSH — it is now emitted as a single hyperlink - Fixed opening a chat from `claude agents` sometimes failing with "currently running as a background agent" followed by a worker crash/respawn loop - Fixed workflow scripts with unicode quote escapes in strings being corrupted before parsing; workflow parse errors now show the offending line instead of always blaming TypeScript - Fixed voice dictation retrying in an unbounded loop when the microphone or audio recorder fails — repeated capture failures now pause voice input - Fixed `/remote-control` sessions showing the wrong permission mode in the mobile and web apps - Fixed resuming a session by name, or opening the resume picker, taking minutes and using a large amount of memory in repositories with many git worktrees - Fixed installer and updater downloads failing immediately with "aborted" when a proxy or network drops the connection mid-download — transient connection drops now retry - Fixed re-invoking an already-loaded skill appending a duplicate copy of its instructions to context - Improved `/workflows` agent list layout: wider titles, a dedicated time column, shorter model names, and no per-row tool-call counts - Improved MCP error messages: clearer error when a server config has `url` but no `type`, suggesting `"type": "http"` instead of the misleading "command: expected string" - Changed `/review <pr>` back to a fast single-pass review; use `/code-review <level> <pr#>` for the multi-agent review at a chosen effort level
Sonnet 5 会话系统角色管理优化
日常修复亮点
- Claude Sonnet 5 会话不再在中途对话中使用系统角色发送 harness 提示
展开官方原文 ↓收起官方原文 ↑
## 2.1.201 - Claude Sonnet 5 sessions no longer use the mid-conversation system role for harness reminders
权限默认改为严格模式,后台会话与守护进程稳定性重铸
亮点
- 默认权限模式从"default"改为"Manual",所有权限操作现在需显式确认;接受
--permission-mode manual和"defaultMode": "manual"配置。所有用户 - 后台会话修复:sleep/wake 后不再静默中断、stall 不再重放已取消的步骤、崩溃后守护进程握手避免版本混乱。后台代理用户
- AskUserQuestion 对话框不再默认自动继续;需通过 /config 启用空闲超时来恢复旧行为。脚本作者
- 语音输入改进:移除误导性的"Voice connection failed"消息(当录音为空时不再显示)。
- 后台代理稳定性加固:修复守护进程名册损坏、版本混用导致字段丢失、速率限制断裂时静默返回等 7 项问题。后台代理用户
- 无障碍全面改进:屏幕阅读器隐藏装饰符、MCP 列表焦点跟踪、嵌套表格格式优化;Tmux 3.4+ 同步输出消除闪烁。无障碍用户
破坏性变化
- 默认权限模式改为"Manual"(严格模式),之前依赖宽松默认值自动通过的操作现在需显式确认。↳ 升级后:配置中显式指定
"defaultMode": "manual";CLI 使用--permission-mode manual;旧的--permission-mode default仍接受但行为已改变,需重新评估自动化脚本。 - AskUserQuestion 对话框不再默认自动继续;默认的空闲超时功能被禁用。↳ 升级后:依赖自动继续的脚本应通过 /config 启用空闲超时功能。
展开官方原文 ↓收起官方原文 ↑
## 2.1.200 - Changed `AskUserQuestion` dialogs to no longer auto-continue by default; opt into an idle timeout via `/config` - Changed the "default" permission mode to "Manual" across the CLI, `--help`, VS Code, and JetBrains; `--permission-mode manual` and `"defaultMode": "manual"` are accepted alongside `default` - Fixed a crash at startup when `disabledMcpServers` or `enabledMcpServers` in `.claude.json` is set to a non-array value - Fixed background sessions silently stopping mid-turn after sleep/wake or when reopening a stalled session - Fixed background sessions re-running a turn cancelled with Esc after a stall respawn - Fixed background agents never starting again after a crash left a stale `daemon.lock` whose PID the OS reused - Fixed background-agent daemon handover so a reinstalled older build can no longer take over the daemon; build recency is now judged by the version's embedded build timestamp - Fixed background-agent roster issues: transient corruption permanently disabling orphan cleanup, older binaries not preserving fields written by newer versions, and socket auth tokens being stripped during daemon restarts - Fixed subagents cut off by a rate limit before producing any text output returning an empty result instead of failing cleanly - Fixed control bytes from background-agent output reaching the terminal in the agent view - Fixed `claude agents --plugin-dir <dir>` not showing the plugin's agents and skills in the agent view when the flag is placed after `agents` - Fixed project-scoped plugins not loading correctly from git worktrees of the same repository - Fixed `/mcp` server list not tracking focus for screen readers and magnifiers - Fixed voice dictation showing a misleading "Voice connection failed" message when a recording captures no audio - Fixed rendering flicker under tmux 3.4+ by enabling synchronized terminal output - Improved screen-reader output: decorative glyphs are now hidden, transcript symbols read as short labels, and nested tables read as `Header: value.` lines - Improved the install script to explain when installation is killed by the system running out of memory
后台Agent与流式处理稳定性全面加固
稳定性加固亮点
- 支持一次堆叠调用多个slash-skill,如 /skill-a /skill-b do XYZ,最多5个
- SSL/TLS证书错误现在立即失败并给出修复提示,避免浪费重试次数
- API中途报错时现在保留已接收的部分流式输出,不再静默丢弃
- Subagent现在正确报告API限流和错误,不再误报为成功结果
- 后台Agent在SSH/macOS上冷启动不再失败,Linux守护进程不再意外自杀SSH用户
- 长命令运行时进度显示不再卡顿,低内存环境给出明确提示而非通用错误
展开官方原文 ↓收起官方原文 ↑
## 2.1.199 - Stacked slash-skill invocations like `/skill-a /skill-b do XYZ` now load all leading skills (up to 5), not just the first - Fixed SSL certificate errors (TLS-inspecting proxies, missing `NODE_EXTRA_CA_CERTS`, expired certs) burning retries before showing actionable guidance — they now fail immediately with the fix hint - Fixed streaming responses being discarded when the API emits a mid-stream overloaded/server error after partial output — the partial is now kept with an incomplete-response notice - Fixed subagents cut off by a rate limit or server error silently failing instead of returning their partial work to the parent - Fixed subagents reporting API errors (e.g. usage limit reached) as successful results — the error is now reported to the parent agent - Fixed the background-agent daemon on Linux killing itself and every running agent every ~50 seconds after an unclean shutdown left a corrupted worker record - Fixed background agents failing to cold-start over SSH on macOS with "Could not switch to audit session" (regression in 2.1.196) - Fixed `claude stop` being silently undone when it raced a background-agent respawn — the respawn now honors the stop - Fixed background job progress indicators stalling for minutes while the job ran long commands - Fixed background sessions on memory-starved machines showing a generic error — they now indicate low memory and suggest freeing resources - Fixed remote sessions briefly flapping between Working and Idle in the agent view when a background agent completes - Fixed idle subagents vanishing from the agent panel while other subagents were still working; surplus idle agents now collapse into an expandable summary row - Fixed typing `/model` or `/fast` while viewing a subagent silently opening the lead's model picker — a notice now explains the command applies to the lead - Fixed `SessionStart`, `Setup`, and `SubagentStart` hooks silently hiding stderr when exiting with code 2 — the error is now shown in the transcript - Fixed `claude --dangerously-skip-permissions daemon <subcommand>` being treated as a chat prompt instead of running the subcommand - Fixed `SendMessage` silently misrouting when a re-spawned agent reuses a previous agent's name — the tool now detects the mismatch and asks the caller to retarget - Fixed opening or resuming a session with no new messages needlessly growing the transcript file - Fixed backgrounding a session with `←` or `/background` dropping its `/color` from the agent view row - Fixed resetting a corrupted config file from the startup recovery dialog destroying it unrecoverably — it now backs up the file first - Fixed Claude in Chrome repeatedly opening the reconnect page when sessions run from different builds or config directories - Fixed plan mode not prompting for state-changing browser tool calls; read-only `browser_batch` calls are now correctly auto-allowed - Transient server rate-limit errors (429s unrelated to your usage limit) are now retried automatically with backoff for subscribers instead of failing the turn - `CLAUDE_CODE_RETRY_WATCHDOG` now raises the default retry count for non-capacity transient errors to 300 and lifts the cap of 15 on `CLAUDE_CODE_MAX_RETRIES` - `claude agents` session rows now show pull-request links as bare `#N` without the redundant "PR" label
Chrome 正式可用、代理自动化、稳定性优化
亮点
- Claude in Chrome 正式可用,云端能力直接集成浏览器
- 后台代理完成代码工作时自动 commit、push、打开 draft PR,无需用户二次确认
- 新增 /dataviz skill 提供图表和仪表板设计指导,含可运行的配色验证工具
- 后台代理新增通知机制:agent 需要输入或完成时触发 Notification hook,便于自动化集成CI / 自动化用户
- Explore agent 继承 session 的模型配置(最多 opus),替代固定 haiku,推理质量提升
- 修复网络中断、AWS 连接、macOS 权限、symlink 路径、agent teams 等 20+ 稳定性问题
破坏性变化
- /agents 向导被移除↳ 升级后:改为手动编辑 .claude/agents/ 或让 Claude 帮助创建代理
- 后台代理完成代码工作时不再询问用户,直接自动 commit、push、打开 draft PR↳ 升级后:验证自动化流程符合预期,必要时调整工作流程和权限配置
展开官方原文 ↓收起官方原文 ↑
## 2.1.198 - Claude in Chrome is now generally available - Added background agent notifications in `claude agents` — sessions that need input or finish now fire the `Notification` hook (`agent_needs_input` / `agent_completed`) - Added `/dataviz` skill for chart and dashboard design guidance with a runnable color-palette validator - Gateway: added Claude Platform on AWS (anthropicAws) as an upstream provider; model-not-found responses now advance the failover chain - Background agents launched from `claude agents` now commit, push, and open a draft PR when they finish code work in a worktree, instead of stopping to ask - The built-in Explore agent now inherits the main session's model (capped at opus) instead of running on haiku - Subagents and context compaction now inherit the session's extended thinking configuration, improving output quality on delegated tasks - Fixed brief network drops mid-response aborting the turn — transient errors like ECONNRESET now retry with backoff instead of failing - Fixed excessive background classifier requests when sandboxed processes repeatedly accessed the same network host - Fixed background tasks in web, desktop, and VS Code task panels getting stuck on "Running" after they finish or after resuming a session - Fixed agent teams: a teammate that dies on an API error now reports "failed" to the lead, and messaging a stuck teammate wakes it to retry immediately - Fixed the `/diff` panel not refreshing when you switch branches or commit outside the session - Fixed markdown tables overflowing and wrapping their right border when rendered in fullscreen mode - Fixed Claude Platform on AWS and Mantle sessions dead-ending with "Please run /login" when the STS token expires — `awsAuthRefresh` now runs automatically - Fixed "no route to host" for local-network hosts in macOS background agent sessions by declaring Local Network entitlements - Fixed `/desktop` failing with "Cannot determine working directory" after entering and exiting a worktree - Fixed background agents repeatedly showing "Reconnecting…" every ~52 seconds on macOS while the agents view was open - Fixed pressing `←` inside `claude attach <id>` exiting to the shell instead of opening the agent view - Fixed `claude --bg` silently creating an unattachable session when combined with `--print`/`-p`; the conflicting flags are now rejected up front - Fixed the workflow progress view dropping the earliest agents from the list while the phase counter stayed correct in SDK and desktop-app sessions - Fixed `.claude/rules/` conditional rules not loading when the target file is reached via a symlinked path - Fixed Cmd+click not opening URLs in fullscreen mode in Warp on macOS - Fixed double-click word selection in fullscreen mode to select the entire URL including the scheme - Fixed plan mode not auto-allowing read-only tool calls when a session starts in plan mode - Fixed `/branch` deriving its default fork name from the compaction summary instead of the first real prompt - Improved focus mode: subagents launched in a turn now appear in its activity summary, and completed background notifications fold into a single count - Improved syntax highlighting accuracy in code blocks, diffs, and file previews by upgrading to highlight.js 11 - Keyboard shortcut hints now show opt/cmd instead of alt/super when connected from a Mac over SSH - Improved API retry UX: the error reason is now shown after the second attempt, and a status page link replaces the spinner tip when the API is overloaded - `/login` now opens the sign-in dialog from the `claude agents` view instead of saying it isn't available - Subagents now treat messages from the agent that launched them as normal task direction; an agent's message is still never treated as the user's approval - Removed the `/agents` wizard; ask Claude to create or manage subagents, or edit `.claude/agents/` directly
Sonnet 5 成为新默认,原生百万 token 上下文
新功能亮点
- Claude Sonnet 5 成为默认模型,推理和理解能力大幅提升
- 原生 1M token 上下文窗口,处理长代码和复杂文档无需截断
- 限时优惠价格 $2/$10 per Mtok,截至 2026 年 8 月 31 日
展开官方原文 ↓收起官方原文 ↑
## 2.1.197 - Introducing Claude Sonnet 5: now the default model in Claude Code, with a native 1M-token context window and promotional pricing of $2/$10 per Mtok through August 31. Update to version 2.1.197 for access. https://www.anthropic.com/news/claude-sonnet-5
后台会话稳定加固与多处修复完善
稳定性加固亮点
- MCP 安全强化:
claude mcp list/get不再自动启动未批准服务器,改由已提交的 .claude/settings.json 显式控制MCP 用户 - 后台任务可靠性飙升:长时任务/工作流支持进程意外停止/重启后自动恢复,Windows 系统也已加强
- Agent 面板多处修复:焦点卡住、后台任务丢失子代理类型、状态错显等问题全部解决
- 会话交互提升:可读的默认会话名称方便识别;文件附件支持 Cmd/Ctrl 点击快速在 Finder/Explorer 中打开
- 代码审查性能优化:五个清理检查器合并为一,token 消耗下降约 25%
- PowerShell 命令行修复:git diff/grep、egrep/fgrep、带管道字符的模式现与 Bash 行为一致Windows 用户
破坏性变化
- Remote Control 在 ANTHROPIC_BASE_URL 指向非 Anthropic 端点时被禁用,改为遵循 Bedrock/Vertex/Foundry 策略↳ 升级后:若需自定义端点支持 Remote Control,检查环境变量配置或切换至 Anthropic 官方端点
- 流媒体空闲看门狗默认全局启用:5 分钟无输出事件则自动中止重试↳ 升级后:若需支持超长空闲流或特殊网络场景,设置环境变量 CLAUDE_ENABLE_STREAM_WATCHDOG=0
展开官方原文 ↓收起官方原文 ↑
## 2.1.196 - Added support for organization default models — admins set it in the org console; it shows as "Org default" (or "Role default") in `/model` when you haven't picked one yourself - Added readable default names for sessions at start, making them easier to identify and message - Added clickable file attachments in chat — Cmd/Ctrl-click reveals the file in Finder/Explorer - Security: `claude mcp list`/`get` no longer spawn `.mcp.json` servers that a repo self-approved via a committed `.claude/settings.json`; untrusted workspaces show `⏸ Pending approval` - Fixed waking a background job permanently deleting its conversation and re-running the original prompt when the transcript probe misread a real transcript; the file is now set aside, never deleted - Fixed the rate-limit warning flickering off and rate-limit telemetry being over-counted when multiple parallel requests were in flight at the moment a usage limit was hit - Fixed duplicate recap lines after a background session's turn: a schema-rejected StructuredOutput attempt no longer renders alongside its retry - Fixed PowerShell `git diff`/`git grep`, `egrep`/`fgrep`, and quoted search patterns containing `|` being reported as failures when they exit 1, matching Bash behavior - Fixed multiple `claude agents` side panel issues: keyboard focus getting stuck when opening an agent, background jobs losing their subagent types on every open, and sessions showing incorrect status while actively running - Fixed `claude agents --dangerously-skip-permissions` silently falling back to auto mode instead of showing the bypass disclaimer and applying bypass mode to spawned agents - Fixed mid-turn crash recovery for Remote sessions — sessions interrupted by a server restart now auto-resume on the next worker - Fixed sessions moved with `/cd` reappearing in the old directory's resume list after a non-graceful exit when the old path contained special characters - Fixed `claude plugin validate` skipping local plugins whose source is "." and stopping after the first error class - Fixed Esc Esc at an idle prompt not opening the rewind menu (regression); use Ctrl+C or Ctrl+X Ctrl+K to stop background agents - Fixed MCP OAuth requesting the authorization server's full `scopes_supported` catalog when no scope is specified, causing `invalid_scope` failures on GitLab self-hosted and other enterprise IdPs - Fixed `/context` showing 0 tokens for all tool groups on Bedrock - Fixed `/deep-research` misreporting verifier failures as "all claims refuted" instead of `unverified` - Fixed plugin dependency version pins not being honored when the marketplace was added as a local folder path backed by a git repo - Fixed `claude agents` session status: completed rows no longer flip between "Done" and "Needs your input", stalled agents are now labeled "Needs attention", and results that mention a PR show a clickable link - Fixed voice dictation swallowing spaces and spuriously starting a recording during very fast typing when voice mode is enabled - Improved background session reliability: long-running commands and workflows now survive the session's process being stopped, restarted, or updated — including on Windows, where background shells are handed off instead of being killed - Improved background agents: workers killed by a daemon restart are now automatically resumed from where they left off the next time the agents view opens - Improved `/code-review` workflow: merged five cleanup finders into one, cutting token usage by roughly 25% - Reduced per-frame rendering work in the terminal UI by skipping no-op subtree walks during streaming - The streaming idle watchdog is now on by default for all providers — it aborts and retries when a response stream produces no events for 5 minutes. Set `CLAUDE_ENABLE_STREAM_WATCHDOG=0` to disable. - Remote Control is now disabled when `ANTHROPIC_BASE_URL` points at a non-Anthropic host, matching the existing behavior under `CLAUDE_CODE_USE_BEDROCK`/`_VERTEX`/`_FOUNDRY` - Changed opening the agents view from a foreground session to require a single `←` press instead of two, matching the behavior in background sessions
历史版本(88 个)
v2.1.190-1994 个版本 · 4 已摘要
v2.1.195Hook 精确匹配、语音输入三修及后台任务加固破坏性
- Hook 匹配改为精确而非子串,提升 hook 规则精度
- 修复语音输入三项问题:macOS 长会话静音捕获、无空格语言自动提交失效、Linux 区分麦克风状态
- 修复插件启用/禁用失效、项目设置启用的插件重复确认问题
- 修复后台任务消失、重启显示空白、守护进程卡住等稳定性问题
- 新增 CLAUDE_CODE_DISABLE_MOUSE_CLICKS 环境变量禁用全屏模式的鼠标操作
- 改进 Remote 会话启动显示预配清单
破坏性变化
- Hook matchers 从子串匹配改为精确匹配;带连字符的 tool 名称(如
code-reviewer、mcp__brave-search)现在只精确匹配,不再子串模糊匹配↳ 升级后:如需匹配同一 MCP 服务的多个工具,改用正则表达式如mcp__brave-search__.*
## 2.1.195 - Added `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` to disable mouse click/drag/hover in fullscreen mode while keeping wheel scroll - Fixed hook matchers with hyphenated identifiers (e.g. `code-reviewer`, `mcp__brave-search`) accidentally substring-matching — they now exact-match. Use `mcp__brave-search__.*` to match all tools from a hyphenated MCP server. - Fixed voice dictation on macOS capturing silence in long-running sessions after the default input device changes - Fixed voice dictation auto-submit never firing for languages written without spaces (Japanese, Chinese, Thai) - Fixed external plugins enabled only by project `.claude/settings.json` not requiring explicit install consent on every loader path - Fixed `/plugin` Enable/Disable not working when a plugin's `plugin.json` `name` differs from its marketplace entry name - Fixed background jobs disappearing from `claude agents` or losing data when written by a newer Claude Code version - Fixed reopening a crashed background task showing a blank screen for up to 5 seconds instead of its restart - Fixed background agent daemons running unreachable when the control socket fails to start, blocking restarts - Improved voice mode on Linux: now distinguishes "no microphone" from "SoX not installed" when SoX is present but no audio capture device exists - Improved `claude agents` completed list to fill available vertical space; on short terminals the header compacts so live sessions stay visible - Improved Remote session startup with a provisioning checklist while the container starts
v2.1.193增强自动化模式、改进后台代理稳定性和 MCP 认证流程破坏性
- 设置
autoMode.classifyAllShell让所有 Bash/PowerShell 命令都通过自动化分类器检查,不仅限于特定模式 - 自动化模式拒绝时显示具体原因,在转录、拒绝提示和权限页面都能看到为什么被拒绝
- Bash mode 新增实时文件路径自动补全,在
!后快速访问系统文件 - MCP 服务器需要认证时自动显示启动提示,点击 /mcp 快速配置
- 自动清理空闲的后台 shell 命令释放内存压力,可用
CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP=1禁用 - 修复多个后台代理问题:自动更新后不再反复提示继续工作、后台化时不生成多余 subagent、不会被误取消
破坏性变化
- OpenTelemetry 日志行为变化:默认开始记录模型响应内容(跟随
OTEL_LOG_USER_PROMPTS设置),若需仅记录提示内容须设置OTEL_LOG_ASSISTANT_RESPONSES=0
## 2.1.193 - Added `autoMode.classifyAllShell` setting to route all Bash/PowerShell commands through the auto-mode classifier instead of only arbitrary-code-execution patterns - Added auto-mode denial reasons to the transcript, the denial toast, and `/permissions` recent denials - Added `claude_code.assistant_response` OpenTelemetry log event containing the model's response text. Redacted unless `OTEL_LOG_ASSISTANT_RESPONSES=1`; when that var is unset it follows `OTEL_LOG_USER_PROMPTS`, so deployments that already log prompt content will start receiving response content on upgrade — set `OTEL_LOG_ASSISTANT_RESPONSES=0` to keep prompts-only. - Added live file path autocomplete to bash mode (`!`) - Added a startup notice when MCP servers need authentication, pointing at `/mcp` - Added automatic memory-pressure reaping for idle background shell commands (disable with `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP=1`) - Fixed `/model` and other client-data-gated UI showing stale/empty state immediately after `/login` - Fixed backgrounding (←←) spuriously cancelling with "N background tasks would be abandoned" when all running tasks carry over to the new session - Fixed pinned background agents being re-prompted to "Continue from where you left off" after every auto-update - Fixed backgrounding the main turn spawning a phantom "general-purpose (resumed)" subagent that re-ran the main conversation - Fixed agent panel hiding sibling agents when viewing a subagent - Improved background agents: the launch result no longer instructs Claude to "end your response" — it keeps working on other tasks while the agent runs - Improved MCP `headersHelper` auth: the helper now re-runs and reconnects automatically when a tool call returns 401/403 - Improved plugin auto-rename: marketplace `renames` maps are now followed automatically, updating your settings to the new name - Improved `/add-dir` message when the directory is already a working directory
v2.1.191修复多项 UI 和 MCP 问题,优化性能和可靠性
- 添加 /rewind 命令支持对话恢复,可恢复 /clear 执行前的内容
- 流式响应性能优化 37% CPU 使用,减少长会话内存占用
- 改进 MCP 服务可靠性:capability discovery 支持重试、OAuth 流程优化、404 错误显示 URL
- Sandbox 网络权限改进:允许的主机在会话内自动记忆,无需重复确认
- 修复 agent 停止后重启、权限面板保存、vim 模式搜索等多项 UI 问题
- 修复跨平台兼容性:Windows Terminal /login 链接截断、Ghostty ssh/tmux 的 Cmd+click、hook 逗号分隔符失效
## 2.1.191 - Added `/rewind` support for resuming a conversation from before `/clear` was run - Fixed scroll position jumping to the bottom while reading earlier output during a streaming response - Fixed background agents resurrecting after being stopped — stopping an agent from the tasks panel is now permanent - Fixed `/voice` showing a generic "not available" message when disabled by an organization's policy — it now explains the restriction - Fixed `/login` URL opening truncated in Windows Terminal when it wraps across lines - Fixed Cmd+click on links in fullscreen mode for Ghostty over ssh/tmux - Fixed `claude agents` sending builtin slash commands like `/usage` to background sessions as prompt text instead of showing a hint - Fixed `claude agents` job rows showing full filesystem paths for pasted images instead of the `[Image #N]` placeholder - Fixed hooks with comma-separated matchers (e.g. `"Bash,PowerShell"`) silently never firing - Fixed `/permissions` Recently-denied tab: approving a denial now persists on close instead of being silently discarded - Fixed the agent panel jumping by one row when scrolling the roster past the overflow cap - Fixed the welcome splash art overflowing the default 80×24 macOS Terminal window - Fixed managed settings: `forceRemoteSettingsRefresh` now takes effect when set via MDM or file policy, and the fetch sends `Cache-Control: no-cache` to prevent proxies from serving stale responses - Improved sandbox network permission dialog: hosts you allow with "Yes" are now remembered for the rest of the session instead of re-prompting on every connection - Improved MCP server reliability: capability discovery (`tools/list`, `prompts/list`, `resources/list`) now retries transient network errors with short backoff - Improved MCP OAuth: discovery and token requests now retry once after transient network errors, and headless environments skip the browser popup and go straight to the paste-the-URL prompt - Improved MCP error messages: HTTP 404 errors now show the URL and point to your MCP config - Improved vim mode prompt-history search (NORMAL `/`) to hint how to reach slash commands - Reduced CPU usage during streaming responses by ~37% by coalescing text updates to 100ms - Reduced long-session memory growth from terminal output cache
v2.1.190修复与可靠性改进
- 修复若干 bug 并提高系统可靠性
## 2.1.190 - Bug fixes and reliability improvements
v2.1.180-1895 个版本 · 5 已摘要
v2.1.187强化安全隔离与企业管理,修复结构化输出与超时问题
- 新增 sandbox.credentials 设置,阻止沙箱命令读取凭证文件和密钥环境变量,增强安全隔离。
- 支持组织级模型限制,在 /model、--model 等处显示限制状态,便于企业权限管理。
- 修复 --json-schema 和 workflow 结构化输出,模型不再重复调用 StructuredOutput 工具,增强可靠性。
- 修复 MCP 工具无限超时卡顿,5 分钟无响应现改为出错中止,可通过环境变量 CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT 自定义。
- 改进 /install-github-app 流程,GitHub Actions 工作流配置变为可选,简化集成步骤。
## 2.1.187
- Added `sandbox.credentials` setting to block sandboxed commands from reading credential files and secret environment variables
- Added org-configured model restrictions to the model picker, `--model`, `/model`, and `ANTHROPIC_MODEL`, with a "restricted by your organization's settings" message when a restricted model is selected
- Added mouse click support to select menus (permission prompts, `/model`, `/config`, etc.) in fullscreen mode
- Fixed `--resume` failing with "No conversation found" when the original `-p` run produced no model turns
- Fixed `--json-schema` and workflow `agent({schema})` structured output: the model can no longer re-call `StructuredOutput` indefinitely after a successful call, and follow-up turns now reliably return structured output
- Fixed remote MCP tool calls that hang with no response for 5 minutes — they now abort with an error instead of blocking indefinitely (override with `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`)
- Fixed Claude Code Remote sessions taking ~2.7s longer to start after the agent proxy CA system-trust install was added
- Fixed pasted Korean/CJK text turning into mojibake in terminals that deliver paste as per-byte extended-key events
- Fixed `/update` over Remote Control hanging when a startup trust dialog would have shown
- Fixed background jobs in the agents view getting stuck in "working" indefinitely when the agent ended a turn without producing structured output
- Fixed channel connections dropping after navigating to the agents view and back, and after `/bg`, `/tui`, or `/update`
- Fixed agent stop notifications not correctly attributing who stopped the agent, and improved wording ("finished"/"stopped" instead of "came to rest")
- Fixed subagent depth tracking: resumed subagents now restore their original spawn depth, and forked subagents now count toward the depth cap
- Fixed leaked agent worktree registrations: locked `.git/worktrees/` entries from killed agents are now cleaned up automatically
- Fixed Cmd+click not opening URLs in fullscreen mode in Ghostty on macOS
- Fixed `claude --help` not listing the `--bg`/`--background` flag
- Fixed Esc, Ctrl-C, and Ctrl-D not working while `/share` is uploading
- Improved `/install-github-app`: GitHub Actions workflow setup is now optional — you can install just the GitHub App and skip the workflow/secret steps
- Improved `/btw` with ←/→ arrow navigation to step through earlier answers
- Improved `/plugin` to surface plugins you haven't used recently so you can clean them up
- [VSCode] Fixed extension becoming unresponsive when resuming a large sessionv2.1.186MCP 命令行认证和 Bash 自动响应,修复多个交互问题破坏性
- 新增
claude mcp login/logout命令行认证 MCP 服务器,支持 SSH 无浏览器模式,简化远程集成 !开头的 bash 命令现在自动触发 Claude 响应(可通过respondToBashCommands: false关闭),让 REPL 工作流更流畅- /workflows 视图添加状态过滤(按
f键)、后台代理权限提示改为在主会话显示,交互体验优化 - 修复机器睡眠唤醒后流式请求失败、滚动位置溢出、权限提示对齐等多个交互 bug
claude mcp get/remove命令改进,输入错误时智能建议最接近的服务器名称- Skill 配置和内存管理改进,支持 kebab-case、snake_case、camelCase 混用
破坏性变化
CLAUDE_CODE_MAX_RETRIES环境变量上限改为 15;未监听会话应改用CLAUDE_CODE_RETRY_WATCHDOG/review <pr>命令现在使用与/code-review medium相同的审查引擎
## 2.1.186
- Added `claude mcp login <name>` and `claude mcp logout <name>` to authenticate MCP servers from the CLI without opening the interactive `/mcp` menu, with `--no-browser` stdin redirect support for completing over SSH
- Added status filtering (press `f`) to the `/workflows` agent detail view
- Added a "Skills" section to the `/plugin` Installed tab
- Added `teammateMode: "iterm2"` setting with a warning when auto mode cannot find the `it2` CLI
- Added "Claude Platform on AWS - refresh credentials" option to `/login` when `awsAuthRefresh` is configured
- `!` bash commands now trigger Claude to respond to the output automatically; set `"respondToBashCommands": false` in settings.json to keep the previous context-only behavior
- Fixed streaming requests failing with "Content block not found" or JSON parse errors after the machine wakes from sleep
- Fixed subagent transcript scroll position bleeding into the main transcript on exit
- Fixed background task previews flashing raw tool names before the agent's plan loaded
- Fixed Chrome tab-group isolation not applying when the in-product permissions gate is off for concurrent CLI sessions
- Fixed background session recaps being duplicated; the agent's own end-of-turn summary now shows as the recap line
- Fixed opening a background session from `claude agents` leaving the previous screen painted behind it
- Fixed `Agent(type)` deny rules and `Agent(x,y)` allowed-types restrictions not being enforced for named subagent spawns
- Fixed Esc and Ctrl+C not responding while background agents are still running after the main turn ends
- Fixed misaligned option numbers in permission prompts when the option text overflows
- Fixed pressing `x` on a finished subagent in the agent panel not dismissing it
- Fixed a misleading "MCP server disconnected" notice for intentionally retired tools when resuming older sessions
- Fixed `/plugin` Installed showing a "more above" indicator when already scrolled to the top
- Fixed `~~strikethrough~~` showing literal tildes in assistant messages instead of rendering as strikethrough
- Fixed `--tools` allowing feature-gated tools to slip through before flags loaded on a cold first launch
- Fixed background job status in `claude agents` showing a stale "needs input" message after replying
- Fixed a dark-theme flash when opening a background session from `claude agents` on a light terminal
- Fixed mouse-selected text staying highlighted after deleting it in `claude agents`
- Fixed session cost not showing for usage-based Enterprise and Team subscribers
- Fixed agent teams: teammates spawned via tmux/pane backends now inherit the leader's `--effort` level
- Fixed Workflow `agent({schema})` subagents looping forever on repeated schema validation failures instead of aborting after 5 attempts
- Improved `claude mcp get` and `claude mcp remove` to suggest the closest configured server name on a typo and truncate long server lists
- Improved memory: the agent is now reminded to compact its `MEMORY.md` index when nearing the size limit
- Improved skill frontmatter: `display-name`, `default-enabled`, `fallback`, and `metadata.*` keys now accept kebab-case, snake_case, and camelCase
- Improved malformed `SKILL.md` YAML frontmatter handling: loads the skill body with empty metadata instead of failing silently
- Changed `CLAUDE_CODE_MAX_RETRIES` to cap at 15; for unattended sessions, use `CLAUDE_CODE_RETRY_WATCHDOG` instead
- Changed background subagents to surface permission prompts in the main session instead of auto-denying; the dialog shows which agent is asking, and Esc denies just that tool
- Changed `/review <pr>` to use the same review engine as `/code-review medium`v2.1.185流式响应提示优化
- 响应提示改为「等待 API 响应」
- 超时检测时间从 10 秒改为 20 秒
## 2.1.185 - The stream-stall hint now reads "Waiting for API response · will retry in …" instead of "No response from API · Retrying in …", and triggers after 20s of silence instead of 10s
v2.1.183增强自动模式安全性并修复多项问题破坏性
- 自动模式安全增强:阻止破坏性 git 命令(reset --hard、checkout、clean、stash drop),禁止修改非本会话生成的提交,限制云资源销毁操作
- 模型弃用警告:请求的模型已弃用或自动更新时显示警告,支持 print 模式和 agent 配置中的模型
- attribution.sessionUrl 设置:在网页和远程控制会话中可选择省略 claude.ai 会话链接的提交和 PR
- /config 增强:新增 --help 列出所有快捷键,改进了切换行为(Enter/Space 更改设置,Esc 保存关闭)
- WebSearch 和 subagent 修复:修复 subagent 中 WebSearch 空结果、会话标题生成和认证工具问题
- TUI 和显示修复:修复全屏 TUI 损坏、终端光标位置、思考块处理、tmux 同步问题等多项显示缺陷
破坏性变化
- /config 切换行为变更:Esc 键现在保存并关闭而非回滚设置
## 2.1.183 - Improved auto mode safety: destructive git commands (`git reset --hard`, `git checkout -- .`, `git clean -fd`, `git stash drop`) are now blocked when you didn't ask to discard local work, `git commit --amend` is blocked when the commit wasn't made by the agent this session, and `terraform destroy`/`pulumi destroy`/`cdk destroy` are blocked unless you asked for the specific stack - Added a warning when the requested model is deprecated or automatically updated to a newer model, shown on stderr in print mode (`-p`) and now also covering models set in agent frontmatter - Added `attribution.sessionUrl` setting to omit the claude.ai session link from commits and PRs in web and Remote Control sessions - Added `/config --help` to list all available shorthand keys for `/config key=value` - Changed `/config` toggle behavior: Enter and Space both change the selected setting, and Esc now saves and closes instead of reverting - Removed the startup "setup issues" line under the logo — run `/doctor` to see configuration issues or use `--debug` - Fixed `thinking.disabled.display: Extra inputs are not permitted` 400 errors on subagent spawns and session-title generation for affected configurations - Fixed WebSearch returning empty results in subagents - Fixed the terminal cursor being stranded above the prompt after navigating history in vim mode with the native cursor enabled - Fixed fullscreen TUI corruption (statusline mid-screen, duplicated spinner rows, merged text) in Windows Terminal under heavy nested-subagent load - Fixed turns silently completing with no visible output when the model returned only a thinking block; Claude now re-prompts once - Fixed user-level skills appearing multiple times in slash-command autocomplete when multiple plugins are enabled - Fixed MCP servers requiring authentication exposing auth-stub tools to the model in headless/SDK mode - Fixed tmux teammate panes failing to launch when the shell has slow rc-file initialization, and keystrokes typed during agent spawn leaking into the new tmux pane instead of the leader prompt - Fixed background tasks started by a teammate being killed when the teammate finishes a turn - Fixed scheduled task and webhook trigger deliveries being treated as keyboard input; they now classify as task notifications and can no longer approve a pending action or set the session title in auto mode - Fixed focus mode showing "Ran N PostToolUse hooks" timing lines under each response
v2.1.181改进配置灵活性、流式输出体验和稳定性
- 新增
/config key=value语法,支持从 prompt 直接设置任何配置项(如/config thinking=false),在交互模式、-p 和 Remote Control 中都可用 - 改进长段落流式输出,文本现按行逐行显示而非等待首行换行,大幅提升实时反馈体验
- 增强 auto-retry 机制,API 连接中断在思考阶段时能自动重试,无需用户手动操作
- 升级 Bun 运行时至 1.4,提升后台命令执行性能
- 新增
CLAUDE_CLIENT_PRESENCE_FILE环境变量,当工作于本机时可自动抑制移动端推送通知
## 2.1.181
- Added `/config key=value` syntax to set any setting from the prompt (e.g. `/config thinking=false`) — works in interactive, `-p`, and Remote Control
- Added `sandbox.allowAppleEvents` opt-in setting that lets sandboxed commands send Apple Events on macOS
- Added `CLAUDE_CLIENT_PRESENCE_FILE` environment variable: point it at a marker file to suppress mobile push notifications while you're at the machine
- Upgraded the bundled Bun runtime to 1.4
- Improved streaming of long paragraphs: text now appears line-by-line instead of waiting for the first line break
- Improved auto-retry: API connection drops mid-thinking now automatically retry instead of showing "Connection closed while thinking"
- Improved the subagent panel: idle subagents auto-hide after 30s, the list caps at 5 rows with scroll hints, and keyboard hints now show in the footer
- Improved the MCP OAuth browser page to match Claude Code's visual style and auto-close on success
- Changed fullscreen mode URL opening to require Cmd+click (macOS) / Ctrl+click, matching native terminal behavior
- Changed the `Improved N memories` line to no longer list individual files outside verbose mode
- Fixed prompt caching not reading on custom `ANTHROPIC_BASE_URL` and on Foundry due to a per-request attestation token changing every turn
- Fixed Write/Edit producing 0-byte or truncated files on network drives and cloud-synced folders
- Fixed `open`, `osascript`, and browser-based auth flows failing with error -600 on macOS by adding the Apple Events entitlement
- Fixed a startup regression (~120ms per launch in fresh environments, introduced in 2.1.169): the first prompt no longer waits for the managed-settings fetch when no MCP servers are configured
- Fixed startup blocking with a blank terminal for up to 15 seconds when the account settings fetch is slow on a degraded network
- Fixed startup crash (`TypeError: Cannot read properties of null`) when `.claude.json` contains corrupted null project entries
- Fixed macOS TUI freezing at session start (Ctrl+C unresponsive) when Spotlight is busy reindexing
- Fixed long-running idle sessions losing their history when another Claude Code process ran the 30-day transcript cleanup
- Fixed foreground subagents spawning unbounded nested chains; they now respect the same 5-level depth limit as background subagents
- Fixed `/recap` and conversation forks using the previous model immediately after a model switch
- Fixed subagent "Thinking" duration showing the parent agent's elapsed time instead of the subagent's own
- Fixed subagents blocked on a nested agent showing a ticking elapsed time instead of "waiting" in the agent panel
- Fixed the API retry indicator ("Retrying in 0s · attempt N/10") staying on screen after the retry succeeded
- Fixed AWS `awsCredentialExport` credentials with a short remaining lifetime causing credential refreshes every minute, and now accepts the JSON shape from `aws configure export-credentials`
- Fixed `claude mcp get`/`list` showing `✓ Connected` when tools/list fails; they now show `! Connected · tools fetch failed` with the error detail
- Fixed `/remote-control` leaving a stale "connecting…" line; it now confirms in the transcript once connected
- Fixed ExitWorktree refusing to remove a clean worktree with "Could not verify worktree state" when bare `git` cannot be resolved on Windows
- Fixed settings changes (such as `/effort` or `/model`) failing with ENOENT when `~/.claude/settings.json` is a relative symlink under a symlinked `~/.claude`
- Fixed IDE selection line numbers in context reminders being off by one (IntelliJ and VS Code)
- Fixed Ctrl+C in fullscreen after a native terminal selection (modifier+drag) overwriting the clipboard with the app's prior selection
- Fixed Ctrl+V showing "No image found in clipboard" instead of pasting when the clipboard contains text
- Fixed agent creation failing with "EEXIST: file already exists" when the agents directory already exists (Windows/OneDrive)
- Fixed AskUserQuestion preview content being cut off at the dialog edge instead of word-wrapping
- Fixed AskUserQuestion multi-select questions silently dropping a typed "Other" free-text answer when submitting
- Fixed `/stats` "Most active day" and daily token chart dates showing one day early in UTC-negative timezones
- Fixed `/copy` and copy-on-select on Linux not detecting a clipboard utility installed after Claude Code started
- Fixed tab-indented code rendering with incorrect indentation in the Write (create-file) preview
- Fixed user prompts queued mid-turn not showing a full-width background highlight in the transcript
- Fixed the activity spinner's pulse dwelling on the wrong glyph size in Ghosttyv2.1.170-1799 个版本 · 8 已摘要
v2.1.179修复连接断开、滚动焦点和插件性能问题
- 中途连接断开时保留部分响应,spinner 不再卡在 "running tool"
- 修复 WSL2/Windows Terminal 下鼠标滚轮滚动失效(2.1.172 回归)
- 修复沙箱 denyRead/allowRead glob 在大目录树上使 Bash 工具描述过大、Linux 会话卡顿
- 修复 Ctrl+O 快捷键不显示子代理转录内容
- 修复点击提示框无法从子代理/页脚面板返回焦点
- 改进远程会话中的插件加载性能,修复后台任务卡在「仍在运行」状态
## 2.1.179 - Fixed mid-stream connection drops: partial responses are now preserved instead of showing a raw error, and the spinner no longer gets stuck at "running tool" - Fixed mouse-wheel scrolling in WSL2 under Windows Terminal and VS Code (regression in 2.1.172) - Fixed a sandbox `denyRead`/`allowRead` glob over a large directory tree making the Bash tool description enormous and the session unusable on Linux - Fixed the feedback survey capturing a single-digit reply as a session rating immediately after a turn completes - Fixed the welcome screen stacking multiple promotional banners — at most one promo now shows per session - Fixed Ctrl+O not showing the subagent's transcript when viewing a subagent - Fixed clicking the prompt input not returning focus from the subagent/footer panel - Fixed remote session background tasks appearing stuck as "still running" between turns - Improved plugin loading performance in remote sessions
v2.1.178增强权限控制与嵌套目录支持,修复子代理和认证关键问题破坏性
- 新增
Tool(param:value)权限规则语法,可按参数和通配符精细控制工具调用(如Agent(model:opus)限制 Opus 子代理) - 嵌套
.claude/skills目录支持:技能现在按工作目录加载,名称冲突时显示为<dir>:<name> - 嵌套
.claude/配置优先级改进:最接近工作目录的 agent、workflow、output-style 和 workflows 保存位置现在优先生效 - 改进自动模式:子代理生成前进行分类器评估,防止子代理请求被阻止的操作时绕过审查
- 改进 /doctor 命令展示、Remote Control 错误提示和 /bug 提交流程(现需描述才能提交)
- 修复多个子代理关键问题:转录查看丢失输出、消息丢弃、后台运行重启等
破坏性变化
- /bug 命令现需提供描述才能提交(不再支持空提交)
- 工作流提示关键词检测改为仅在明确短语如 'run a workflow' 或 'workflow:' 时触发,不再对任何 'workflow' 提及响应
## 2.1.178 - Agent teams: removed the `TeamCreate` and `TeamDelete` tools. With `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` set, every session now has one implicit team — spawn teammates directly with the Agent tool's `name` parameter, no setup step needed. The `team_name` parameter on the Agent tool is still accepted but ignored. - Added `Tool(param:value)` syntax for permission rules to match a tool's input parameters (with `*` wildcard), e.g. `Agent(model:opus)` to block Opus subagents - Skills in nested `.claude/skills` directories now load when working on files there; on a name clash, the nested skill appears as `<dir>:<name>` so both stay available - Nested `.claude/` directories: the agent, workflow, and output-style closest to the working directory now wins when names collide; project-scope workflow saves now target the closest existing `.claude/workflows/` - Improved auto mode: subagent spawns are now evaluated by the classifier before launch, closing a gap where a subagent could request a blocked action without review - Improved `/doctor` with consistent flat tree layout across all sections, clearer section status icons, and highlighted command names - Improved the skill listing truncation warning to show how many skill descriptions are affected - Changed the workflow prompt keyword to use a purple shimmer highlight and trigger only on explicit phrases like "run a workflow" or "workflow:", not on any mention of the word - Improved Remote Control error messages: connection failures now show a persistent red "/rc failed" indicator in the footer, and the "not yet enabled" error now explains whether it's a gate, a check failure, stale entitlement, or org policy - `/bug` now requires a description before submitting, and no longer uses model-refusal text as the GitHub issue title - Fixed a crash (out-of-memory) when the CLI inherits a stale websocket/OAuth file-descriptor environment variable from a parent process - Fixed Claude in Chrome silently failing to connect when the OAuth token belongs to a different account than the Claude Code login - Fixed nested `.claude/skills` skills with directory-qualified names being blocked by permission prompts in non-interactive runs - Fixed several subagent issues: viewing a subagent's transcript now shows tool results and live progress, messages sent while it finishes its turn are no longer dropped, and backgrounding a running subagent (ctrl+b) no longer restarts it from scratch - Fixed `claude agents` workers failing with `401 Invalid bearer token` when the daemon was started from a shell with a custom API gateway via `ANTHROPIC_BASE_URL` and `ANTHROPIC_AUTH_TOKEN` - Fixed compaction not honoring `--fallback-model`: compaction now falls back to the configured fallback model chain on overload or model-availability errors - Fixed model requests continuing to fail with auth errors after credentials were refreshed outside the session, due to a stale cached request configuration - Fixed background sessions created with `/bg` or `←←` after a turn finished showing "Working" forever in the agents list - Fixed Linux sandbox failing to start when `.claude/skills` or `.claude/hooks` is a symlink - Fixed `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` preventing fresh marketplace installs from cloning - Fixed MCP server-level specs (`mcp__server`, `mcp__server__*`, `mcp__*`) in subagent `disallowedTools` being silently ignored - Fixed vim mode undo: `u` now steps through NORMAL/VISUAL-mode commands one at a time instead of merging commands in quick succession into a single undo step - Fixed statusline links with custom URI schemes (e.g. `vscode://`) not opening when clicked in `claude agents` - [VSCode] Fixed pressing Esc to dismiss a CJK IME candidate window canceling the running Claude task
v2.1.177无公开发布说明
(未在 CHANGELOG.md 中找到 v2.1.177 的章节,原始 changelog 已下载但格式不匹配。)
v2.1.176多项功能改进和稳定性修复,特别是 Remote Control、背景会话和模型管理
- Session titles 现在根据对话语言自动生成,可通过
language设置固定特定语言 - 新增
footerLinksRegexes设置,支持正则表达式匹配页脚链接徽章,可在用户或托管设置中配置 - Bedrock 凭证缓存改进:现在缓存至真实过期时间 (
Expiration) 而非固定 1 小时 - 修复
availableModels强制执行:别名模型无法通过环境变量绕过黑名单,/fast 在切换到非白名单模型时会拒绝 - 修复 Fable 5 auto mode 失败:组织未启用 Opus 4.8 时,分类器正确回退到最佳可用 Opus 模型
- 修复 Remote Control 多项问题:断开连接原因改为可读文本,修复连接失败的重复记录,修复跨账户登录时的连接挂起
## 2.1.176 - Session titles are now generated in the language of your conversation (set the `language` setting to pin a specific language) - Added `footerLinksRegexes` setting for regex-matched link badges in the footer row, configurable via user or managed settings - Improved Bedrock credential caching: credentials from `awsCredentialExport` are now cached until their `Expiration` instead of a fixed 1 hour - Fixed `availableModels` enforcement: alias model picks can no longer be redirected to a blocked model via `ANTHROPIC_DEFAULT_*_MODEL` environment variables, and `/fast` now refuses to toggle when it would switch to a model outside the allowlist - Fixed auto mode failing on Fable 5 for organizations without Opus 4.8 enabled — the classifier now falls back to the best available Opus model - Fixed hook `if` conditions for Read/Edit/Write tool paths: documented patterns like `Edit(src/**)`, `Read(~/.ssh/**)`, and `Read(.env)` now match correctly - Fixed Linux sandbox failing to start when `.claude/settings.json` is a symlink with an absolute target - Fixed `/copy` and mouse-selection copy not reaching the system clipboard inside tmux over SSH, and tmux paste buffer not loading on versions older than 3.2 - Fixed Remote Control connecting from web/mobile silently switching the session's model - Fixed Remote Control disconnect notifications showing a bare numeric code instead of a human-readable reason, and connection failures adding a duplicate line to the conversation transcript - Fixed Remote Control sessions not disconnecting when you sign in to a different account - Fixed `/cd` and worktree moves leaving the session reporting the previous directory's git branch - Fixed `claude agents`: pressing back in one window no longer detaches other windows attached to the same session - Fixed backgrounded sessions showing "Working" forever when `/bg` mid-turn had nothing left to continue - Fixed background agent search by PR URL: PRs opened during scheduled wakeups or while a job was blocked now appear in `claude agents` search - Fixed the agents view input showing no text cursor on Windows - Fixed `claude --bg -cn <name>` not seeding the session name - Fixed background sessions to neutralize Windows network paths in persisted state before respawn - Fixed background-session respawn rejecting malformed resume IDs from corrupted state files - Fixed the Windows background-service daemon not starting when `~/.claude/daemon` has the ReadOnly attribute set - Fixed cloud sessions failing with "Could not resolve authentication method" when idle for too long before being claimed - Background sessions now show clearer guidance when a window left open across an auto-update can't submit a reply, and `claude daemon status` explains version-skew behavior
v2.1.175增强模型白名单的受管控制能力破坏性
- 新增 enforceAvailableModels 受管设置,强制执行 availableModels 白名单约束
- Default 模型自动回退到白名单中的第一个允许模型,避免配置冲突
- 管理员可防止用户或项目设置扩展受管的 availableModels 列表
破坏性变化
- 启用 enforceAvailableModels 后,Default 模型解析会强制遵守白名单限制
- 受管的 availableModels 列表无法通过用户或项目配置扩展
## 2.1.175 - Added `enforceAvailableModels` managed setting — when enabled, the `availableModels` allowlist also constrains the Default model (a Default that would resolve to a disallowed model now falls back to the first allowed model), and user or project settings can no longer widen a managed `availableModels` list
v2.1.174修复模型选择器与配置问题,VSCode 增强使用量分析
- 新增
wheelScrollAccelerationEnabled设置,可禁用全屏模式的鼠标滚轮加速 - 修复 /model 选择器显示问题,模型族现在根据账户类型正确显示(Opus/Sonnet 默认模型显示正确)
- [VSCode] 使用量面板(/usage)新增详细分析:缓存未命中、长上下文、子代理,支持 24h/7d 统计维度
- 优化 Skill 热重载机制,仅重新发送变化的 Skill,减少网络开销
- 修复 Bedrock GovCloud 推断配置、后台会话 env 变量继承、Workflow 子代理归属等多项配置问题
## 2.1.174 - Added `wheelScrollAccelerationEnabled` setting to disable mouse-wheel scroll acceleration in fullscreen mode - Fixed the `/model` picker hiding the model family that Default resolves to — Opus now appears as its own row on Max/Team Premium/Enterprise plans, Sonnet on Pro/Team plans, and Opus on pay-as-you-go API accounts - Fixed `/model` picker showing a hardcoded Sonnet version label when `ANTHROPIC_DEFAULT_SONNET_MODEL` pins a different Sonnet - Fixed the "Fable 5 is now consuming usage credits" banner incorrectly showing for enterprise accounts with usage-based billing - Fixed Bedrock GovCloud regions (`us-gov-*`) deriving the wrong inference profile prefix (`global` instead of `us-gov`), causing 400 errors on derived model IDs - Fixed background sessions inheriting another session's `ANTHROPIC_*` provider env (gateway URL, custom headers, `/model` aliases) from the shell that started the background daemon - Fixed a 1-2 second pause when exiting Claude Code shortly after a shell command was interrupted or killed on macOS and Linux - Fixed git commit co-author attribution showing an incorrect model name for some models - Fixed the `/advisor` dialog pre-selecting a saved advisor model that is blocked by the `availableModels` allowlist - Fixed skill hot-reload re-sending the entire skill listing when a single skill changed; only changed skills are now re-announced - Fixed Workflow tool `agent()` subagents missing per-agent attribution headers - [VSCode] Added usage attribution to the Account & usage dialog (`/usage`) showing cache misses, long context, subagents, and per-skill/agent/plugin/MCP breakdowns over the last 24h or 7d - Fixed pre-warmed background workers failing with "Could not resolve authentication method" when claimed after sitting idle
v2.1.173修复 Fable 5 模型名称规范化和沙箱警告问题
- Fable 5 模型名称中的 [1m] 后缀现在自动移除,避免重复标记。
- 修复 Windows 沙箱启用时出现虚假 'sandbox dependencies missing' 警告。
## 2.1.173 - Fixed Fable 5 model names with a `[1m]` suffix not being normalized — Fable 5 includes 1M context by default, so the suffix is now stripped automatically - Fixed a spurious "sandbox dependencies missing" startup warning on Windows when sandbox was enabled in settings
v2.1.172Sub-agents 支持嵌套递归、多项关键修复和性能优化
- Sub-agents 现在可以生成自己的 sub-agents,最深支持 5 层嵌套,实现更复杂的多层任务编排
- Amazon Bedrock 改进区域配置,自动从 ~/.aws 读取 AWS_REGION,/status 显示配置源头
- /plugin 插件市场添加搜索栏,快速查找和浏览插件
- 修复 1M context 会话永久卡死问题,超限时自动压缩回标准上下文
- 修复多张图片导致重复报错、background agents 读取错误项目设置、子 agent 停止后仍显示 active 等关键 bug
- 性能优化:减少空闲 CPU 占用、加速长对话处理、改进 Claude in Chrome 工具加载
## 2.1.172 - Sub-agents can now spawn their own sub-agents (up to 5 levels deep) - Amazon Bedrock now reads the AWS region from `~/.aws` config files when `AWS_REGION` isn't set, matching AWS SDK precedence; `/status` shows where the region came from - Added a search bar when browsing a marketplace's plugins in `/plugin` - Added `model` attribute to the `claude_code.lines_of_code.count` OTEL metric - Fixed sessions using 1M context without usage credits getting permanently stuck — the session now automatically compacts back under the standard context limit - Fixed a repeating "an image in the conversation could not be processed and was removed" error when the conversation contained multiple images - Fixed the agents view keeping a session under Working with a busy spinner for up to 30 seconds after the worker replied - Fixed background agents potentially reading another directory's project settings (`.mcp.json` approvals, trust) when dispatched onto a pre-warmed worker - Fixed background-session attach failing with EAUTH for sessions started on an older version after the daemon auto-updated - Fixed a background sub-agent staying stuck as "active" in the agent panel after a nested agent it spawned was stopped - Fixed `/model` suggestions in the `claude agents` dispatch input rendering with a misleading slash prefix and showing models disabled for your org - Fixed `availableModels` restrictions not being applied to subagent model overrides, the agent dispatch model picker, and the advisor model - Fixed `availableModels` allowlists hiding the `/model` picker's Opus and Sonnet 1M rows when entries use version-specific IDs like `claude-opus-4-8` - Fixed the `/model` picker on Bedrock offering models the provider doesn't serve — selecting one silently switched the session model and lit the selection marker on multiple rows - Fixed model IDs getting a doubled 1M-context suffix (e.g. `[1M][1m]`) when `ANTHROPIC_DEFAULT_OPUS_MODEL` already includes one - Fixed `opusplan` model setting not shipping with 1M context in plan mode for entitled users; the `opusplan[1m]` workaround now also correctly switches to Opus in plan mode - Fixed `WebFetch(domain:*.example.com)` wildcard domain rules never matching subdomains in allow, deny, and ask position, and file permission rules with mid-pattern wildcards (e.g. `Read(secrets-*/config.json)`) being rejected at startup - Fixed up-arrow prompt history showing the main agent's prompts while a subagent's chat tab is open - Fixed memory recall not finding mounted team memory stores (`CLAUDE_MEMORY_STORES`) in remote sessions - Fixed workflow validation rejecting scripts whose prompt strings or comments merely mention `Date.now()`/`Math.random()` - Disable mouse tracking on Windows consoles that don't fully support it - Fixed the `/plugin` marketplace list losing its cursor after backing out of a long plugin list, and Esc from the plugin browser returning to the wrong tab - Improved performance in long conversations by removing redundant message normalization and avoiding full message-history transforms when streaming tool-use state is unchanged - Reduced idle CPU usage: `/goal` status chip no longer re-renders the terminal at 5 Hz while idle, and fewer UI re-renders while subagents run in parallel - Improved Claude in Chrome tool loading: browser tools now load in a single batched call instead of one per tool - Improved the non-interactive Usage Policy refusal message to suggest starting a new session or changing your model - `/code-review` now keeps the `ultra` option visible when you're not signed in to claude.ai, with an explanation that the cloud review requires a claude.ai account - Shortened the Remote Control footer indicator to "/rc active" and hid it on narrow terminals - Stopped promoting `/loop` in remote sessions, where pending loops don't keep the container alive - [VSCode] Fixed PowerShell tool calls rendering as raw JSON instead of a proper command display and permission dialog, and stripped ANSI escape codes from displayed shell output
v2.1.170推出 Claude Fable 5 Mythos-class 模型,修复 VS Code 终端的 session 保存问题
- Claude Fable 5 现已可用——能力超越所有已发布模型,更新至 2.1.170 即可使用
- 修复了从 VS Code 集成终端启动时 session transcripts 丢失、--resume 无法恢复的问题
## 2.1.170 - Introducing Claude Fable 5: a Mythos-class model that we’ve made safe for general use. Fable’s capabilities exceed those of any model we’ve ever made generally available. Update to version 2.1.170 for access. https://www.anthropic.com/news/claude-fable-5-mythos-5 - Fixed sessions not saving transcripts (and not appearing in --resume) when launched from the VS Code integrated terminal or any shell that inherited Claude Code environment variables.
v2.1.160-1699 个版本 · 9 已摘要
v2.1.169修复 MCP 策略执行、性能问题和后台会话稳定性
- 新增
--safe-mode标志禁用所有自定义配置,便于排查问题 - 新增 /cd 命令切换工作目录时保持 prompt cache,避免不必要的重新加载
- 修复企业 MCP 策略(
allowedMcpServers/deniedMcpServers)在重连、IDE 配置和首次安装后未被执行的问题 - 修复 Windows 上
claude -p执行命令扫描时的性能问题,显著加快启动速度 - 改进 TaskCreate 工具可靠性,现在自动修复格式错误并为缺失工具提供 schema 信息
- 修复后台代理在会话恢复后卡在重连状态的问题,增强多会话稳定性
## 2.1.169 - Self-hosted runner: added a `post-session` lifecycle hook that runs after the session ends and before the workspace is deleted, so you can snapshot uncommitted work or export logs; also made the child-process SIGTERM→SIGKILL window configurable (default unchanged at 5s) - Added `--safe-mode` flag (and `CLAUDE_CODE_SAFE_MODE`) to start Claude Code with all customizations (CLAUDE.md, plugins, skills, hooks, MCP servers) disabled for troubleshooting - Added `/cd` command to move a session to a new working directory without breaking the prompt cache mid-session - Added a `disableBundledSkills` setting and `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` environment variable to hide bundled skills, workflows, and built-in slash commands from the model - Fixed Up/Down arrows jumping to command history past the wrapped rows of a long input line — they now move through each visual row first, and history recall enters at the near edge - Fixed enterprise managed MCP policies (`allowedMcpServers`/`deniedMcpServers`) not being enforced on reconnect, IDE-typed configs, `--mcp-config` servers during the first session after install, or before remote settings loaded; also fixed slow cold starts for orgs without remote settings - Fixed a ~30-50ms UI stall at the start of each turn for macOS users logged in with claude.ai credentials - Fixed `claude -p` being slow or appearing to hang on Windows while waiting for the slash-command/skill scan (regression in 2.1.161) - Fixed Remote Control getting stuck on "reconnecting" after resuming a session when an OAuth token refresh happened at the same time - Fixed Git Credential Manager's "Connect to GitHub" popup appearing on Windows at startup when background git commands ran without cached credentials - Fixed footer hints (e.g. "esc to interrupt") not showing for users with a custom statusline - Fixed stale permission and dialog prompts reappearing every time you reattached to a remote session whose worker had died while waiting on them - Fixed `claude agents --json` omitting blocked and just-dispatched background sessions; added `--all` to include completed sessions, plus new `id` and `state` fields - Fixed agents view leaving a stale/garbled frame after navigating back from an agent on WSL in Windows Terminal - Fixed background agents ignoring project-level settings `env` values (e.g. `ANTHROPIC_MODEL`) when dispatched onto a pre-warmed worker - Fixed MCPB plugin cache being spuriously invalidated on Windows, causing unnecessary re-extraction - Fixed plugin `.in_use` PID lock files accumulating without bound; stale markers from crashed sessions are now swept once per day - Fixed untrusted project settings being able to set OTEL client-certificate paths without trust confirmation - `/workflows` now opens immediately even while a turn is in progress - Improved `TaskCreate` reliability: malformed inputs are repaired automatically and validation errors for unloaded tools include the schema - Improved the error message shown when your organization has disabled API key authentication, with guidance based on where the active API key comes from - Reduced CPU usage while responses stream and during spinner animations - Restored a default 5-minute idle timeout on Vertex/Foundry so a stalled stream aborts instead of hanging indefinitely; set `API_FORCE_IDLE_TIMEOUT=0` to opt out - Remote-managed settings with an invalid entry now apply their remaining valid policies and surface the validation error, instead of silently dropping the whole payload - Background sessions now preserve `--ide`, `--chrome`, `--bare`, `--remote-control`, and other flags across retire→wake, and respawn state validation was hardened - Background sessions are now told that shared-checkout edits are blocked until they enter a worktree, avoiding a wasted rejected edit before `EnterWorktree` - The "CLAUDE.md is too long" warning threshold now scales with the model's context window - Auto-updater on Windows now stops retrying within a session once `claude.exe` is held by another process - Improved color contrast for skill tags in the slash-command menu - Promo credit claims for Apple/Google-billed subscribers without a payment method now explain where to add one - Added a tip suggesting `claude agents` when running multiple concurrent sessions
v2.1.168修复与可靠性改进
- 修复若干 bug 并提高系统可靠性
## 2.1.168 - Bug fixes and reliability improvements
v2.1.167修复 bug 和提升应用可靠性
- 修复多个已知 bug,改进应用稳定性
- 提升运行时可靠性,减少异常和错误
## 2.1.167 - Bug fixes and reliability improvements
v2.1.166备用模型与权限管理完善破坏性
- 新增 fallbackModel 设置,自动选用备用模型应对过载
- 权限规则支持 glob 模式、强化跨会话消息隔离
- 禁用思考链、修复 IDE 终端闪烁及 Shift 键输入
- 修复进程泄漏、配置损坏、音声模式等多项问题
破坏性变化
- allow 规则不再接受非 MCP glob 模式
- 跨会话 SendMessage 消息不再携带用户权限
## 2.1.166
- Added `fallbackModel` setting to configure up to three fallback models tried in order when the primary model is overloaded or unavailable; `--fallback-model` now also applies to interactive sessions
- Added glob pattern support in deny rule tool-name position (`"*"` denies all tools); allow rules reject non-MCP globs, and unknown tool names in deny rules warn at startup
- Hardened cross-session messaging: messages relayed via `SendMessage` from other Claude sessions no longer carry user authority — receivers refuse relayed permission requests, and auto mode blocks them
- `MAX_THINKING_TOKENS=0`, `--thinking disabled`, and the per-model thinking toggle now disable thinking on models that think by default via the Claude API (3P providers unchanged)
- Claude Code now retries a turn once on the fallback model when the API rejects an unexpected non-retryable error; auth, rate-limit, request-size, and transport errors still surface immediately
- `claude update` now announces the target version before downloading instead of going silent
- `claude agents`: typing a URL into the list now filters to the session whose first prompt contained it
- Fixed a recurring "image could not be processed" error and extra token usage when an unprocessable image was sent in a session
- Fixed remote sessions becoming permanently stuck when a brief backend disruption occurred during worker registration at startup
- Fixed flickering in JetBrains IDE terminals (IntelliJ, PyCharm, WebStorm, etc.) on 2026.1+ by enabling synchronized output
- Fixed Shift+non-ASCII characters (e.g. Shift+ä → Ä) being dropped in terminals using the Kitty keyboard protocol (WezTerm, Ghostty, kitty)
- Fixed PowerShell command validation occasionally hanging far past its time budget on Windows when a killed process's children held its output pipes
- Fixed orphaned `claude --bg-pty-host` processes spinning at 100% CPU after the daemon dies while connected on macOS
- Fixed voice mode requiring `/login` to clear a stale auth check after toggling `/voice`
- Fixed managed settings with an invalid entry silently disabling enforcement of their remaining valid policies
- Fixed managed-settings `allowedMcpServers`/`deniedMcpServers` predicates not matching when they use `${VAR}` references
- Fixed background agent sessions that entered a git worktree crash-looping with "No conversation found" when reopened from `claude agents`
- Fixed duplicated thinking text in the Ctrl+O transcript view while streaming
- Fixed `/doctor` showing a contradictory failed "Not inside a remote session" check when run inside a remote session
- Fixed the cursor sticking at the end of the first line when typing a multiline prompt in the `claude agents` dispatch and reply inputs
- Fixed blank lines appearing between background agent rows in the task list on terminals without Unicode supportv2.1.165修复 bug 并改进系统可靠性
- 修复了各类 bug,提升应用稳定性和整体质量
- 改进了系统可靠性机制,增强容错和错误恢复能力
- 优化了性能和运行效率,提升生产环境稳定表现
## 2.1.165 - Bug fixes and reliability improvements
v2.1.163增强插件管理和 Hook 反馈能力,修复后台任务与权限问题
- 新增
/plugin list命令,支持--enabled/--disabled过滤查看已安装插件 - Hook 可返回
additionalContext向 Claude 提供反馈并继续对话,无需标记为错误 - 新增
requiredMinimumVersion/requiredMaximumVersion管理设置,可限制允许的版本范围 - /btw 命令新增 "c to copy" 快捷键,复制原始 markdown 并保留格式
- 修复后台会话更新后丢失任务、权限规则失效、Hook 条件误触等多个关键问题
## 2.1.163
- Added `requiredMinimumVersion` and `requiredMaximumVersion` managed settings — Claude Code refuses to start if its version is outside the allowed range and directs the user to an approved version
- Added `/plugin list` command to list installed plugins, with `--enabled`/`--disabled` filters
- Added a "c to copy" shortcut to `/btw` that copies the raw markdown answer to the clipboard, preserving formatting when pasted elsewhere
- Hooks: Stop and SubagentStop hooks can now return `hookSpecificOutput.additionalContext` to give Claude feedback and keep the turn going without being labeled a hook error
- Skills: added `\$` escape syntax to include a literal `$` before a digit in command bodies
- stdio MCP servers now receive the same `CLAUDE_CODE_SESSION_ID` as hooks/Bash on `--resume`
- Fixed `claude -p` hanging forever after its final result when a backgrounded command never exits — background shells are now stopped ~5s after the result once stdin closes
- Fixed `claude -p` failing with "ANTHROPIC_API_KEY required" on Bedrock/Vertex/Foundry when `CI=true` and no Anthropic API key is set
- Fixed bash commands failing under bazel and EDR-protected Go workflows: `$TMPDIR` was overridden to `/tmp/claude-{uid}` for all commands instead of only sandboxed ones (regression in 2.1.154)
- Fixed Bash commands failing on Windows with "EEXIST: file already exists" on the session-env directory when it has the read-only attribute or is inside OneDrive
- Fixed org-managed permission rules not applying for the entire session when the managed settings fetch completed during startup on a fresh config directory
- Fixed background sessions in `claude agents` losing their running background tasks when reattached after a Claude Code update
- Fixed terminal misalignment and a multi-second hang when exiting the agent view by pressing Esc
- Fixed clicking Stop on a background-task chip in the desktop app not clearing the chip when the underlying process was already gone
- Fixed keyboard input becoming permanently unresponsive after a paste operation whose end marker is dropped by the terminal
- Fixed hook `if: "Bash(...)"` conditions firing on every Bash command containing `$()` or `$VAR`; the pattern now matches against commands inside subshells and backticks too
- Fixed deny rules on home-directory paths (e.g. `Read(~/Desktop/**)`) not blocking Bash commands that reference the path via `$HOME`
- Fixed a stray "(no content)" line left in the transcript after closing panel dialogs like /mcp and /plugins
- Background agent sessions now update to a new Claude Code version in the background, so opening a session after an update no longer waits on a cold restart
- Clearer descriptions for built-in commands and skills in the / menu
- The subscription-switch suggestion now shows in the startup announcement slot instead of a toast
- `claude agents` dispatching from the state-grouped view now starts the session in the directory the agent view was opened fromv2.1.162改进代理命令体验,修复权限规则和会话管理的多项问题
claude agents --json新增waitingFor字段显示阻塞原因(权限提示等),便于调试- Slash 命令自动完成改进 - 点击菜单项现在填充到输入框而非立即执行,更灵活可控
- 权限规则修复 - WebFetch 预白名单生效、Windows 路径和 case-variant 路径匹配修正
- MCP 子秒级超时配置修复 - 低于 1000ms 的值不再被错误强制为 1 秒
claude agents终端显示改进 - 宽终端下完整显示会话信息和实时状态,不再截断- 后台会话管理修复 - 失败回复现在被正确排队,后台启动失败不再导致会话丢失
## 2.1.162 - `claude agents --json` now includes `waitingFor` showing what a waiting session is blocked on (e.g. permission prompt) - `--tools`: explicitly listing Grep/Glob now provides the dedicated search tools on native builds with embedded search (previously these names were silently ignored) - `/effort` now confirms when your chosen level will persist as the default for new sessions - Clicking a slash command in the autocomplete menu now fills it into your prompt instead of running it immediately; press Enter to run - Remote Control now shows as a persistent footer pill (with a link to the session) instead of a startup message - Renamed Windsurf to Devin Desktop in the `/ide` menu, `/terminal-setup`, and `/scroll-speed`, following the editor's rebrand - Fixed a silent startup hang when the config directory is read-only or unwritable — Claude Code now starts with in-memory config and surfaces startup errors instead of showing a blank screen - Fixed WebFetch permission rules not being applied to built-in preapproved domains; explicit `WebFetch(domain:...)` deny/ask/allow rules now take precedence over the preapproved-host auto-allow - Fixed Windows permission rules never matching when spelled with backslashes (`~\`, `\\server\share`) or case-variant paths, and Read deny rules not hiding files from Glob/Grep results - Fixed an interrupt (Esc) sent at the very start of a turn being silently dropped in stream-json/SDK sessions, leaving the turn running with no "Interrupted" feedback - Fixed API 400 `no low surrogate in string` errors for classifier side-queries and MCP server descriptions containing emoji near a truncation boundary - Fixed MCP per-server `timeout` config values below 1000 ms being floored to a 1-second watchdog that aborted every tool call; sub-1000 ms values are now ignored (falling back to `MCP_TOOL_TIMEOUT` or default), and `claude mcp get` annotates them accordingly - Fixed the LSP tool's `workspaceSymbol` operation returning no results; it now accepts a `query` parameter and passes it to the language server - Fixed `claude agents` cutting live status text (tool args, replies, prompts, exec output) at 60–120 columns on wide terminals; the status detail now uses the full terminal width - Fixed `claude agents` truncating long session names at 40 columns; the name column now grows with terminal width - Fixed `claude agents` attach occasionally bouncing straight back to the session list on the first try after a background-service restart - Fixed `claude agents` Ctrl+V image paste doing nothing in the dispatch input and the session reply box; pasting with no image now shows a hint - Fixed backgrounding a session with ← silently losing the conversation when the background service cannot start; the session stays in the list as a failed row you can wake with Enter - Fixed replies from the agents view that fail to send being lost; they are now queued for delivery on the next session start - Fixed cross-session messaging (`SendMessage`) silently breaking when `CLAUDE_CODE_TMPDIR` or `$TMPDIR` points at a deep directory - Fixed opening a running background session from `claude agents` stalling for 5 seconds before attaching - Quieter startup: notices group by severity, and session info and announcements share a single line per launch - Startup warnings rewritten to be shorter and clearer, each with a concrete fix - Launch-prompt warnings (deep link/pre-filled prompt) now stay pinned below the input until you act instead of scrolling away - Failed turns now show a compact warning line instead of a multi-line red error block - Improved background service startup and `claude update` verification to wait out endpoint-security scanning of new binaries instead of failing after 5 seconds - Background dispatch spawn failures now report the error class name when no errno is available - Removed the "Claude in Chrome enabled" and "marketplace installed" startup messages; model auto-updates and the team-onboarding tip now show as quiet notices under the logo
v2.1.161工具调用、指标和 MCP 连接器的多项改进与修复
- OTEL_RESOURCE_ATTRIBUTES 现作为指标标签,支持按团队、仓库等自定义维度切分使用数据
- claude agents 显示 done/total 进度,peek 模式高亮最长运行项
- 并行工具调用优化:Bash 失败不再取消同批次其他任务,各工具独立返回结果
- /mcp 连接器展示改进:自动收起未登录的 claude.ai 连接器
- 全屏模式剪贴板增强:Linux 支持 wl-copy/xclip/xsel,同时支持中键粘贴
## 2.1.161
- `OTEL_RESOURCE_ATTRIBUTES` values are now included as labels on metric datapoints, so you can slice usage metrics by custom dimensions like team or repo
- `claude agents` rows now show `done/total` before the detail when work is fanned out; peek shows the longest-running item
- `/mcp` now collapses claude.ai connectors you've never signed in to behind a "Show unused connectors" row
- Parallel tool calls: a failed Bash command no longer cancels other calls in the same batch — each tool returns its own result independently
- Fullscreen mode: clipboard now uses `wl-copy`/`xclip`/`xsel` on Linux when available, copies to both the clipboard and PRIMARY selection for middle-click paste, and the "hold {key} for native selection" hint now shows the correct key per terminal
- Fixed the `/effort` dialog, workflow animations, and prompt keyword shimmer not honoring the "Reduce motion" setting
- Fixed `forceLoginOrgUUID`/`forceLoginMethod` managed-settings policies blocking third-party provider sessions (Bedrock, Vertex, Foundry, Mantle) alongside the org pin (regression in 2.1.146)
- Fixed background subagent output corrupting `claude -p` stdout when using `--output-format text` or `json`
- Fixed `/usage-credits` starting a re-login for Team and Enterprise admins instead of pointing to the organization's usage settings page
- Fixed `/autofix-pr` reporting "cannot run on the default branch" when the session is inside a git worktree or another repository
- Fixed `--resume` picker not showing sessions from the current directory when it isn't a git worktree (e.g., jj workspaces)
- Fixed Windows hooks that invoke bash explicitly (e.g., `/usr/bin/bash script.sh`) failing with "command not found" or "cannot execute binary file"
- Fixed OpenTelemetry log events (`user_prompt`, `api_request`, `tool_result`, `tool_decision`) being silently dropped when emitted before telemetry initialization completed
- Fixed `claude mcp` list/get/add printing secrets to the terminal: `${VAR}` references are no longer expanded, and credential headers and URL secrets are redacted
- Fixed Workflow agents spawned with `isolation: "worktree"` in background sessions being blocked from editing files inside their own worktree
- Fixed background sessions dispatched from `claude agents` booting on a stale model from the daemon's environment instead of the model in `settings.json`
- Fixed a potential crash when rendering Write tool results after resuming a session
- Fixed completed subagents getting stuck showing as running when an error occurs while finalizing their result
- Fixed `EADDRINUSE` errors from tools that bind Unix sockets under `$TMPDIR` when `CLAUDE_CODE_TMPDIR` is set to a deep path
- Improved terminal rendering performance by stabilizing the layout engine's JIT compilation profile
- Improved rendering performance for large file writes
- [VSCode] Added a tip suggesting disabling terminal GPU acceleration (or running `/terminal-setup`) to fix garbled glyphsv2.1.160安全提升与后台会话稳定性改进,工作流关键字调整破坏性
- 写入 shell 启动文件、git 配置和构建工具配置前现在需要用户确认,防止意外命令执行
- grep 命令后无需额外 Read 操作即可编辑单个文件,简化工作流
- 修复后台会话恢复时丢失对话历史和重复运行原始提示的问题
- Windows WSL 剪贴板 copy-on-select 功能修复,改用 PowerShell interop 替代 OSC 52
- 改进 auto mode 分类器延迟和 claude agents 会话列表响应速度
- 修复 Windows 下输入响应延迟、vim mode 粘贴位置、CJK IME 输入法位置等多项用户体验问题
破坏性变化
- 动态工作流触发关键字从 'workflow' 改为 'ultracode'——使用 /effort ultracode 运行超级代码评审,直接说出需求仍可触发工作流
## 2.1.160 - Added a prompt before writing to shell startup files (`.zshenv`, `.zlogin`, `.bash_login`) and `~/.config/git/`, which could otherwise lead to unintended command execution - `acceptEdits` mode now prompts before writing build-tool config files that grant code execution (`.npmrc`, `.yarnrc*`, `bunfig.toml`, `.bazelrc`, `.pre-commit-config.yaml`, `.devcontainer/`, etc.) - Edit no longer requires a separate Read after viewing a file with `grep`: single-file `grep`/`egrep`/`fgrep` commands now satisfy the read-before-edit check - Fixed copy-on-select not writing to the Windows clipboard on WSL — now uses PowerShell interop instead of OSC 52, which terminals like MobaXterm don't support - Fixed restoring a completed session from `claude agents` dropping chat history and re-running the original prompt - Fixed background sessions re-attached after overnight retire losing their conversation and re-running the original prompt - Fixed `claude --bg` occasionally failing with "socket missing" when the background daemon was cold-starting on a loaded machine - Fixed an issue on Windows where the directory a background session was started in could not be deleted after `claude rm` until the background daemon exited - Fixed background agents that resumed work being shown under Completed in the agents list - Fixed `claude agents` freezing for several seconds when returning to the session list due to the auto-updater re-checking on every exit - Fixed Esc, arrow keys, and typing becoming unresponsive on Windows when attached to a background session or in the agent view while the host is under heavy CPU load - Fixed background agents emitting terminal sync-output markers to terminals that don't support them (Apple Terminal, tmux), causing render artifacts when entering a running agent - Fixed mouse wheel scrolling prompt history instead of the transcript right after opening a session from the agents list - Fixed CJK IME composition appearing at the bottom-left of the screen instead of at the input caret in the `claude agents` view - Fixed valid `file:///C:/...` links being rewritten to a broken path on Windows terminals with hyperlink support - Fixed voice mode failing to connect when the project directory or branch name contains non-ASCII or special characters - Fixed the auto mode unavailability message on third-party providers (Bedrock/Vertex/Foundry) to point to the `CLAUDE_CODE_ENABLE_AUTO_MODE` opt-in instead of incorrectly blaming the model - Fixed `/effort ultracode` incorrectly blaming the dynamic workflows setting when the model cannot run xhigh; ultracode is no longer offered on models that do not support it - Fixed model-not-found errors suggesting `--model` when running via the SDK or other hosts where the CLI flag doesn't apply - Fixed Claude's past replies disappearing from scrollback when resuming a brief mode session with brief mode turned off - Fixed vim mode `p` pasting on the line below instead of at the cursor when the register was yanked with `v$` - Improved performance of opening recently-inactive background agent sessions in `claude agents` - Improved auto mode classifier latency by reducing reasoning on routine actions, lowering the chance of "could not evaluate this action" blocks - Improved background-session teardown (`claude rm`/`stop`, idle reap) to send SIGTERM to running shell subprocesses before SIGKILL, so cleanup handlers run - Removed `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE`; the environment variable is now a no-op - Removed the JetBrains plugin install suggestion from startup - Renamed the dynamic-workflow trigger keyword from `workflow` to `ultracode`. The word "workflow" no longer triggers a run; asking for one in your own words still works. The trigger keyword is highlighted in violet in the prompt input
v2.1.150-1598 个版本 · 8 已摘要
v2.1.159内部基础设施改进
## 2.1.159 - Internal infrastructure improvements (no user-facing changes)
v2.1.158Auto mode 扩展至 Bedrock、Vertex 和 Foundry 平台
- Auto mode 现已在 Bedrock、Vertex、Foundry 等云平台上可用,支持 Opus 4.7 和 Opus 4.8 模型
- 通过设置环境变量 CLAUDE_CODE_ENABLE_AUTO_MODE=1 启用 Auto mode
## 2.1.158 - Auto mode is now available on Bedrock, Vertex, and Foundry for Opus 4.7 and Opus 4.8. Opt in by setting `CLAUDE_CODE_ENABLE_AUTO_MODE=1`
v2.1.157插件系统自动加载、Agent 配置优先级调整与多项稳定性修复
- 插件自动加载与脚手架:
.claude/skills中的插件现在自动加载无需 marketplace;新增claude plugin init <name>快速创建新插件 - Agent 设置优先级:
claude agents现在尊重settings.json中的agent字段,支持--agent <name>覆盖 - Worktree 会话切换:
EnterWorktree支持在单个会话中动态切换不同的 Claude 管理 worktree - 图片处理稳定性:修复了零字节/损坏图片导致请求崩溃的问题,现在转为文本占位符
- 权限提示修复:桌面应用、IDE 扩展和 SDK 在 auto/bypass 权限模式下不再出现沙箱网络提示
- 性能优化:消除长对话和恢复会话中的冗余消息渲染,提升响应速度
## 2.1.157 - Plugins in `.claude/skills` directories are now automatically loaded, no marketplace required - Added `claude plugin init <name>` to scaffold a new plugin in `.claude/skills` - Added autocomplete for `/plugin` arguments: subcommands, installed plugin names, and plugins from known marketplaces - `claude agents`: the `agent` field in `settings.json` is now honored for dispatched sessions, with `--agent <name>` to override it - `EnterWorktree` can now switch between Claude-managed worktrees mid-session - `tool_decision` telemetry events now include `tool_parameters` (bash commands, MCP/skill names) when `OTEL_LOG_TOOL_DETAILS=1` - Worktrees managed by Claude are now left unlocked when the agent finishes, so `git worktree remove`/`prune` can clean them up - Fixed unprocessable images (zero-byte, corrupt) attached via paste, MCP, or dialog crashing the request instead of becoming a text placeholder - Fixed sandbox network permission prompts appearing in auto and bypass-permissions mode when using the desktop app, IDE extensions, or SDK - Fixed `claude agents` completed sessions not retiring when an idle subagent was still parked or had leaked a backgrounded shell - Fixed `claude agents` pressing Esc not cancelling a slow "opening…", leaving the list unresponsive - Fixed background agent worktrees under `.claude/worktrees/` being orphaned after the 30-day job retention sweep - Fixed background sessions re-attached after a sleep/wake not telling the model the correct date - Fixed copy-on-select in `claude agents` not reaching the system clipboard inside tmux with `set-clipboard on` (regression in 2.1.153) - Fixed `--resume` not reporting background subagents that were running when the previous Claude Code process exited - Fixed the `--resume` session picker leaving its contents on the terminal after exiting in fullscreen mode - Fixed `--worktree` and `--worktree --tmux` returning to the canonical repo root instead of the current linked worktree - Fixed the `/model` picker showing an incorrect "Newer version available" hint when the selected model is already the newest in its family; the pinned-model row now shows the model's description instead of its raw ID - Fixed literal markdown markers (backticks, asterisks) appearing in the in-progress message text in fullscreen mode - Fixed the terminal freezing after approving the managed-settings security dialog at startup - Fixed a rare duplicate line appearing in scrollback after the terminal UI redraws - Fixed right-click paste duplicating the clipboard in the VS Code, Cursor, and Windsurf integrated terminals - WSL: fixed image paste (`alt+v` keybinding), screenshot paste on Windows 11, and added support for dragging images from Windows Explorer - Improved performance of long and resumed conversations by eliminating redundant message-rendering recomputations - `/terminal-setup` now disables GPU acceleration in VS Code/Cursor/Windsurf integrated terminals to prevent garbled-text rendering - The Feature of the Week credit-claim status now appears as a notification in the status area instead of a line above the prompt - `claude agents`: slash-command autocomplete in the dispatch input now matches substrings - Removed the "bash commands will be sandboxed" startup banner — sandbox status still shows in `/status` and when a command is blocked - Removed the "/ide for …" startup hint toast - [IDE] Fixed clicking Stop while a background subagent is running not actually stopping it - [VSCode] Fixed the fast mode indicator not appearing on Opus 4.8 - Pressing backspace right after a workflow trigger keyword now dismisses the workflow request (same as alt+w) instead of deleting a character - Added a "Workflow keyword trigger" setting in /config to stop the word "workflow" in a prompt from triggering a dynamic workflow
v2.1.156修复 Opus 4.8 中 thinking blocks 导致的 API 错误
- 修复了使用 Opus 4.8 时 thinking blocks 被错误修改引发的 API 错误问题
## 2.1.156 - Fixed an issue when using Opus 4.8 where thinking blocks were modified, leading to API errors.
v2.1.154Opus 4.8 发布,支持动态 workflow 自动化多 agent 编排破坏性
- Opus 4.8 默认 high effort 模式,fast mode 成本优化至 2x 费率获 2.5x 速度
- 动态 workflow 支持 Claude 自动创建和协调数十到数百个 agent,处理大规模复杂任务
- /simplify 改为清理专用,只审查代码重用、简化、效率并自动修复(不做 bug 审查)
- 后台命令执行,! <command> 运行 shell 命令并支持附加/分离后台会话
- 插件系统优化:支持可选插件(defaultEnabled: false)和目录感知建议
破坏性变化
- lean system prompt 成为默认值(Opus 4.8 及部分旧版除外),可能改变 prompt 行为
- /simplify 从完整 bug 审查改为仅清理类修复,若需完整审查改用 /code-review --fix
- CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE 环境变量已弃用,06/01 删除;改用 /model 和 /fast 命令
## 2.1.154 - Opus 4.8 is here! Now defaults to high effort · /effort xhigh for your hardest tasks - Introducing dynamic workflows: ask Claude to create a workflow and it orchestrates work across tens to hundreds of agents in the background, so you can take on larger, more complex tasks. Run `/workflows` to view your runs - Fast mode on Opus 4.8 is now available at a fraction of its previous cost: 2x the standard rate for 2.5x the speed - The lean system prompt is now the default for all models except Haiku, Sonnet, and Opus 4.7 and earlier - Claude now reserves the multiple-choice question prompt for decisions it genuinely cannot make itself, instead of asking when it already has enough context to proceed - `/simplify` now runs a cleanup-only review (reuse, simplification, efficiency, altitude) and applies the fixes, instead of running the full `/code-review --fix` bug-hunting review - Renamed the `/effort` slider labels from "Speed"/"Intelligence" to "Faster"/"Smarter" for clarity - `claude agents`: type `! <command>` to run a shell command as a background session you can attach to and detach from. Also available as `claude --bg --exec '<command>'` - `claude agents`: `/logout` now signs you out instead of being sent to a background session - `←←` to open the agents view now works on Bedrock, Vertex, Foundry, and with telemetry disabled - Claude in Chrome: pick which connected browser to use via `/chrome` → "Select browser…", or in-chat when a browser action runs with multiple connected - Plugins can now declare `defaultEnabled: false` in `plugin.json` or a marketplace entry; enable them with `/plugin` or `claude plugin enable`. Dependencies of enabled plugins are still enabled automatically - The `/plugin` Discover tab now pins plugins whose relevance signals match the current directory with a "suggested for this directory" annotation - Streaming tool execution is now always enabled, including when telemetry is disabled or on Bedrock/Vertex/Foundry (previously behind a feature flag) - Stdio MCP server subprocesses now receive `CLAUDE_CODE_SESSION_ID` and `CLAUDECODE=1` in their environment - `claude mcp list`/`get` now show unapproved `.mcp.json` servers as `⏸ Pending approval` instead of auto-approving and connecting when output is piped - `/remote-control` autocomplete now shows "Disconnect Remote Control" when Remote Control is already active - Added Claude Opus 4.8 support and 4.7 → 4.8 migration guidance to the `/claude-api` skill - Deprecated `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` (will be removed on 06/01). To use fast mode on Opus 4.6, switch with `/model claude-opus-4-6[1m]` and then `/fast on` - Improved the auto-mode classifier's detection of data exfiltration, particularly bulk transfers of repository contents - Fixed `rm -rf $HOME` not being blocked as a dangerous path when `HOME` has a trailing slash - Fixed `$TMPDIR` resolving to different directories in sandboxed vs unsandboxed Bash commands within the same session - Fixed unreadable highlighted-row text in `claude agents` when the Claude Code theme doesn't match the terminal background - Fixed background-agent completion notifications triggering premature "out of context" behavior on some 1M-context models - Fixed background-session classifier losing the user's goal when a scheduled `/command` fires - Fixed pinned background sessions respawning every minute after a Claude Code update, causing repeated agent-start notifications and process churn at idle - Fixed background sessions stuck at "blocked", "running", or "working" not retiring after the idle grace period - Fixed subagents in background sessions bypassing the worktree-isolation guard and writing to the shared checkout - Fixed orphaned `claude --bg-pty-host` processes spinning at 100% CPU after the daemon exits on macOS - Fixed number key shortcuts not working for options shown below the divider in option dialogs - Fixed `worktree.baseRef: "head"` resolving to the main checkout's HEAD instead of the current worktree's HEAD when spawning subagents or calling `EnterWorktree` from inside a linked worktree - Fixed a stray leading space on wrapped lines when the previous line ended exactly at the terminal width - Fixed intermittent terminal rendering corruption in VS Code by capping the number of distinct colors the thinking spinner produces - Fixed plan file names including `[Image #N]` / `[Pasted text #N]` placeholders when a plan-mode prompt starts with pasted images or text - Fixed a phantom expand/click affordance on colored tool output: short ANSI-colored lines that fit on screen no longer show a "ctrl+o to expand" hint - Fixed a single invalid `allowedMcpServers`/`deniedMcpServers` entry in managed settings discarding all managed-settings policy; the bad entry is now dropped with a `claude doctor` warning - Fixed API 400 errors on models that don't support the effort parameter when `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` is set - Windows: Fixed update failures caused by `claude.exe` being in use showing a generic error instead of telling you to close other sessions and retry - Removed the stale "& for background" hint from the shortcuts help panel - [VSCode] Auto mode no longer requires the bypass-permissions setting to appear in the mode picker, and a dismissable notice on the new-session screen explains auto mode the first time it's active - Fixed the task panel below the prompt showing a stray unselectable "main" row when only a workflow is running - Fixed /mcp tools list and tool detail rendering when MCP servers have long or multi-line tool names or long descriptions - Fixed the /model picker not showing fast mode pricing on the Default option for API (pay-as-you-go) users when fast mode is on - Fixed auto mode incorrectly blocking actions with "could not evaluate this action" when the safety classifier ran out of output tokens while reasoning
v2.1.153MCP 服务器稳定性提升和后台 agents 多项修复破坏性
- skipLfs 选项:Git/GitHub 源支持跳过 LFS 下载,加速仓库克隆和更新
- npm 安装通知:检测全局安装无法自动更新,/doctor 显示修复方案
- agents 自动补全:现在建议原生 slash 命令和 bundled skills,PR 显示优化
- /model 选择持久化:保存为新 sessions 的默认值,免去重复选择
- 关键稳定性修复:解决 MCP 重连循环、后台 sessions 内存泄漏、Worktree 权限等问题
破坏性变化
- keybinding 迁移:若自定义过 modelPicker:setAsDefault,需改为 modelPicker:thisSessionOnly
## 2.1.153 - Added `skipLfs` option to `github`/`git` plugin marketplace sources to skip Git LFS downloads during clone and update - Claude Code now shows a one-time notice when your npm global install can't auto-update; `/doctor` lists the fixes - Status line commands now receive `COLUMNS` and `LINES` environment variables so scripts can size output to the terminal width - `claude agents`: autocomplete in the dispatch input now suggests native slash commands and bundled skills, not just project skills - `claude agents`: PR column now shows `PR #N` for a single PR or `N PRs` for multiple - `claude doctor` now shows the result of your last update attempt - Combined the separate "needs authentication" startup notifications for MCP servers and connectors into a single message - macOS: background agents now appear as "Claude Code" in Privacy & Security and keep their permission grants across upgrades - Fixed stateful MCP servers without the optional GET SSE stream reconnect-looping on `tools/list` (regression in v2.1.147) - Fixed a regression where a custom API gateway could receive the user's Anthropic OAuth credential instead of the gateway's own token - Fixed subagent (Agent tool) frontmatter MCP servers ignoring `--strict-mcp-config`, `--bare`, remote mode, enterprise managed MCP config, and managed-settings MCP server allow/deny policies - `--strict-mcp-config` no longer strips inline `mcpServers` from explicitly-passed agent definitions (`--agents` / SDK `agents`), and blocked subagent MCP servers now surface a visible warning - Fixed the Windows PowerShell installer reporting "Installation complete!" when installation actually failed - Fixed `claude update` installing the latest version instead of the configured release channel's version for npm installations - Fixed excessive memory usage (multiple GB) when resuming a session by transcript file path on machines with many stored sessions - Fixed `claude agents` and `claude --bg` running on a stale daemon started before binary-takeover support, even after upgrading - Fixed a hang where the CLI could fail to exit when stdin was closed without EOF in stream-json mode, leaving a stale session marker behind - Fixed malformed `file://` links in Claude's responses not being clickable in the terminal - Fixed `claude --help` rendering unwrapped output on terminals narrower than 92 columns - Fixed MCP tool progress notifications not rendering in the collapsed tool view - Fixed `Agent` tool with `subagent_type: 'claude'` running in an undocumented temporary worktree, which could silently discard outputs written to gitignored paths - `/bg` while Claude is responding now continues the response in the background session instead of dropping it - Fixed `/btw` keyboard shortcuts becoming unresponsive in background sessions while a task is running - Fixed background sessions writing temp files to `$CLAUDE_JOB_DIR` triggering a "sensitive file" permission prompt - Fixed recovering a background agent whose working directory was deleted showing a truncated stack trace instead of a clear error message - Fixed `EnterWorktree` not being available immediately in background sessions (previously required `ToolSearch` first) - Fixed `cmd+k` in iTerm2/Terminal.app not repainting attached background sessions - Fixed the IME candidate window appearing at the bottom of the screen instead of next to the input caret in attached background sessions on Windows - Fixed background-color bleed when attaching to a background agent from 256-color-only terminals after the agent had rendered file diffs - Fixed `/copy` and copy-on-select silently failing to update the system clipboard when attached to a background session inside tmux - Fixed opening `claude agents` with Remote Control enabled leaving zombie session entries on the Code tab after exiting - Fixed `/rename` in background sessions not updating the session banner immediately - Fixed Windows update rollback: if a Windows update fails, Claude Code now restores the original executable by copy and tells you how to recover - [VSCode] Fixed Claude Code processes not shutting down cleanly when VS Code closed on Windows, causing false "unclean exit" reports and orphaned MCP servers - `/model` now saves your selection as the default for new sessions (matching the IDE). Press `s` in the picker to switch models for the current session only. - If you customized the `modelPicker:setAsDefault` keybinding, rename it to `modelPicker:thisSessionOnly` in keybindings.json (the `d` action was replaced by `s`)
v2.1.152代码审查自动应用与工作流优化
- /code-review --fix 现在自动应用审查建议到代码工作树,/simplify 命令已集成此功能
- Auto mode 不再需要 opt-in 同意,开箱即用简化初始体验
- SessionStart hooks 可设置会话标题和 reloadSkills,同一会话内即可启用新 skills 无需重启
- /reload-skills 命令重新扫描 skill 目录,动态加载新 skills 无需重启会话
- Vim 模式中 / 在 NORMAL 模式打开反向历史搜索,与 bash/zsh vi-mode 行为一致
- 新增 MessageDisplay hook 事件,允许在消息显示时转换或隐藏文本内容
## 2.1.152 - `/code-review --fix` now applies review findings to your working tree after the review, surfacing reuse, simplification, and efficiency suggestions; `/simplify` now invokes `/code-review --fix` - Skills and slash commands can now set `disallowed-tools` in frontmatter to remove tools from the model while the skill is active - Added `/reload-skills` command to re-scan skill directories without restarting the session - `SessionStart` hooks can now return `reloadSkills: true` to re-scan skill directories, making skills installed by the hook available in the same session - `SessionStart` hooks can now set the session title via `hookSpecificOutput.sessionTitle` on startup and resume - Added a `MessageDisplay` hook event that lets hooks transform or hide assistant message text as it is displayed - Added `pluginSuggestionMarketplaces` managed setting: admins can allowlist org marketplaces whose plugins may be suggested via context-aware tips - `claude plugin marketplace remove` now accepts `--scope user|project|local` for symmetry with `marketplace add`, `install`, and `uninstall` - Claude Code now switches to your configured `--fallback-model` for the rest of the session when the primary model is not found, instead of failing every request - Auto mode no longer requires opt-in consent - Vim mode: `/` in NORMAL mode now opens reverse history search (like Ctrl+R), matching bash/zsh vi-mode - The `/usage` breakdown now includes large session files; files are scanned with a streaming read so memory usage stays flat - Thinking summaries in the collapsed group now stay readable for at least 3 seconds, render as markdown, and cap at 10 lines (`Ctrl+O` shows the full thinking) - In fullscreen mode, the "Thinking for Ns" indicator now counts up live while the model is thinking, and keeps its value if you interrupt mid-thought - Simplified the Workflow tool's inline progress display — live agent counts now show only in the persistent workflow status row below the prompt - The post-response timer now shows "Waiting for N background agents/workflows to finish" when backgrounded agents or workflows are still running, and reports the cumulative time once their results are processed - Added the session entrypoint as an OpenTelemetry metric attribute (`app.entrypoint`, opt-in via `OTEL_METRICS_INCLUDE_ENTRYPOINT=true`) - Fixed terminal styling degrading in very long sessions by recycling the renderer's style pool - Fixed the sandbox-enabled warning not appearing in condensed startup mode — it now shows in every layout - Fixed the loading spinner showing "still thinking"/"almost done thinking" while a tool is running, and reset the thinking status to "thinking" after each tool - Fixed focus mode showing a spurious "N messages hidden" count on turns with no hidden activity - Fixed clicking a link inside an expanded tool result collapsing the section instead of opening the link - Fixed markdown table cell borders inheriting the color of inline code, wrapped continuation lines losing their style, and empty header cells showing a label in the narrow-terminal stacked layout - Fixed plugin MCP servers with the same command but different environment variables being incorrectly deduplicated - Fixed `/doctor` reporting "marketplace not found" or "plugin not found" for stale `enabledPlugins` entries referencing removed marketplaces or dropped plugins - Fixed plugins that track a git branch silently no longer receiving updates after the plugin registry was rebuilt - Fixed remote MCP servers failing to connect in Claude Code Remote sessions when the egress proxy is enabled - Fixed the effort-change confirmation dialog appearing when the conversation has no messages or when switching between effort levels that resolve to the same underlying value - Fixed the Agent tool description referencing an agent list that is never delivered when running with `--bare` or with attachments disabled - Fixed a background worker crash in `claude agents` when accepting a stale permission prompt after a subagent was cancelled - Fixed `cache_creation_input_tokens` reporting as 0 in transcript and result usage when the API reports cache writes only via the nested `cache_creation` breakdown - Fixed the PushNotification tool incorrectly reporting "Mobile push not sent (Remote Control inactive)" in SDK-hosted sessions when Remote Control is enabled - Fixed sessions getting stuck after a model or login switch left stale thinking-block signatures in history; now stripped proactively with a retry safety-net
v2.1.150基础设施改进
- 内部基础设施改进,无用户界面变化
## 2.1.150 - Internal infrastructure improvements (no user-facing changes)
v2.1.140-1499 个版本 · 9 已摘要
v2.1.149完善成本追踪和修复多项安全与稳定性缺陷
- /usage 命令现在按分类显示额度消耗明细(skills、subagents、plugins、MCP 服务器成本)
- /diff 支持键盘导航滚动(方向键、j/k、PgUp/PgDn、Space、Home/End)
- Markdown 输出现在正确渲染 GFM 任务列表复选框([x]/[ ])
- 修复 PowerShell 权限绕过:内置 cd 函数不再在无检测状态下改变工作目录
- 修复 find 命令在大目录树上导致 macOS 文件表溢出并崩溃的问题
## 2.1.149 - `/usage` now shows a per-category breakdown of what's driving your limits usage — skills, subagents, plugins, and per-MCP-server cost - `/diff` detail view can now be scrolled with the keyboard (arrows, `j`/`k`, `PgUp`/`PgDn`, `Space`, `Home`/`End`) - Markdown output now renders GFM task list checkboxes (`- [ ] todo` / `- [x] done`) instead of plain bullets - Enterprise: added the `allowAllClaudeAiMcps` managed setting to load claude.ai cloud MCP connectors alongside `managed-mcp.json` - Fixed a PowerShell permission bypass: built-in `cd` functions (`cd..`, `cd\`, `cd~`, `X:`) changed the working directory undetected, letting a later command read outside the workspace - Fixed the sandbox write allowlist in git worktrees covering the entire main repository root instead of only the shared `.git` directory (with `hooks/` and `config` denied) - Fixed PowerShell prefix/wildcard allow rules (e.g. `PowerShell(dotnet.exe build *)`) not pre-approving native executables and scripts - Fixed a permission-analysis gap where the parser trusted stale variable-tracking values for `PWD`/`OLDPWD`/`DIRSTACK` across `cd`/`pushd`/`popd` - Fixed `find` in the Bash tool exhausting the macOS system file/vnode table and crashing the host on large directory trees - Fixed the managed-settings approval dialog leaving the terminal frozen after accepting at startup - Fixed `/ultraplan` and remote session creation failing with "Could not capture uncommitted changes" when the working tree has no real changes - Fixed `otelHeadersHelper` failing silently when the script path contains spaces; helper failures are now reported in `/doctor` and the debug log - Fixed the thinking spinner staying amber across tool calls and onto fresh thinking bursts - Fixed collapsed Bash output reporting the wrong hidden-line count for outputs with many short lines - Fixed slash-command argument-hint clipping trailing typed characters when the hint overflows the input box - Fixed argument-hint and progressive arg suggestions not appearing after Tab-completing a skill whose frontmatter `name:` differs from its directory basename - Fixed the status bar showing the user's baseline `/effort` setting instead of the effort level applied by skill/agent `effort:` frontmatter - Fixed Ctrl+O transcript view freezing at the moment it was opened instead of tailing new messages - Fixed editing a recalled prompt-history entry losing the edit when navigating further up/down with arrow keys - Fixed `/config` exit summary reporting phantom changes to auto-compact and theme when toggling unrelated settings - Fixed `/insights` crashing when cached session-meta files are missing optional fields - Fixed malformed PowerShell and History tool calls with missing input being misclassified as reads in transcript collapsing - Fixed renaming a Remote Control session from claude.ai or the Claude mobile app not updating the local session name for `claude --resume` - Fixed a race where a just-submitted prompt could appear twice in the up-arrow history - Fixed tapping the "Jump to bottom" pill in fullscreen mode not dismissing it immediately - Improved `/feedback` reports to include the conversation that happened before context compaction, making issues from earlier in long sessions easier to triage
v2.1.148修复 Bash 工具的退出码异常问题
- 修复了 Bash 工具在某些用户环境下每次返回退出码 127 的 Bug,恢复正常命令执行状态判断
## 2.1.148 - Fixed the Bash tool returning exit code 127 on every command for some users (a regression introduced in 2.1.147)
v2.1.147重构代码审查,改进后台会话破坏性
- /code-review 按难度报告错误,支持
--comment发 PR 评论 - Pinned 后台会话空闲保活、更新重启、内存优先释放
- 自动更新器重试网络故障并报具体 OS 错误码
- 修复 20+ bug:登录限制、Shell 输出、MCP 分页等
破坏性变化
- 重命名 /simplify 为 /code-review,清理修复行为移除
## 2.1.147 - Pinned background sessions (`Ctrl+T` in `claude agents`) now stay alive when idle, are restarted in place to apply Claude Code updates, and are shed under memory pressure only after non-pinned sessions - Renamed `/simplify` to `/code-review`. It now reports correctness bugs at a chosen effort level (e.g., `/code-review high`); pass `--comment` to post findings as inline GitHub PR comments. The old cleanup-and-fix behavior has been removed - Improved auto-updater: retries transient network failures, reports specific error categories and OS error codes on failure, and shows the current version when an update fails - Improved diff rendering performance for large file edits - Prompt history no longer records consecutive duplicate entries — recalling a prompt with arrow-up and submitting it again won't add another copy - Fixed enterprise login restrictions (`forceLoginOrgUUID` and `forceLoginMethod` managed-settings) not being enforced against third-party-provider and API-key sessions - Fixed `&` in `!` command output displaying as `&`, which broke copy-pasting URLs from commands like `gcloud auth login` on headless machines - Fixed unknown slash commands silently doing nothing in headless/SDK mode — they now show an error message - Fixed `/help` rendering a broken tab header and showing only one command per page on small terminals when not in fullscreen mode - Fixed shell snapshot dropping user functions whose names start with a single underscore, which broke aliases referencing them - Fixed plugin agents that declare multiple `Agent(...)` types in `tools:` frontmatter dropping all but the last entry - Fixed hook `if` conditions like `PowerShell(git push*)` never matching — only `PowerShell(*)` worked - Fixed PowerShell tool dropping output for commands that rely on the default formatter - Fixed: on Windows, "Yes, and don't ask again" for a PowerShell script invocation now writes a rule that actually matches on subsequent runs - Fixed PowerShell tool failing on Windows with exit code 1 when `pwsh` is installed via winget or the Microsoft Store - Fixed `/effort` opening with the slider on the wrong level — it now starts at your current effort - Fixed paginating MCP servers dropping resources, templates, and prompts past page 1 - Fixed full-screen strobing in attached background sessions on Windows Terminal while Claude is streaming - Fixed: on Windows, removing a background-job worktree no longer follows NTFS junctions into the main repo - Fixed `/background` refusing sessions whose only typed input was a skill or custom slash command - Fixed auto mode suppressing `AskUserQuestion` when the user or a skill explicitly relies on it; the auto-mode classifier now sees the user's answers as intent signal - Fixed `/theme` "New custom theme" and color editor dialogs not responding to Esc - Fixed an uncaught exception at the end of streaming sessions when running via the Agent SDK - Fixed a rare hang when waiting for scroll to settle on Windows - Fixed stale and doubled rows in the agent view list on Windows when background session results contain wide (CJK) characters - Fixed pasted text being delivered to agents as an unreadable `[Pasted text #N]` placeholder instead of the actual content - Fixed plugin component counts in `claude plugin details` and `/plugin` being doubled when a plugin's manifest listed paths overlapping its default directories - Fixed backgrounded sessions re-prompting for tool permissions you already granted with "don't ask again" - Fixed GNOME Terminal right-click and middle-click paste not inserting text - Fixed `CLAUDE_CODE_SUBAGENT_MODEL` not applying to teammate processes spawned by agent teams - Fixed slash commands followed by a tab or newline being treated as an unknown command - Fixed several spacing and layout glitches in the `/plugin`, `/status`, `/mobile`, `/sandbox`, and `/permissions` menus - Fixed stripped images prompting the model to repeatedly re-read media that was no longer present
v2.1.145增强 Agent 工具和插件发现
claude agents --json输出用于脚本和状态栏集成- /plugin 显示插件命令、Agent、Skill、Hook、MCP/LSP 服务
- Slash command 补全在全屏模式支持鼠标悬停点击
- 修复 MCP 分页丢数据、权限提示绕过等 15+ bug
## 2.1.145 - Added `claude agents --json` to list live Claude sessions as JSON for scripting (tmux-resurrect, status bars, session pickers) - Added `agent_id` and `parent_agent_id` attributes to `claude_code.tool` OTEL spans, and fixed trace parenting so background subagent spans nest under the dispatching Agent tool span - Status line JSON input now includes GitHub repo and PR information when detected - `/plugin` Discover and Browse screens now show a plugin's commands, agents, skills, hooks, and MCP/LSP servers before installation - `claude agents` terminal tab title now shows the awaiting-input count so an alt-tabbed window tells you when an agent needs attention - Slash command and @-mention suggestion list now supports mouse hover and click in fullscreen mode - Stop and SubagentStop hook input now includes `background_tasks` and `session_crons` fields - Fixed a permission-prompt bypass where bare variable assignments to non-allowlisted environment variables in Bash commands were auto-approved - Fixed MCP prompt slash commands showing raw server validation errors when a required argument is omitted — the error now names the missing argument and shows expected usage - Fixed the spinner and elapsed-time display freezing until a keypress after the terminal was resized or refocused - Fixed the cross-project resume hint failing in default Windows PowerShell 5.1 — Windows now uses `;` as the command separator - Fixed voice push-to-talk not working in the agent view's reply pane - Fixed task lists rendering in random order when several tasks are created at once - Fixed stale "Failed to install Anthropic marketplace" banner showing when the marketplace is already installed - Fixed the PR badge in the footer not updating immediately after `gh pr create` and other PR-state-changing commands run in-session - Fixed Agent Teams teammates with non-ASCII names failing every API call due to invalid header encoding - Fixed `/review` using a deprecated `projectCards` GraphQL query that errored on repos with Classic Projects - Fixed `claude plugin validate` not flagging `skills:` entries that point at a file instead of a directory — the error now suggests the parent directory - Fixed an infinite loop where a skill using `context: fork` could repeatedly re-invoke itself instead of running - Improved the Read tool to return a truncated first page with a "PARTIAL view" notice instead of a hard error when a whole-file read exceeds the token limit
v2.1.144优化后台会话和启动性能破坏性
- /resume 支持恢复后台会话
- /model 改为仅改当前会话,d 键为新会话设默认
- 启动优化:API 调用超时从 75s 减为 15s
- 修复 macOS FD 保护、Terminal 渲染、MCP 列表等 20+ bug
破坏性变化
- /model 现仅改当前会话,新会话需按 d 键单独配置
## 2.1.144 - Added `/resume` support for background sessions — sessions started via `claude --bg` or agent view now appear alongside interactive ones, marked with `bg` - Added elapsed duration to background subagent completion notifications (e.g. "Agent completed · 3h 2m 5s") - The `/plugin` browse and discover panes now show when a plugin was last updated - `/model` now changes the model for the current session only; press `d` in the model picker to set a default for new sessions - Renamed "extra usage" to "usage credits" across CLI copy; `/extra-usage` is now `/usage-credits` (old name still works) - Fixed startup hanging up to 75s when `api.anthropic.com` is unreachable (captive portal, firewall, VPN issues) — side-channel API calls now time out after 15s - Fixed garbled terminal output after a missed window-resize event (e.g. dragging a VS Code split-pane divider) — now self-heals on the next frame instead of requiring Ctrl+L - Fixed progressive terminal display corruption (stale/garbled glyphs) that could appear in very long sessions and only cleared on terminal resize or restart - Reduced terminal rendering glitches in VS Code by reducing spinner animation color count - Fixed macOS background sessions crashing with "exit 1 before init" when the project lives under a Full Disk Access-protected folder (regression in 2.1.143) - Fixed an unrecoverable conversation when reading a file whose image extension doesn't match its contents (e.g. HTML saved as .png) — now falls back to text - Fewer spurious tool errors during search: `head`/`tail` file views now satisfy the read-before-edit check, and a "no matches" result (exit code 1) from `egrep`, `fgrep`, `git grep`, or `git diff` is no longer reported as a command failure - Fixed `/branch` failing with "No conversation to branch" after entering a worktree or in some background sessions - Fixed pressing Escape in the AskUserQuestion notes field aborting the turn instead of returning to answer selection - Fixed model selection not applying when changed via the IDE model picker or `applyFlagSettings` after startup - Resumed sessions now keep the model they were using instead of picking up another session's `/model` choice - Fixed Bedrock and Vertex users unable to select "Opus (1M context)" from the `/model` picker (regression in v2.1.129) - Fixed remote-session login failing with "Can't access this organization" for users with `forceLoginMethod` and `forceLoginOrgUUID` set - Fixed MCP servers with paginated `tools/list` responses only returning the first page, silently dropping tools - Fixed MCP images with unsupported MIME types (e.g. SVG) breaking the conversation — now saved to disk and referenced in the tool result - Fixed file descriptor exhaustion when a build runs inside a skill directory — non-`.md` files no longer trigger skill reloads - Fixed session title being generated from plugin monitor output instead of the user's first prompt - Fixed Skill tool failing with permission error in headless mode (regression in v2.1.141) - Fixed plugins enabled in your own settings showing "not cached" errors after first load on a fresh machine; plugins enabled only by a project's `.claude/settings.json` now show an actionable `claude plugin install` hint - Fixed `claude mcp list` silently reporting no servers when `.mcp.json` can't be parsed (e.g. using VS Code's `"servers"` key instead of `"mcpServers"`) — now shows configuration errors - Fixed background side-queries on custom `ANTHROPIC_BASE_URL` setups and Bedrock Mantle not using Haiku — now falls back correctly when a first-party API key is configured or no Haiku model is set - Fixed scrolling in attached background sessions on Windows — PgUp/PgDn, mouse wheel, and Ctrl+O transcript navigation now work - Fixed a crash when closing the terminal while attached to a background session - Fixed on Windows, pressing ← in `claude agents` leaving the list unresponsive to keyboard input - Fixed ghost characters at the left edge when switching panes in Agent View on Windows Terminal with CJK content - `/bg` and `←`-detach now preserve directories added via `/add-dir` - Fixed Edit/Write refusing with "background session hasn't isolated its changes yet" right after detaching a session that was already editing in place - Fixed `claude respawn <id>` on a stopped background session showing "stopped" instead of running - Fixed `/resume` picker not showing sessions forked from a background session - Fixed opening a session from `claude agents` or running `claude logs <id>` hanging when the background service is unresponsive — now times out after 10s with a recovery hint - Fixed background Bash tasks spawned by subagents staying "Running" in SDK task panels after the process exits - Fixed completed or stopped background sessions briefly failing to wake being permanently marked as a startup crash - Fixed markdown links in `claude agents` attached sessions rendering as plain text instead of clickable hyperlinks - Fixed custom `spinnerVerbs` applying to the post-turn duration message — past-tense built-ins like "Worked for 5s" are restored there - `claude agents` / `--bg` rejection messages now name the specific gate (non-TTY, env var, or setting) instead of a generic message - `claude --bg --name <label>` now echoes the name in the post-spawn confirmation - `claude agents`: renaming a background session with Ctrl+R now updates the attached session's banner immediately - Background session worktree isolation guard now applies for non-git VCS users with `WorktreeCreate` hooks configured - Plugin marketplace add/update now respects `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` - `/plugin` now returns to the Installed list after enabling, disabling, or uninstalling a plugin - `/doctor` now shows an exec-form example when a command hook is missing the `command` field - Skill-listing truncation is no longer shown as a startup notification — run `/doctor` for the full breakdown - Improved recovery from rare pre-response stream stalls — now retries streaming once instead of falling back to a slower non-streaming request - Improved SDK/headless MCP startup: pre-wait now overlaps startup instead of blocking before the first turn (up to 2s faster with slow MCP servers) - The post-survey follow-up hint now appears after every non-dismiss survey response with context-aware copy, making it easier to share more detail via /feedback.
v2.1.143增强插件管理和后台会话
- 插件依赖强制:禁用检查依赖、启用时自动启用传递依赖
worktree.bgIsolation: "none"让后台会话直接编辑工作副本- PowerShell 默认
-ExecutionPolicy Bypass,可通过环境变量退出 - 修复凭证 JSON 损坏、粘贴失效、hook 循环等 15+ bug
## 2.1.143 - Added plugin dependency enforcement: `claude plugin disable` now refuses when another enabled plugin depends on the target (with a copy-pasteable disable-chain hint), and `claude plugin enable` force-enables transitive dependencies - Added projected context cost (per-turn and per-invocation token estimates) to the `/plugin` marketplace browse pane - Added `worktree.bgIsolation: "none"` setting to let background sessions edit the working copy directly without `EnterWorktree`, for repos where worktrees are impractical - PowerShell tool now passes `-ExecutionPolicy Bypass`. Opt out with `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1` - Background sessions now preserve the model and effort level you set after waking from idle - Shift+Tab in attached agent sessions now includes auto mode in the cycle - Fixed a corrupt `.credentials.json` with a non-array `scopes` value hanging the CLI on startup or silently aborting OAuth token refresh - Fixed right-click paste in `claude agents` on Windows Terminal and WSL - Fixed stop hooks that block repeatedly looping forever — the turn now ends with a warning after 8 consecutive blocks (override via `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`) - Fixed Esc/Ctrl+C not cancelling a pending `/loop` wakeup while Claude is idle between iterations - Fixed `/goal` evaluator firing while background shells or delegated subagents are still running - Fixed `NO_COLOR`/`FORCE_COLOR` in settings.json `env` stripping Claude Code's own UI colors — they now apply to subprocesses only - Fixed agent view spawning repeated PowerShell processes on Windows when listing sessions - Fixed `/bg` without a prompt sending "continue" to the forked session — the fork now waits for input - Fixed `--agent <name>` not finding plugin-contributed agents without the `plugin:` prefix - Fixed deleting a session from agent view not removing its transcript file - Fixed stale-fragment rendering when scrolling in attached background sessions on Windows Terminal - Fixed background agents false-positive worker-stall detection storm after host sleep or macOS App Nap - Fixed 5xx error messages pointing at status.claude.com instead of naming the configured gateway or cloud provider - The PowerShell tool is now enabled by default on Windows for Bedrock, Vertex, and Foundry users. Opt out with `CLAUDE_CODE_USE_POWERSHELL_TOOL=0`. - `claude agents` now accepts `--add-dir`, `--settings`, `--mcp-config`, and `--plugin-dir` and applies them to the dashboard and to background sessions dispatched from it - `claude agents` accepts `--permission-mode`, `--model`, `--effort`, and `--dangerously-skip-permissions` to set defaults for sessions dispatched from the view - `claude --bg --dangerously-skip-permissions` now persists across retire→wake - Fixed background sessions silently capturing IDE file references into the warm spare's input, which caused the reference to be prepended to the next prompt dispatched from `claude agents` - Worktree cleanup no longer falls back to `rm -rf` when `git worktree remove` fails, preventing loss of gitignored or in-progress files - Fixed background-job sessions on macOS getting "Operation not permitted" errors when reading files under `~/Documents`, `~/Desktop`, or `~/Downloads`, even with Full Disk Access granted. - `/bg` now preserves `--mcp-config`, `--settings`, `--add-dir`, `--plugin-dir`, and `--strict-mcp-config`, so backgrounded sessions keep their MCP servers and settings across respawn. - Background sessions launched from `claude agents` now honor `permissions.defaultMode` from settings.json (was previously overridden to auto mode) - Fixed: on Windows, pressing ← in `claude agents` while a response was streaming could leave the agents list unresponsive to all input - `/bg` and `←`-detach now preserve `--fallback-model`, so backgrounded workers degrade to the fallback model on overload instead of hard-failing. - `/bg` and `←`-detach now preserve `--allow-dangerously-skip-permissions`, so the forked worker keeps bypass-permissions available in its Shift+Tab cycle. - Fixed: background daemon spawn now falls back to the running binary when the `~/.local/bin/claude` launcher is missing or non-executable - Fixed `claude agents --allow-dangerously-skip-permissions` defaulting dispatched sessions to bypass mode instead of making it available in the permission cycle
v2.1.142Fast mode 升级至 Opus 4.7破坏性
- Fast mode 默认使用 Opus 4.7(设置 CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1 可回滚到 Opus 4.6)
- claude agents 新增 --add-dir、--settings、--mcp-config 等标志配置后台会话
- 修复 MCP 工具超时、worktree 识别、后台会话消失等关键问题
破坏性变化
- Fast mode 默认模型从 Opus 4.6 升级为 Opus 4.7
## 2.1.142 - Added new `claude agents` flags: `--add-dir`, `--settings`, `--mcp-config`, `--plugin-dir`, `--permission-mode`, `--model`, `--effort`, and `--dangerously-skip-permissions` to configure dispatched background sessions - Fast mode now uses Opus 4.7 by default (previously Opus 4.6). Set `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1` to pin fast mode to Opus 4.6 - Plugins with a root-level `SKILL.md` and no `skills/` subdirectory are now surfaced as a skill - The `/plugin` details pane and `claude plugin details` now show LSP servers a plugin provides - `/web-setup` warns before replacing an existing GitHub App connection - Fixed `MCP_TOOL_TIMEOUT` not raising the per-request fetch timeout for remote HTTP and SSE MCP servers, which capped tool calls at 60 seconds regardless of the configured value - Fixed background sessions not recognizing pre-existing git worktrees, blocking Edit while EnterWorktree refused to create a duplicate - Fixed background sessions disappearing and daemon reconnect failing after macOS sleep/wake — the daemon now detects clock jumps instead of treating them as elapsed idle time - Fixed daemon not exiting cleanly after the binary is upgraded (e.g. `brew upgrade`), causing dispatched agents to crash-loop on the deleted path - Fixed background agents crash-looping when the Claude-in-Chrome extension is connected without a shared tab - Fixed clicking links in an attached `claude agents` session — the background worker's headless browser shim no longer applies while attached - Fixed `claude agents` "v to open in editor" using the daemon's default editor instead of your shell's `$EDITOR`/`$VISUAL` - Fixed `claude agents` deadlocking on Windows with network-drive working directories; Ctrl+C now works during startup - Fixed background-color bleed when attaching to a `claude agents` session from Apple Terminal or other 256-color-only terminals - Fixed `claude --bg --dangerously-skip-permissions` not persisting across retire/wake - Fixed session titles being derived from the URL when the first message is a link - Fixed redundant `set_model` requests from remote clients injecting duplicate `/model` breadcrumbs into the transcript - Fixed plugins using `skills: ["./"]` showing a false "path escapes plugin directory" error - Fixed plugin cache cleanup deleting the active plugin version directory when no installation metadata is present - Fixed `/plugin` browse pane showing "0 installs" for newly published plugins - Fixed plugin advisories not naming every `plugin.json` key that shadows a default folder - Improved reactive compaction: the first summarize attempt now seeds from the original request's overflow size, avoiding a wasted near-full-context retry - Improved hook configuration error: configuring a prompt- or agent-type hook for `SessionStart`/`Setup`/`SubagentStart` now shows a clear "use a command-type hook instead" error - Removed stale `/model claude-sonnet-4-20250514` suggestion from Usage Policy refusal messages
v2.1.141Hook 增强和后台代理改进
- Hook 新增 terminalSequence 字段支持发送桌面通知和窗口标题
- /feedback 可包含过去 24 小时或 7 天内的会话便于问题反馈
- 后台代理现在保留当前权限模式而非恢复到默认设置
- 修复了权限提示、MCP 服务器和后台会话的多个问题
## 2.1.141
- Added `terminalSequence` field to hook JSON output so hooks can emit desktop notifications, window titles, and bells without a controlling terminal
- Added `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` to clone GitHub plugin sources over HTTPS instead of SSH, for environments without a GitHub SSH key
- Added `ANTHROPIC_WORKSPACE_ID` environment variable for workload identity federation — scopes the minted token to a specific workspace when the federation rule covers more than one
- Added `claude agents --cwd <path>` to scope the session list to a directory
- `/feedback` can now include recent sessions (last 24 hours or 7 days) for issues spanning more than the current session
- Rewind menu: added "Summarize up to here" to compress earlier context while keeping recent turns intact
- Auto mode permission dialog now explains when a `permissions.ask` rule caused the prompt
- Restored the "view diff in your IDE" option on file-edit permission prompts when an IDE is connected
- Background agents launched via `/bg` or `←←` now preserve the current permission mode instead of reverting to default
- `claude agents`: agents that finish work but leave a background shell running now move to Completed instead of staying under Working
- Improved spinner feedback during long thinking periods — the spinner now warms to amber after 10 seconds to signal Claude is still working
- Improved plugin menu navigation: `→`/Tab switch tabs, `↑` moves to the tab strip, and tab headers and search box are clickable in fullscreen mode
- Fixed background side-queries sending an unavailable Haiku model ID on Bedrock/Vertex/Foundry/gateway when no `ANTHROPIC_SMALL_FAST_MODEL` override is set — now falls back to the main-loop model
- Fixed `claude daemon status` and `/doctor` on Windows throwing when the daemon pipe key file is locked or unreadable — now shows the underlying error instead of an opaque failure
- Fixed `claude agents` showing the agent-type list instead of the dashboard when launched through a wrapper that adds flags
- Fixed `claude agents` opening a crashed session firing redundant dispatches when the working directory was deleted
- Fixed background jobs on a custom `ANTHROPIC_BASE_URL` gateway not getting auto-named — the namer now uses the main model when no Haiku model is configured
- Fixed `/model` in one session silently changing the autocompact threshold in other concurrent sessions
- Fixed switching permission mode while a tool-permission prompt is open not auto-dismissing the prompt when the new setting permits the tool
- Fixed pressing Enter while a permission/dialog prompt is open also submitting text in the input box
- Fixed hooks receiving a non-existent `transcript_path` after `EnterWorktree` switches the working directory
- Fixed markdown tables with cell wrapping falling back to the vertical key-value layout instead of rendering as a bordered grid (regression in 2.1.136)
- Fixed cancelled prompts being removed from Up-arrow history when auto-restored into the input box, avoiding duplicate entries
- Fixed prompts cancelled with Ctrl+C/Esc before any response being dropped from Up-arrow history
- Fixed Ctrl+C not interrupting a running turn while in vim INSERT/VISUAL mode
- Fixed alternative `chat:submit` keybindings (e.g. `meta+enter`, `ctrl+enter`) not working when `enter` is rebound to `chat:newline`
- Fixed prompt suggestions being silently disabled when an output style was configured
- Fixed `spinnerVerbs` setting not being honored in turn-completion messages
- Fixed AskUserQuestion popup hiding the last line of preceding chat content
- Fixed Web Search status showing "Did 0 searches" when searches returned errors
- Fixed multi-line statusline output dropping or corrupting rows when any line exceeds terminal width
- Fixed light-ansi theme using invisible white for diff context lines on light backgrounds — now uses black
- Fixed error overlay dumping minified bundle source that hid the original error message
- Fixed pressing Enter after typing a feedback survey rating digit submitting it as a chat message instead of the rating
- Fixed pressing `x` on a selected subagent in the agent panel typing into the prompt instead of stopping the agent
- Fixed session title being derived from plugin monitor notifications before the user's first prompt
- Fixed "Allowed by PermissionRequest hook" repeating once per tool call under a collapsed read/search group
- Fixed `/tui` silently dropping running background shells and subagents — now refuses and asks to wait for them to finish
- Fixed welcome banner showing "API Usage Billing" on Bedrock, Vertex, Foundry, and other third-party providers — now shows the provider name
- Fixed `/mcp` server list not keeping the focused server visible in short terminals in fullscreen mode
- Fixed redaction in `/feedback` bundles producing invalid JSON for quoted values like session IDs
- Fixed desktop and third-party provider sessions incorrectly inheriting `apiKeyHelper`/`ANTHROPIC_AUTH_TOKEN` from host managed-settings
- Fixed early analytics events being silently dropped when fired before logger initialization
- Fixed `claude plugin install` failing for plugins whose marketplace `ref` no longer exists upstream when a `sha` is also pinned
- Fixed plugin details pane showing 0 MCP servers for plugins that declare them via `.mcp.json`
- Fixed plugin MCP servers with unset config variables showing a generic connection failure instead of a "config issue" message with a fix-it hint; malformed `.mcp.json` entries no longer drop other MCP servers
- Fixed MCP server configs using POSIX shell parameter expansions (e.g. `${var%pattern}`) being incorrectly flagged as missing environment variables
- Fixed MCP HTTP/SSE servers returning 403 on connect showing as "failed" instead of "needs auth"
- Fixed remote MCP servers disconnecting unnecessarily when the optional server-events stream failed to reconnect — tool calls continue over POST
- Fixed Remote Control MCP connectors all failing with 401 when the worker session token rotated mid-session
- Fixed Remote Control automatically re-enrolling a trusted device when the server rejects a stale token, instead of looping through `/login`
- Fixed a race where early OTel spans could be silently dropped in SDK/headless mode with beta tracing enabled
- Fixed custom `voice:pushToTalk` keybindings and `"space": null` unbinds being silently ignored
- Fixed Windows Alt+V image paste reporting "no image found" when the clipboard contains a screenshot
- Fixed SDK "Claude Code native binary not found" on Linux when both glibc and musl platform packages are installed
- Bedrock: `awsCredentialExport` now always runs when configured instead of being skipped when ambient AWS credentials resolve, fixing auth for cross-account access
- [VSCode] Fixed in-chat mic showing no feedback when the microphone produced only silence — now shows "No audio detected"
- [VSCode] Voice mode: the WSL error now suggests installing `sox libsox-fmt-pulse` for WSLg users
- `claude agents`: launching a session no longer fails when the pre-warmed background worker is unhealthy — now falls back to a fresh launch
- `claude agents` no longer shows empty placeholder sessions left over from backgrounding a fresh REPL, and shows onboarding text when entered via ← with no other agents
- Empty idle background sessions left over from `←` are now automatically retired by the daemon after 5 minutesv2.1.140Agent 工具和可靠性改进
- Agent tool subagent_type 现在接受不区分大小写和分隔符的值
- 修复 /goal 命令悬挂导致无法获得反馈的问题
- 改进后台服务启动时的错误处理和恢复机制
## 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`.
v2.1.130-1397 个版本 · 7 已摘要
v2.1.139新增 Agent view 和 /goal 命令
- 新增 Agent view - 统一查看所有运行中、等待中、已完成的 Claude Code 会话
- /goal 命令 - 设置完成条件后自动跨多个轮次持续工作直到达成
- Hook args 支持 exec 形式直接生成命令无需担心路径引用问题
- MCP stdio 服务器现在接收 CLAUDE_PROJECT_DIR 环境变量
## 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`v2.1.138内部修复
## 2.1.138 - Internal fixes
v2.1.137VSCode Windows 修复
- 修复 VSCode 扩展在 Windows 上的激活问题
## 2.1.137 - [VSCode] Fixed extension failing to activate on Windows
v2.1.136MCP 可靠性和 UI 改进
- 新增 autoMode.hard_deny 配置进行无条件的权限阻止
- 修复 MCP 服务器在 /clear 后消失的问题
- 修复 MCP OAuth 并发刷新导致的令牌丢失需要重新认证
## 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
v2.1.133Worktree 配置和 Hook 增强破坏性
- 新增 worktree.baseRef 设置选择分支来源(fresh 或 local HEAD)
- Hook 现在接收 effort level 信息通过 CLAUDE_EFFORT 环境变量
- 修复 MCP OAuth 流程中的代理、mTLS 和刷新令牌问题
破坏性变化
- worktree.baseRef 默认为 fresh 改变了 EnterWorktree 的行为,需设置为 head 以保留未推送提交
## 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
v2.1.132修复会话中断、粘贴和全屏等多项问题
- 添加CLAUDE_CODE_SESSION_ID环变和CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN禁用全屏选项
- 修复外部SIGINT无法优雅关闭,终端模式现正确恢复
- 修复全屏模式睡眠唤醒后显示空白,Ctrl+Z恢复后也能正常显示
- 修复粘贴文本开头/被吞掉或触发未知命令,修复粘贴时混入转义序列
## 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
v2.1.131修复VS Code和Mantle身份验证问题
- 修复VS Code在Windows上扩展无法激活的SDK polyfill bug
- 修复Mantle端点认证缺少x-api-key头导致失败
## 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) - Fixed Mantle endpoint authentication failing with missing `x-api-key` header
v2.1.120-1297 个版本 · 7 已摘要
v2.1.129支持插件URL加载和自动升级功能破坏性
- 添加--plugin-url从URL获取插件.zip档案
- 添加CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE支持Homebrew/WinGet后台升级
- 修复--permission-mode在恢复plan模式时被忽略的问题
- 修复/effort选择器不反映CLAUDE_CODE_EFFORT_LEVEL环变覆盖
破坏性变化
- 网关/v1/models发现现需要明确设置CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1
## 2.1.129
- Added `--plugin-url <url>` flag to fetch a plugin `.zip` archive from a URL for the current session
- Added `CLAUDE_CODE_FORCE_SYNC_OUTPUT=1` env var to force-enable synchronized output on terminals that auto-detection misses (e.g. Emacs `eat`)
- Added `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE`: when set on Homebrew or WinGet installations, Claude Code runs the upgrade command in the background and prompts to restart
- Plugin manifests: `themes` and `monitors` should now be declared under `"experimental": { ... }`. Top-level declarations still work but `claude plugin validate` will warn
- Gateway `/v1/models` discovery for the `/model` picker is now opt-in via `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` (was automatic in 2.1.126–2.1.128)
- Ctrl+R history picker now defaults to searching all prompts across all projects, matching pre-2.1.124 behavior. Press Ctrl+S to narrow to the current project or session
- Third-party deployments (Bedrock, Vertex, Foundry, or `ANTHROPIC_BASE_URL` gateway) no longer see spinner tips pointing at first-party Anthropic surfaces
- `skillOverrides` setting now works: `off` hides from model and `/`, `user-invocable-only` hides from model only, `name-only` collapses description
- The `claude_code.pull_request.count` OTel metric now counts PRs/MRs created via MCP tools, not just shell commands
- Policy refusal error messages now include the API Request ID for easier support debugging
- Fixed API errors with unrecognized 400 status codes showing raw JSON instead of the underlying error message
- Fixed `/clear` not resetting the terminal tab title after a conversation
- Fixed session title chip from `/rename` disappearing while a permission or other dialog is active
- Fixed agent panel below the prompt being hidden when subagents are running (regression in 2.1.122)
- Fixed external-editor handoff (Ctrl+G) blanking the conversation history above the prompt
- Fixed `/context` dumping its rendered ASCII visualization grid into the conversation, wasting ~1.6k tokens per call
- Fixed `/agents` Library list arrow-key navigation: the highlighted agent now stays visible when the list exceeds the viewport
- Fixed `/branch` success message not including the new branch's session id for `/resume`
- Fixed bold headers with keycap/ZWJ/skin-tone emoji losing trailing characters in fullscreen mode
- Fixed server-managed settings policy not applying for enterprise/team users whose stored OAuth credentials lacked the `user:inference` scope
- Fixed OAuth refresh race after wake-from-sleep that could log out all running sessions
- Fixed 1-hour prompt cache TTL being silently downgraded to 5 minutes
- Fixed cache-miss warning appearing spuriously after `/clear` or compaction when changing `/effort` or `/model`
- Fixed `Bash(mkdir *)`, `Bash(touch *)` and similar allow rules not being honored for in-project paths
- Fixed `deniedMcpServers` patterns with a `*://` scheme wildcard not matching mixed-case hostnames
- Fixed harmless WebSocket warning being logged as an error in `--debug` during voice mode
- [VSCode] Fixed `/clear` not clearing the conversation context and displayed transcriptv2.1.128MCP增强和修复客户端交互问题破坏性
- /mcp现显示连接服务器的工具数量和连接失败标记
- --plugin-dir支持.zip插件档案直接加载
- EnterWorktree从本地HEAD创建分支而非origin/default-branch
- 修复vim操作符破坏包含分解(NFD)字符的文本
破坏性变化
- MCP中workspace成为保留服务器名称,现有同名服务器将被跳过
## 2.1.128 - Bare `/color` (no args) now picks a random session color - `/mcp` now shows the tool count for connected servers and flags servers that connected with 0 tools - `--plugin-dir` now accepts `.zip` plugin archives in addition to directories - `--channels` now works with console (API key) authentication — console orgs with managed settings must set `channelsEnabled: true` to enable - Updated `/model` picker: collapsed duplicate Opus 4.7 entries, and current Opus now shows as "Opus" instead of "Opus 4.7" - Subprocesses (Bash, hooks, MCP, LSP) no longer inherit `OTEL_*` environment variables, so OTEL-instrumented apps run via the Bash tool no longer pick up the CLI's own OTLP endpoint - MCP: `workspace` is now a reserved server name — existing servers with that name will be skipped with a warning - Reconnecting MCP servers no longer flood the conversation with full tool-name lists on every reconnect — re-announced tools are summarized by server prefix - SDK hosts now receive a persistent `localSettings` suggestion for Bash permission prompts, so "Always allow" writes to `.claude/settings.local.json` - `EnterWorktree` now creates the new branch from local HEAD as documented, instead of `origin/<default-branch>` — unpushed commits are no longer dropped - Auto mode: when the classifier can't evaluate an action, the error now includes a hint (retry, `/compact`, or run with `--debug`) - Fixed focus mode briefly dimming the previous response when submitting a new prompt - Fixed stray "4;0;" desktop notification on every `/exit` in Kitty and other terminals that interpret OSC 9 as a notification - Fixed Remote Control showing an empty "Opening your options…" message on rate limit instead of actionable upsell options - Fixed drag-and-drop image upload hanging on "Pasting text…" when the image read fails - Fixed crash loop when piping very large input (>10 MB) to `claude -p` via stdin - Fixed long URLs not being individually clickable on every wrapped row in fullscreen mode - Fixed `/plugin` Components panel showing "Marketplace 'inline' not found" for plugins loaded via `--plugin-dir` - Fixed MCP tool results dropping images when the server returns both structured content and content blocks - Fixed fenced code blocks inside list items carrying leading whitespace into the clipboard on copy-paste - Fixed tab navigation in `/config` stranding focus — the tab header now stays focused so arrows and Esc keep working - Fixed markdown link labels being lost on terminals without OSC 8 hyperlink support — links now render as `label (url)` instead of just the URL - Fixed sessions on 1M-context models with a smaller autocompact window being falsely blocked with "Prompt is too long" before reaching the actual API limit - Fixed parallel shell tool calls: a failing read-only command (grep, git diff, ls) no longer cancels sibling calls - Fixed banner showing "with X effort" on models that don't support effort - Fixed `/fast` on 3P providers fuzzy-matching to an unrelated skill instead of showing "not available" - Fixed Bedrock default model resolving to `global.*` instead of the region-appropriate prefix - Fixed vim mode: `Space` in NORMAL mode now moves the cursor right, matching standard vi/vim behavior - Fixed terminal progress indicator (OSC 9;4) flickering off between tool calls — stays visible across the full turn - Fixed `/rename` without args failing on resumed sessions whose last entry is a compact boundary - Fixed stale "remote-control is active" status lines from prior sessions appearing after `--resume`/`--continue` - Fixed stale `installed_plugins.json` entries pointing at deleted cache directories polluting PATH - Fixed MCP stdio servers receiving corrupted arguments when `CLAUDE_CODE_SHELL_PREFIX` is set and an argument contains spaces or shell metacharacters - Fixed sub-agent progress summaries missing the prompt cache (~3× `cache_creation` reduction) - Fixed `/plugin update` never detecting new versions of npm-sourced plugins - Fixed sub-agent summaries firing repeatedly while a sub-agent's transcript is static, capping worst-case token cost on idle sub-agents - Headless `--output-format stream-json`: `init.plugin_errors` now includes `--plugin-dir` load failures in addition to dependency demotions
v2.1.126修复OAuth认证重试循环问题
- 修复设置CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1时OAuth陷入401重试循环
## 2.1.126 - The `/model` picker now lists models from your gateway's `/v1/models` endpoint when `ANTHROPIC_BASE_URL` points at an Anthropic-compatible gateway - - Added `claude project purge [path]` to delete all Claude Code state for a project (transcripts, tasks, file history, config entry) — supports `--dry-run`, `-y/--yes`, `-i/--interactive`, and `--all` - `--dangerously-skip-permissions` now bypasses prompts for writes to `.claude/`, `.git/`, `.vscode/`, shell config files, and other previously-protected paths (catastrophic removal commands still prompt as a safety net) - `claude auth login` now accepts the OAuth code pasted into the terminal when the browser callback can't reach localhost (WSL2, SSH, containers) - `claude_code.skill_activated` OpenTelemetry event now fires for user-typed slash commands and carries a new `invocation_trigger` attribute (`"user-slash"`, `"claude-proactive"`, or `"nested-skill"`) - Auto mode: the spinner now turns red when a permission check stalls, instead of looking like the tool is running - Host-managed deployments (`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`) no longer auto-disable analytics on Bedrock/Vertex/Foundry - Windows: PowerShell 7 installed via the Microsoft Store, MSI without PATH, or `.NET global tool` is now detected - Windows: when the PowerShell tool is enabled, Claude now treats PowerShell as the primary shell instead of defaulting to Bash - Read tool: removed the per-file malware-assessment reminder that could cause spurious refusals and "this is not malware" commentary on legacy models - **Security:** Fixed `allowManagedDomainsOnly` / `allowManagedReadPathsOnly` being ignored when a higher-priority managed-settings source lacked a `sandbox` block - Fixed pasting an image larger than 2000px breaking the session — images are now downscaled on paste, and oversized images in history are automatically removed and the request retried - Fixed showing the login screen for "OAuth not allowed for organization" errors — now shows guidance to contact your admin - Fixed OAuth login failing with timeout on slow or proxied connections, in IPv6-only devcontainers, and when the browser callback can't reach localhost - Fixed a rare race where a concurrent credential write could clear a valid OAuth refresh token - Fixed API retry countdown sticking at "0s" instead of counting down between attempts - Fixed "Stream idle timeout" error after waking Mac from sleep mid-request - Fixed background and remote sessions falsely aborting with "Stream idle timeout" during long model thinking pauses - Fixed a hang where the assistant could finish thinking but show no output after a run of empty turns - Fixed overly fast trackpad scrolling in Cursor and VS Code 1.92–1.104 integrated terminals - Fixed claude.ai MCP connectors being suppressed by manual servers stuck in needs-auth state - Fixed Japanese/Korean/Chinese text rendering as garbled characters on Windows in no-flicker mode - Fixed `Ctrl+L` clearing the prompt input — it now only forces a screen redraw, matching readline behavior - Fixed deferred tools (WebSearch, WebFetch, etc.) not being available to skills with `context: fork` and other subagents on their first turn - Fixed plan-mode tools being unavailable in interactive sessions launched with `--channels` - Fixed `/plugin` Uninstall reporting "Enabled" instead of "Uninstalled" - Bounded total size of file-modified reminders when a linter touches many files at once - Fixed `/remote-control` retries appearing stuck on "connecting…" — each retry now shows its result - Fixed Remote Control failure notification not showing the error reason for initial connection failures - Windows: clipboard writes no longer expose copied content in process command-line arguments visible to EDR/SIEM telemetry; also fixes >22KB selections not reaching the clipboard - PowerShell tool: bare `--` (e.g. `git diff -- file`) is no longer mis-flagged as the `--%` stop-parsing token - Fixed Agent SDK hang when the model emits a malformed tool name in a parallel tool call batch
v2.1.123支持Bedrock服务层和PR URL会话搜索
- 添加ANTHROPIC_BEDROCK_SERVICE_TIER环变选择Bedrock服务层(default/flex/priority)
- /resume搜索框支持粘贴PR URL查找创建该PR的会话
- /mcp显示被手动服务器隐藏的claude.ai连接器及去重提示
- 修复/branch产生失败fork的tool_use_ids校验错误
## 2.1.123 - Fixed OAuth authentication failing with a 401 retry loop when `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` is set
v2.1.122MCP alwaysLoad选项和全屏滚动改进
- MCP server config添加alwaysLoad选项跳过工具搜索延迟使工具始终可用
- 添加claude plugin prune清理孤立的自动安装插件依赖
- 全屏模式:输入提示时不再自动跳回底部,支持向上滚读历史
- 修复处理大量图像时的多GB内存泄漏及会话恢复时的内存溢出
## 2.1.122 - Added `ANTHROPIC_BEDROCK_SERVICE_TIER` environment variable to select a Bedrock service tier (`default`, `flex`, or `priority`), sent as the `X-Amzn-Bedrock-Service-Tier` header - Pasting a PR URL into the `/resume` search box now finds the session that created that PR (GitHub, GitHub Enterprise, GitLab, and Bitbucket) - `/mcp` now shows claude.ai connectors hidden by a manually-added server with the same URL, with a hint to remove the duplicate - Clarified the `/mcp` message shown when an MCP server is still unauthorized after the browser sign-in flow - OpenTelemetry: numeric attributes on `api_request`/`api_error` log events are now emitted as numbers, not strings - OpenTelemetry: added `claude_code.at_mention` log event for `@`-mention resolution - Fixed `/branch` producing forks that fail with "tool_use ids were found without tool_result blocks" when the source session contained entries from rewound timelines - Fixed `/model` not showing the Effort option for Bedrock application inference profile ARNs, and those ARNs not receiving `output_config.effort` - Fixed Vertex AI / Bedrock returning `invalid_request_error: output_config: Extra inputs are not permitted` on session-title generation and other structured-output queries - Fixed Vertex AI `count_tokens` endpoint returning 400 errors for users behind proxy gateways - Fixed `spinnerTipsOverride.excludeDefault` not suppressing the time-based spinner tips - Fixed ToolSearch missing MCP tools that connected after session start in nonblocking mode - Fixed `!exit` / `!quit` in bash mode terminating the CLI instead of running as a shell command - Fixed images sent to newer models being resized to 2576px per side instead of the correct 2000px maximum - Fixed remote control session idle status redrawing twice per second, which could flood `tmux -CC` control pipes and pause the terminal - Fixed assistant messages appearing blank in some sessions due to a stale view preference - Fixed a malformed hooks entry in `settings.json` no longer invalidating the entire file - Voice mode: keybindings bound to Caps Lock now show an error since terminals don't deliver Caps Lock as a key event
v2.1.121多项工具链增强与内存泄漏修复
- MCP servers 新增 alwaysLoad 配置和自动重试机制,提升连接稳定性
- 修复多处内存泄漏问题,优化大文件处理和长会话性能
- 全屏模式交互改进:支持动态滚动、URL 点击、对话框键盘导航
- PostToolUse hooks 扩展为所有工具支持输出替换,提升自定义能力
## 2.1.121 - Added `alwaysLoad` option to MCP server config — when `true`, all tools from that server skip tool-search deferral and are always available - Added `claude plugin prune` to remove orphaned auto-installed plugin dependencies; `plugin uninstall --prune` cascades - Added a type-to-filter search box to `/skills` so you can find a skill in long lists without scrolling - PostToolUse hooks can now replace tool output for all tools via `hookSpecificOutput.updatedToolOutput` (previously MCP-only) - Fullscreen mode: typing into the prompt no longer jumps scroll back to the bottom after you've scrolled up to read earlier output - Dialogs that overflow the terminal are now scrollable with arrow keys, PgUp/PgDn, home/end, and mouse wheel in both fullscreen and non-fullscreen modes - Clicking any line of a long URL that wraps across rows in fullscreen mode now opens the full URL - SDK and `claude -p`: `CLAUDE_CODE_FORK_SUBAGENT=1` now works in non-interactive sessions - `--dangerously-skip-permissions` no longer prompts for writes to `.claude/skills/`, `.claude/agents/`, and `.claude/commands/` - `/terminal-setup` now enables iTerm2's "Applications in terminal may access clipboard" setting so `/copy` works, including from tmux - MCP servers that hit a transient error during startup now auto-retry up to 3 times instead of staying disconnected - The terminal tab session title is now generated in your configured `language` setting - Claude.ai connectors with the same upstream URL are now deduplicated instead of appearing as duplicates - Vertex AI: support X.509 certificate-based Workload Identity Federation (mTLS ADC) - Faster startup after upgrading: removed the Recent Activity panel from the release-notes splash - LSP diagnostic summaries now expand on click/ctrl+o and show the expand hint - SDK: `mcp_authenticate` now supports `redirectUri` for custom scheme completion and claude.ai connectors - OpenTelemetry: added `stop_reason`, `gen_ai.response.finish_reasons`, and `user_system_prompt` (gated behind `OTEL_LOG_USER_PROMPTS`) to LLM request spans - [VSCode] Voice dictation now respects the `accessibility.voice.speechLanguage` setting when no Claude Code language is configured - [VSCode] `/context` now opens a native token usage dialog - Fixed unbounded memory growth (multi-GB RSS) when processing many images in a session - Fixed `/usage` leaking up to ~2GB of memory on machines with large transcript histories - Fixed memory leak when long-running tools fail to emit a clear progress event - Fixed Bash tool becoming permanently unusable when the directory Claude was started in is deleted or moved mid-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 failing with duplicate or unsupported `prompt` parameter - Fixed scrollback duplication when pressing Ctrl+L or triggering a redraw in non-fullscreen mode on tmux, GNOME Terminal, Windows Terminal, and Konsole - Fixed claude.ai MCP connectors silently disappearing when the connector-list fetch hits a transient auth error at startup - Fixed "Always allow" rules for built-in tools in remote sessions not surviving worker restarts - Fixed `NO_PROXY` not being respected for all HTTP clients when set via `managed-settings.json` under the native build - Fixed managed settings approval prompt exiting the session even when accepted — now applies settings and continues - Fixed `/usage` returning "rate limited" after a stale OAuth token — now refreshes automatically - Fixed invalid legacy enum values in `settings.json` invalidating the entire settings file - Fixed `/usage` dialog content being clipped when no-flicker mode is off - Fixed `/focus` showing "Unknown command" when the fullscreen renderer is off — now explains how to enable it - Fixed embedded grep/find/rg shell wrappers failing when the running binary is deleted mid-session — now falls back to installed tools - Reduced peak file descriptor usage during `find` in the Bash tool on large directory trees
v2.1.120Windows支持PowerShell、ultrareview子命令、修复
- Windows 上 Git Bash 可选,自动使用 PowerShell 作为 shell 工具
- 新增
claude ultrareview [target]子命令,支持 CI 非交互模式运行,输出到 stdout - Skills 可使用 ${CLAUDE_EFFORT} 引用当前努力级别
- 修复 Esc 期间 MCP 工具调用导致服务器连接关闭的回归问题
## 2.1.120
- Windows: Git for Windows (Git Bash) is no longer required — when absent, Claude Code uses PowerShell as the shell tool
- Added `claude ultrareview [target]` subcommand to run `/ultrareview` non-interactively from CI or scripts — prints findings to stdout (`--json` for raw output) and exits 0 on completion or 1 on failure
- Skills can now reference the current effort level with `${CLAUDE_EFFORT}` in their content
- Set `AI_AGENT` environment variable for subprocesses so `gh` can attribute traffic to Claude Code
- Spinner tips that recommend installing the desktop app or creating skills/agents are now hidden when you already have them
- Show a "use PgUp/PgDn to scroll" hint when the terminal sends arrow keys instead of scroll events
- Faster session start when you have many claude.ai connectors configured but not authorized
- The auto mode denial message now links to the configuration docs
- `claude plugin validate` now accepts `$schema`, `version`, and `description` at the top level of `marketplace.json` and `$schema` in `plugin.json`
- Auto-compact in auto mode now displays `auto` (lowercase, no token count) instead of a misleading token value
- Fixed pressing Esc during a stdio MCP tool call closing the entire server connection (regression in 2.1.105)
- Fixed `/rewind` and other interactive overlays not responding to keyboard input after launching with `claude --resume`
- Fixed terminal scrollback duplication in non-fullscreen mode (resize, dialog dismiss, long sessions)
- Fixed `DISABLE_TELEMETRY` / `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` not suppressing usage metrics telemetry for API and enterprise users
- Fixed false-positive "Dangerous rm operation" permission prompts in auto mode for multi-line bash commands containing both a pipe and a redirect
- Fixed long selection menus clipping below the terminal in fullscreen mode — the focused option now stays on screen as you scroll
- Fixed Write tool output collapsing instead of expanding when clicking "+N lines" in fullscreen
- Fixed slash command picker jumping while typing, and improved highlight to only match contiguous substrings in blue
- Fixed `/plugin` marketplace failing to load when one entry uses an unrecognized source format — that entry is shown but installing it prompts you to update
- [VSCode] `/usage` now opens the native Account & Usage dialog instead of returning plain-text session cost
- [VSCode] Voice dictation now respects the `language` setting in `~/.claude/settings.json`
- Fixed `find` in the Bash tool exhausting open file descriptors on large directory trees, causing host-wide crashes (macOS/Linux native builds)v2.1.110-1199 个版本 · 9 已摘要
v2.1.119配置持久化、支持多平台 PR URL、性能改进
- /config 设置存储到 ~/.claude/settings.json,支持项目/本地/策略三级覆盖
- --from-pr 现支持 GitLab MR、Bitbucket PR、GitHub Enterprise 链接
- 修复粘贴 CRLF 内容(Windows 剪贴板、Xcode 控制台)插入多余空行的问题
- 修复 MCP HTTP OAuth 发现请求处理非 JSON 响应时失败
## 2.1.119
- `/config` settings (theme, editor mode, verbose, etc.) now persist to `~/.claude/settings.json` and participate in project/local/policy override precedence
- Added `prUrlTemplate` setting to point the footer PR badge at a custom code-review URL instead of github.com
- Added `CLAUDE_CODE_HIDE_CWD` environment variable to hide the working directory in the startup logo
- `--from-pr` now accepts GitLab merge-request, Bitbucket pull-request, and GitHub Enterprise PR URLs
- `--print` mode now honors the agent's `tools:` and `disallowedTools:` frontmatter, matching interactive-mode behavior
- `--agent <name>` now honors the agent definition's `permissionMode` for built-in agents
- PowerShell tool commands can now be auto-approved in permission mode, matching Bash behavior
- Hooks: `PostToolUse` and `PostToolUseFailure` hook inputs now include `duration_ms` (tool execution time, excluding permission prompts and PreToolUse hooks)
- Subagent and SDK MCP server reconfiguration now connects servers in parallel instead of serially
- Plugins pinned by another plugin's version constraint now auto-update to the highest satisfying git tag
- Vim mode: Esc in INSERT no longer pulls a queued message back into the input; press Esc again to interrupt
- Slash command suggestions now highlight the characters that matched your query
- Slash command picker now wraps long descriptions onto a second line instead of truncating
- `owner/repo#N` shorthand links in output now use your git remote's host instead of always pointing at github.com
- Security: `blockedMarketplaces` now correctly enforces `hostPattern` and `pathPattern` entries
- OpenTelemetry: `tool_result` and `tool_decision` events now include `tool_use_id`; `tool_result` also includes `tool_input_size_bytes`
- Status line: stdin JSON now includes `effort.level` and `thinking.enabled`
- Fixed pasting CRLF content (Windows clipboards, Xcode console) inserting an extra blank line between every line
- Fixed multi-line paste losing newlines in terminals using kitty keyboard protocol sequences inside bracketed paste
- Fixed Glob and Grep tools disappearing on native macOS/Linux builds when the Bash tool is denied via permissions
- Fixed scrolling up in fullscreen mode snapping back to the bottom every time a tool finishes
- Fixed MCP HTTP connections failing with "Invalid OAuth error response" when servers returned non-JSON bodies for OAuth discovery requests
- Fixed Rewind overlay showing "(no prompt)" for messages with image attachments
- Fixed auto mode overriding plan mode with conflicting "Execute immediately" instructions
- Fixed async `PostToolUse` hooks that emit no response payload writing empty entries to the session transcript
- Fixed spinner staying on when a subagent task notification is orphaned in the queue
- Tool search is now disabled by default on Vertex AI to avoid an unsupported beta header error (opt in with `ENABLE_TOOL_SEARCH`)
- Fixed `@`-file Tab completion replacing the entire prompt when used inside a slash command with an absolute path
- Fixed a stray `p` character appearing at the prompt on startup in macOS Terminal.app via Docker or SSH
- Fixed `${ENV_VAR}` placeholders in `headers` for HTTP/SSE/WebSocket MCP servers not being substituted before requests
- Fixed MCP OAuth client secret stored via `--client-secret` not being sent during token exchange for servers requiring `client_secret_post`
- Fixed `/skills` Enter key closing the dialog instead of pre-filling `/<skill-name>` in the prompt
- Fixed `/agents` detail view mislabeling built-in tools unavailable to subagents as "Unrecognized"
- Fixed MCP servers from plugins not spawning on Windows when the plugin cache was incomplete
- Fixed `/export` showing the current default model instead of the model the conversation actually used
- Fixed verbose output setting not persisting after restart
- Fixed `/usage` progress bars overlapping with their "Resets …" labels
- Fixed plugin MCP servers failing when `${user_config.*}` references an optional field left blank
- Fixed list items containing a sentence-final number wrapping the number onto its own line
- Fixed `/plan` and `/plan open` not acting on the existing plan when entering plan mode
- Fixed skills invoked before auto-compaction being re-executed against the next user message
- Fixed `/reload-plugins` and `/doctor` reporting load errors for disabled plugins
- Fixed Agent tool with `isolation: "worktree"` reusing stale worktrees from prior sessions
- Fixed disabled MCP servers appearing as "failed" in `/status`
- Fixed `TaskList` returning tasks in arbitrary filesystem order instead of sorted by ID
- Fixed spurious "GitHub API rate limit exceeded" hints when `gh` output contained PR titles mentioning "rate limit"
- Fixed SDK/bridge `read_file` not correctly enforcing size cap on growing files
- Fixed PR not linked to session when working in a git worktree
- Fixed `/doctor` warning about MCP server entries overridden by a higher-precedence scope
- Windows: removed false-positive "Windows requires 'cmd /c' wrapper" MCP config warning
- [VSCode] Fixed voice dictation's first recording producing nothing on macOS while the microphone permission prompt is showingv2.1.118Vim 视觉模式、主题自定义、/usage 命令、Hook 增强
- 新增 Vim 视觉模式(
v和V),支持选择、操作符和视觉反馈 - /cost 和 /stats 合并为 /usage,两个快捷方式仍可用
- 支持从 /theme 创建和切换自定义主题,插件可内置主题
- Hook 支持
type: "mcp_tool"直接调用 MCP 工具
## 2.1.118 - Added vim visual mode (`v`) and visual-line mode (`V`) with selection, operators, and visual feedback - Merged `/cost` and `/stats` into `/usage` — both remain as typing shortcuts that open the relevant tab - Create and switch between named custom themes from `/theme`, or hand-edit JSON files in `~/.claude/themes/`; plugins can also ship themes via a `themes/` directory - Hooks can now invoke MCP tools directly via `type: "mcp_tool"` - Added `DISABLE_UPDATES` env var to completely block all update paths including manual `claude update` — stricter than `DISABLE_AUTOUPDATER` - WSL on Windows can now inherit Windows-side managed settings via the `wslInheritsWindowsSettings` policy key - Auto mode: include `"$defaults"` in `autoMode.allow`, `autoMode.soft_deny`, or `autoMode.environment` to add custom rules alongside the built-in list instead of replacing it - Added a "Don't ask again" option to the auto mode opt-in prompt - Added `claude plugin tag` to create release git tags for plugins with version validation - `--continue`/`--resume` now find sessions that added the current directory via `/add-dir` - `/color` now syncs the session accent color to claude.ai/code when Remote Control is connected - The `/model` picker now honors `ANTHROPIC_DEFAULT_*_MODEL_NAME`/`_DESCRIPTION` overrides when using a custom `ANTHROPIC_BASE_URL` gateway - When auto-update skips a plugin due to another plugin's version constraint, the skip now appears in `/doctor` and the `/plugin` Errors tab - Fixed `/mcp` menu hiding OAuth Authenticate/Re-authenticate actions for servers configured with `headersHelper`, and HTTP/SSE MCP servers with custom headers being stuck in "needs authentication" after a transient 401 - Fixed MCP servers whose OAuth token response omits `expires_in` requiring re-authentication every hour - Fixed MCP step-up authorization silently refreshing instead of prompting for re-consent when the server's `insufficient_scope` 403 names a scope the current token already has - Fixed an unhandled promise rejection when an MCP server's OAuth flow times out or is cancelled - Fixed MCP OAuth refresh proceeding without its cross-process lock under contention - Fixed macOS keychain race where a concurrent MCP token refresh could overwrite a freshly-refreshed OAuth token, causing unexpected "Please run /login" prompts - Fixed OAuth token refresh failing when the server revokes a token before its local expiry time - Fixed credential save crash on Linux/Windows corrupting `~/.claude/.credentials.json` - Fixed `/login` having no effect in a session launched with `CLAUDE_CODE_OAUTH_TOKEN` — the env token is now cleared so disk credentials take effect - Fixed unreadable text in the "new messages" scroll pill and `/plugin` badges - Fixed plan acceptance dialog offering "auto mode" instead of "bypass permissions" when running with `--dangerously-skip-permissions` - Fixed agent-type hooks failing with "Messages are required for agent hooks" when configured for events other than `Stop` or `SubagentStop` - Fixed `prompt` hooks re-firing on tool calls made by an agent-hook verifier subagent - Fixed `/fork` writing the full parent conversation to disk per fork — now writes a pointer and hydrates on read - Fixed Alt+K / Alt+X / Alt+^ / Alt+_ freezing keyboard input - Fixed connecting to a remote session overwriting your local `model` setting in `~/.claude/settings.json` - Fixed typeahead showing "No commands match" error when pasting file paths that start with `/` - Fixed `plugin install` on an already-installed plugin not re-resolving a dependency installed at the wrong version - Fixed unhandled errors from file watcher on invalid paths or fd exhaustion - Fixed Remote Control sessions getting archived on transient CCR initialization blips during JWT refresh - Fixed subagents resumed via `SendMessage` not restoring the explicit `cwd` they were spawned with
v2.1.117Forked subagents、Agent MCP 支持、性能优化
- Forked subagents 可设置
CLAUDE_CODE_FORK_SUBAGENT=1在外部构建启用 - Agent 前置 mcpServers 现支持主线程 agent 会话(via
--agent) - 启动时加载多个本地/claude.ai MCP 服务器并发执行,速度更快
- 修复 Opus 4.7 /context 百分比膨胀和过早自动压缩的问题
## 2.1.117 - Forked subagents can now be enabled on external builds by setting `CLAUDE_CODE_FORK_SUBAGENT=1` - Agent frontmatter `mcpServers` are now loaded for main-thread agent sessions via `--agent` - Improved `/model`: selections now persist across restarts even when the project pins a different model, and the startup header shows when the active model comes from a project or managed-settings pin - The `/resume` command now offers to summarize stale, large sessions before re-reading them, matching the existing `--resume` behavior - Faster startup when both local and claude.ai MCP servers are configured (concurrent connect now default) - `plugin install` on an already-installed plugin now installs any missing dependencies instead of stopping at "already installed" - Plugin dependency errors now say "not installed" with an install hint, and `claude plugin marketplace add` now auto-resolves missing dependencies from configured marketplaces - Managed-settings `blockedMarketplaces` and `strictKnownMarketplaces` are now enforced on plugin install, update, refresh, and autoupdate - Advisor Tool (experimental): dialog now carries an "experimental" label, learn-more link, and startup notification when enabled; sessions no longer get stuck with "Advisor tool result content could not be processed" errors on every prompt and `/compact` - The `cleanupPeriodDays` retention sweep now also covers `~/.claude/tasks/`, `~/.claude/shell-snapshots/`, and `~/.claude/backups/` - OpenTelemetry: `user_prompt` events now include `command_name` and `command_source` for slash commands; `cost.usage`, `token.usage`, `api_request`, and `api_error` now include an `effort` attribute when the model supports effort levels. Custom/MCP command names are redacted unless `OTEL_LOG_TOOL_DETAILS=1` is set - Native builds on macOS and Linux: the `Glob` and `Grep` tools are replaced by embedded `bfs` and `ugrep` available through the Bash tool — faster searches without a separate tool round-trip (Windows and npm-installed builds unchanged) - Windows: cached `where.exe` executable lookups per process for faster subprocess launches - Default effort for Pro/Max subscribers on Opus 4.6 and Sonnet 4.6 is now `high` (was `medium`) - Fixed Plain-CLI OAuth sessions dying with "Please run /login" when the access token expires mid-session — the token is now refreshed reactively on 401 - Fixed `WebFetch` hanging on very large HTML pages by truncating input before HTML-to-markdown conversion - Fixed a crash when a proxy returns HTTP 204 No Content — now surfaces a clear error instead of a `TypeError` - Fixed `/login` having no effect when launched with `CLAUDE_CODE_OAUTH_TOKEN` env var and that token expires - Fixed prompt-input undo (`Ctrl+_`) doing nothing immediately after typing, and skipping a state on each undo step - Fixed `NO_PROXY` not being respected for remote API requests when running under Bun - Fixed rare spurious escape/return triggers when key names arrive as coalesced text over slow connections - Fixed SDK `reload_plugins` reconnecting all user MCP servers serially - Fixed Bedrock application-inference-profile requests failing with 400 when backed by Opus 4.7 with thinking disabled - Fixed MCP `elicitation/create` requests auto-cancelling in print/SDK mode when the server finishes connecting mid-turn - Fixed subagents running a different model than the main agent incorrectly flagging file reads with a malware warning - Fixed idle re-render loop when background tasks are present, reducing memory growth on Linux - [VSCode] Fixed "Manage Plugins" panel breaking when multiple large marketplaces are configured - Fixed Opus 4.7 sessions showing inflated `/context` percentages and autocompacting too early — Claude Code was computing against a 200K context window instead of Opus 4.7's native 1M
v2.1.116大会话加速、滚动优化、思考进度、多项修复
- /resume 大会话速度提升最高 67%,处理超过 50MB 会话更高效
- VS Code/Cursor/Windsurf 全屏滚动更顺畅,新增滚动敏感度配置
- Thinking spinner 内联显示进度("still thinking"、"thinking more"、"almost done thinking")
- /config 搜索现支持匹配选项值,/doctor 可在响应期间打开
## 2.1.116
- `/resume` on large sessions is significantly faster (up to 67% on 40MB+ sessions) and handles sessions with many dead-fork entries more efficiently
- Faster MCP startup when multiple stdio servers are configured; `resources/templates/list` is now deferred to first `@`-mention
- Smoother fullscreen scrolling in VS Code, Cursor, and Windsurf terminals — `/terminal-setup` now configures the editor's scroll sensitivity
- Thinking spinner now shows progress inline ("still thinking", "thinking more", "almost done thinking"), replacing the separate hint row
- `/config` search now matches option values (e.g. searching "vim" finds the Editor mode setting)
- `/doctor` can now be opened while Claude is responding, without waiting for the current turn to finish
- `/reload-plugins` and background plugin auto-update now auto-install missing plugin dependencies from marketplaces you've already added
- Bash tool now surfaces a hint when `gh` commands hit GitHub's API rate limit, so agents can back off instead of retrying
- The Usage tab in Settings now shows your 5-hour and weekly usage immediately and no longer fails when the usage endpoint is rate-limited
- Agent frontmatter `hooks:` now fire when running as a main-thread agent via `--agent`
- Slash command menu now shows "No commands match" when your filter has zero results, instead of disappearing
- Security: sandbox auto-allow no longer bypasses the dangerous-path safety check for `rm`/`rmdir` targeting `/`, `$HOME`, or other critical system directories
- Claude Code and installer now use `https://downloads.claude.ai/claude-code-releases` instead of `https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases`
- Fixed Devanagari and other Indic scripts rendering with broken column alignment in the terminal UI
- Fixed Ctrl+- not triggering undo in terminals using the Kitty keyboard protocol (iTerm2, Ghostty, kitty, WezTerm, Windows Terminal)
- Fixed Cmd+Left/Right not jumping to line start/end in terminals that use the Kitty keyboard protocol (Warp fullscreen, kitty, Ghostty, WezTerm)
- Fixed Ctrl+Z hanging the terminal when Claude Code is launched via a wrapper process (e.g. `npx`, `bun run`)
- Fixed scrollback duplication in inline mode where resizing the terminal or large output bursts would repeat earlier conversation history
- Fixed modal search dialogs overflowing the screen at short terminal heights, hiding the search box and keyboard hints
- Fixed scattered blank cells and disappearing composer chrome in the VS Code integrated terminal during scrolling
- Fixed an intermittent API 400 error related to cache control TTL ordering that could occur when a parallel request completed during request setup
- Fixed `/branch` rejecting conversations with transcripts larger than 50MB
- Fixed `/resume` silently showing an empty conversation on large session files instead of reporting the load error
- Fixed `/plugin` Installed tab showing the same item twice when it appears under Needs attention or Favorites
- Fixed `/update` and `/tui` not working after entering a worktree mid-sessionv2.1.114权限对话框 agent 请求崩溃修复
- 修复 agent 团队成员请求工具权限时权限对话框崩溃
## 2.1.114 - Fixed a crash in the permission dialog when an agent teams teammate requested tool permission
v2.1.113本地二进制、域名黑名单、键盘快捷键增强
- CLI 改用平台特定本地二进制而非 bundled JavaScript,性能更优
- 支持
sandbox.network.deniedDomains黑名单,可阻止特定域名 - Ctrl+A/E 移到当前逻辑行开始/结束(readline 行为),Windows 新增 Ctrl+Backspace 删除前一词
- 修复 MCP 并发调用超时处理中的消息互扰问题
## 2.1.113
- Changed the CLI to spawn a native Claude Code binary (via a per-platform optional dependency) instead of bundled JavaScript
- Added `sandbox.network.deniedDomains` setting to block specific domains even when a broader `allowedDomains` wildcard would otherwise permit them
- Fullscreen mode: Shift+↑/↓ now scrolls the viewport when extending a selection past the visible edge
- `Ctrl+A` and `Ctrl+E` now move to the start/end of the current logical line in multiline input, matching readline behavior
- Windows: `Ctrl+Backspace` now deletes the previous word
- Long URLs in responses and bash output stay clickable when they wrap across lines (in terminals with OSC 8 hyperlinks)
- Improved `/loop`: pressing Esc now cancels pending wakeups, and wakeups display as "Claude resuming /loop wakeup" for clarity
- `/extra-usage` now works from Remote Control (mobile/web) clients
- Remote Control clients can now query `@`-file autocomplete suggestions
- Improved `/ultrareview`: faster launch with parallelized checks, diffstat in the launch dialog, and animated launching state
- Subagents that stall mid-stream now fail with a clear error after 10 minutes instead of hanging silently
- Bash tool: multi-line commands whose first line is a comment now show the full command in the transcript, closing a UI-spoofing vector
- Running `cd <current-directory> && git …` no longer triggers a permission prompt when the `cd` is a no-op
- Security: on macOS, `/private/{etc,var,tmp,home}` paths are now treated as dangerous removal targets under `Bash(rm:*)` allow rules
- Security: Bash deny rules now match commands wrapped in `env`/`sudo`/`watch`/`ionice`/`setsid` and similar exec wrappers
- Security: `Bash(find:*)` allow rules no longer auto-approve `find -exec`/`-delete`
- Fixed MCP concurrent-call timeout handling where a message for one tool call could silently disarm another call's watchdog
- Fixed Cmd-backspace / `Ctrl+U` to once again delete from the cursor to the start of the line
- Fixed markdown tables breaking when a cell contains an inline code span with a pipe character
- Fixed session recap auto-firing while composing unsent text in the prompt
- Fixed `/copy` "Full response" not aligning markdown table columns for pasting into GitHub, Notion, or Slack
- Fixed messages typed while viewing a running subagent being hidden from its transcript and misattributed to the parent AI
- Fixed Bash `dangerouslyDisableSandbox` running commands outside the sandbox without a permission prompt
- Fixed `/effort auto` confirmation — now says "Effort level set to max" to match the status bar label
- Fixed the "copied N chars" toast overcounting emoji and other multi-code-unit characters
- Fixed `/insights` crashing with `EBUSY` on Windows
- Fixed exit confirmation dialog mislabeling one-shot scheduled tasks as recurring — now shows a countdown
- Fixed slash/@ completion menu not sitting flush against the prompt border in fullscreen mode
- Fixed `CLAUDE_CODE_EXTRA_BODY` `output_config.effort` causing 400 errors on subagent calls to models that don't support effort and on Vertex AI
- Fixed prompt cursor disappearing when `NO_COLOR` is set
- Fixed `ToolSearch` ranking so pasted MCP tool names surface the actual tool instead of description-matching siblings
- Fixed compacting a resumed long-context session failing with "Extra usage is required for long context requests"
- Fixed `plugin install` succeeding when a dependency version conflicts with an already-installed plugin — now reports `range-conflict`
- Fixed "Refine with Ultraplan" not showing the remote session URL in the transcript
- Fixed SDK image content blocks that fail to process crashing the session — now degrade to a text placeholder
- Fixed Remote Control sessions not streaming subagent transcripts
- Fixed Remote Control sessions not being archived when Claude Code exits
- Fixed `thinking.type.enabled is not supported` 400 error when using Opus 4.7 via a Bedrock Application Inference Profile ARNv2.1.112修复 auto 模式 Opus 可用性问题
- 修复 auto 模式下 Opus 4.7 暂时不可用的错误
## 2.1.112 - Fixed "claude-opus-4-7 is temporarily unavailable" for auto mode
v2.1.111Opus 4.7新智能级
- Opus 4.7引入xhigh智能级,通过/effort动态调整速度与能力
- 新增/ultrareview多智能体并行代码审查
- 权限提示优化,glob模式和cd命令无需频繁确认
- 计划文件采用提示词命名更易识别会话
## 2.1.111 - Claude Opus 4.7 xhigh is now available! Use /effort to tune speed vs. intelligence - Auto mode is now available for Max subscribers when using Opus 4.7 - Added `xhigh` effort level for Opus 4.7, sitting between `high` and `max`. Available via `/effort`, `--effort`, and the model picker; other models fall back to `high` - `/effort` now opens an interactive slider when called without arguments, with arrow-key navigation between levels and Enter to confirm - Added "Auto (match terminal)" theme option that matches your terminal's dark/light mode — select it from `/theme` - Added `/less-permission-prompts` skill — scans transcripts for common read-only Bash and MCP tool calls and proposes a prioritized allowlist for `.claude/settings.json` - Added `/ultrareview` for running comprehensive code review in the cloud using parallel multi-agent analysis and critique — invoke with no arguments to review your current branch, or `/ultrareview <PR#>` to fetch and review a specific GitHub PR - Auto mode no longer requires `--enable-auto-mode` - Windows: PowerShell tool is progressively rolling out. Opt in or out with `CLAUDE_CODE_USE_POWERSHELL_TOOL`. On Linux and macOS, enable with `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` (requires `pwsh` on PATH) - Read-only bash commands with glob patterns (e.g. `ls *.ts`) and commands starting with `cd <project-dir> &&` no longer trigger a permission prompt - Suggest the closest matching subcommand when `claude <word>` is invoked with a near-miss typo (e.g. `claude udpate` → "Did you mean `claude update`?") - Plan files are now named after your prompt (e.g. `fix-auth-race-snug-otter.md`) instead of purely random words - Improved `/setup-vertex` and `/setup-bedrock` to show the actual `settings.json` path when `CLAUDE_CONFIG_DIR` is set, seed model candidates from existing pins on re-run, and offer a "with 1M context" option for supported models - `/skills` menu now supports sorting by estimated token count — press `t` to toggle - `Ctrl+U` now clears the entire input buffer (previously: delete to start of line); press `Ctrl+Y` to restore - `Ctrl+L` now forces a full screen redraw in addition to clearing the prompt input - Transcript view footer now shows `[` (dump to scrollback) and `v` (open in editor) shortcuts - The "+N lines" marker for truncated long pastes is now a full-width rule for easier scanning - Headless `--output-format stream-json` now includes `plugin_errors` on the init event when plugins are demoted for unsatisfied dependencies - Added `OTEL_LOG_RAW_API_BODIES` environment variable to emit full API request and response bodies as OpenTelemetry log events for debugging - Suppressed spurious decompression, network, and transient error messages that could appear in the TUI during normal operation - Reverted the v2.1.110 cap on non-streaming fallback retries — it traded long waits for more outright failures during API overload - Fixed terminal display tearing (random characters, drifting input) in iTerm2 + tmux setups when terminal notifications are sent - Fixed `@` file suggestions re-scanning the entire project on every turn in non-git working directories, and showing only config files in freshly-initialized git repos with no tracked files - Fixed LSP diagnostics from before an edit appearing after it, causing the model to re-read files it just edited - Fixed tab-completing `/resume` immediately resuming an arbitrary titled session instead of showing the session picker - Fixed `/context` grid rendering with extra blank lines between rows - Fixed `/clear` dropping the session name set by `/rename`, causing statusline output to lose `session_name` - Improved plugin error handling: dependency errors now distinguish conflicting, invalid, and overly complex version requirements; fixed stale resolved versions after `plugin update`; `plugin install` now recovers from interrupted prior installs - Fixed Claude calling a non-existent `commit` skill and showing "Unknown skill: commit" for users without a custom `/commit` command - Fixed 429 rate-limit errors on Bedrock/Vertex/Foundry referencing status.claude.com (it only covers Anthropic-operated providers) - Fixed feedback surveys appearing back-to-back after dismissing one - Fixed bare URLs in bash/PowerShell/MCP tool output being unclickable when the terminal wraps them across lines - Windows: `CLAUDE_ENV_FILE` and SessionStart hook environment files now apply (previously a no-op) - Windows: permission rules with drive-letter paths are now correctly root-anchored, and paths differing only by drive-letter case are recognized as the same path
v2.1.110TUI全屏模式和推送破坏性
- /tui全屏模式提供无闪烁高效渲染
- Claude可发送移动推送通知(需Remote Control)
- 会话recap自动总结离线期间内容
- /plugin和/doctor界面大幅改进
破坏性变化
- Ctrl+O改为仅切换冗长模式,focus切换需改用/focus命令
## 2.1.110 - Added `/tui` command and `tui` setting — run `/tui fullscreen` to switch to flicker-free rendering in the same conversation - Added push notification tool — Claude can send mobile push notifications when Remote Control and "Push when Claude decides" config are enabled - Changed `Ctrl+O` to toggle between normal and verbose transcript only; focus view is now toggled separately with the new `/focus` command - Added `autoScrollEnabled` config to disable conversation auto-scroll in fullscreen mode - Added option to show Claude's last response as commented context in the `Ctrl+G` external editor (enable via `/config`) - Improved `/plugin` Installed tab — items needing attention and favorites appear at the top, disabled items are hidden behind a fold, and `f` favorites the selected item - Improved `/doctor` to warn when an MCP server is defined in multiple config scopes with different endpoints - `--resume`/`--continue` now resurrects unexpired scheduled tasks - `/context`, `/exit`, and `/reload-plugins` now work from Remote Control (mobile/web) clients - Write tool now informs the model when you edit the proposed content in the IDE diff before accepting - Bash tool now enforces the documented maximum timeout instead of accepting arbitrarily large values - SDK/headless sessions now read `TRACEPARENT`/`TRACESTATE` from the environment for distributed trace linking - Session recap is now enabled for users with telemetry disabled (Bedrock, Vertex, Foundry, `DISABLE_TELEMETRY`). Opt out via `/config` or `CLAUDE_CODE_ENABLE_AWAY_SUMMARY=0`. - Fixed MCP tool calls hanging indefinitely when the server connection drops mid-response on SSE/HTTP transports - Fixed non-streaming fallback retries causing multi-minute hangs when the API is unreachable - Fixed session recap, local slash-command output, and other system status lines not appearing in focus mode - Fixed high CPU usage in fullscreen when text is selected while a tool is running - Fixed plugin install not honoring dependencies declared in `plugin.json` when the marketplace entry omits them; `/plugin` install now lists auto-installed dependencies - Fixed skills with `disable-model-invocation: true` failing when invoked via `/<skill>` mid-message - Fixed `--resume` sometimes showing the first prompt instead of the `/rename` name for sessions still running or exited uncleanly - Fixed queued messages briefly appearing twice during multi-tool-call turns - Fixed session cleanup not removing the full session directory including subagent transcripts - Fixed dropped keystrokes after the CLI relaunches (e.g. `/tui`, provider setup wizards) - Fixed garbled startup rendering in macOS Terminal.app and other terminals that don't support synchronized output - Hardened "Open in editor" actions against command injection from untrusted filenames - Fixed `PermissionRequest` hooks returning `updatedInput` not being re-checked against `permissions.deny` rules; `setMode:'bypassPermissions'` updates now respect `disableBypassPermissionsMode` - Fixed `PreToolUse` hook `additionalContext` being dropped when the tool call fails - Fixed stdio MCP servers that print stray non-JSON lines to stdout being disconnected on the first stray line (regression in 2.1.105) - Fixed headless/SDK session auto-title firing an extra Haiku request when `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` or `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` is set - Fixed potential excessive memory allocation when piped (non-TTY) Ink output contains a single very wide line - Fixed `/skills` menu not scrolling when the list overflows the modal in fullscreen mode - Fixed Remote Control sessions showing a generic error instead of prompting for re-login when the session is too old - Fixed Remote Control session renames from claude.ai not persisting the title to the local CLI session
v2.1.100-1095 个版本 · 5 已摘要
v2.1.109思维显示优化
- 思维过程指示器显示更清晰的进度提示
## 2.1.109 - Improved the extended-thinking indicator with a rotating progress hint
v2.1.108缓存和回顾功能
- 新增1小时提示缓存TTL选项提升持久化上下文
- Recap功能自动总结离线期间重要内容
- 模型可通过Skill发现和调用斜杠命令
- 优化内存占用语法高亮按需加载
## 2.1.108 - Added `ENABLE_PROMPT_CACHING_1H` env var to opt into 1-hour prompt cache TTL on API key, Bedrock, Vertex, and Foundry (`ENABLE_PROMPT_CACHING_1H_BEDROCK` is deprecated but still honored), and `FORCE_PROMPT_CACHING_5M` to force 5-minute TTL - Added recap feature to provide context when returning to a session, configurable in `/config` and manually invocable with `/recap`; force with `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` if telemetry disabled. - The model can now discover and invoke built-in slash commands like `/init`, `/review`, and `/security-review` via the Skill tool - `/undo` is now an alias for `/rewind` - Improved `/model` to warn before switching models mid-conversation, since the next response re-reads the full history uncached - Improved `/resume` picker to default to sessions from the current directory; press `Ctrl+A` to show all projects - Improved error messages: server rate limits are now distinguished from plan usage limits; 5xx/529 errors show a link to status.claude.com; unknown slash commands suggest the closest match - Reduced memory footprint for file reads, edits, and syntax highlighting by loading language grammars on demand - Added "verbose" indicator when viewing the detailed transcript (`Ctrl+O`) - Added a warning at startup when prompt caching is disabled via `DISABLE_PROMPT_CACHING*` environment variables - Fixed paste not working in the `/login` code prompt (regression in 2.1.105) - Fixed subscribers who set `DISABLE_TELEMETRY` falling back to 5-minute prompt cache TTL instead of 1 hour - Fixed Agent tool prompting for permission in auto mode when the safety classifier's transcript exceeded its context window - Fixed Bash tool producing no output when `CLAUDE_ENV_FILE` (e.g. `~/.zprofile`) ends with a `#` comment line - Fixed `claude --resume <session-id>` losing the session's custom name and color set via `/rename` - Fixed session titles showing placeholder example text when the first message is a short greeting - Fixed terminal escape codes appearing as garbage text in the prompt input after `--teleport` - Fixed `/feedback` retry: pressing Enter to resubmit after a failure now works without first editing the description - Fixed `--teleport` and `--resume <id>` precondition errors (e.g. dirty git tree, session not found) exiting silently instead of showing the error message - Fixed Remote Control session titles set in the web UI being overwritten by auto-generated titles after the third message - Fixed `--resume` truncating sessions when the transcript contained a self-referencing message - Fixed transcript write failures (e.g., disk full) being silently dropped instead of being logged - Fixed diacritical marks (accents, umlauts, cedillas) being dropped from responses when the `language` setting is configured - Fixed policy-managed plugins never auto-updating when running from a different project than where they were first installed
v2.1.107思维提示优化
- 长操作时更快显示思维过程进度提示
## 2.1.107 - Show thinking hints sooner during long operations
v2.1.105Worktree功能扩展
- EnterWorktree支持path参数切换已存在worktree
- 新增PreCompact Hook允许阻止对话压缩
- 新增background monitor支持插件自动启动监视
- 改进API流式超时和文件写入显示
## 2.1.105
- Added `path` parameter to the `EnterWorktree` tool to switch into an existing worktree of the current repository
- Added PreCompact hook support: hooks can now block compaction by exiting with code 2 or returning `{"decision":"block"}`
- Added background monitor support for plugins via a top-level `monitors` manifest key that auto-arms at session start or on skill invoke
- `/proactive` is now an alias for `/loop`
- Improved stalled API stream handling: streams now abort after 5 minutes of no data and retry non-streaming instead of hanging indefinitely
- Improved network error messages: connection errors now show a retry message immediately instead of a silent spinner
- Improved file write display: long single-line writes (e.g. minified JSON) are now truncated in the UI instead of paginating across many screens
- Improved `/doctor` layout with status icons; press `f` to have Claude fix reported issues
- Improved `/config` labels and descriptions for clarity
- Improved skill description handling: raised the listing cap from 250 to 1,536 characters and added a startup warning when descriptions are truncated
- Improved `WebFetch` to strip `<style>` and `<script>` contents from fetched pages so CSS-heavy pages no longer exhaust the content budget before reaching actual text
- Improved stale agent worktree cleanup to remove worktrees whose PR was squash-merged instead of keeping them indefinitely
- Improved MCP large-output truncation prompt to give format-specific recipes (e.g. `jq` for JSON, computed Read chunk sizes for text)
- Fixed images attached to queued messages (sent while Claude is working) being dropped
- Fixed screen going blank when the prompt input wraps to a second line in long conversations
- Fixed leading whitespace getting copied when selecting multi-line assistant responses in fullscreen mode
- Fixed leading whitespace being trimmed from assistant messages, breaking ASCII art and indented diagrams
- Fixed garbled bash output when commands print clickable file links (e.g. Python `rich`/`loguru` logging)
- Fixed alt+enter not inserting a newline in terminals using ESC-prefix alt encoding, and Ctrl+J not inserting a newline (regression in 2.1.100)
- Fixed duplicate "Creating worktree" text in EnterWorktree/ExitWorktree tool display
- Fixed queued user prompts disappearing from focus mode
- Fixed one-shot scheduled tasks re-firing repeatedly when the file watcher missed the post-fire cleanup
- Fixed inbound channel notifications being silently dropped after the first message for Team/Enterprise users
- Fixed marketplace plugins with `package.json` and lockfile not having dependencies installed automatically after install/update
- Fixed marketplace auto-update leaving the official marketplace in a broken state when a plugin process holds files open during the update
- Fixed "Resume this session with..." hint not printing on exit after `/resume`, `--worktree`, or `/branch`
- Fixed feedback survey shortcut keys firing when typed at the end of a longer prompt
- Fixed stdio MCP server emitting malformed (non-JSON) output hanging the session instead of failing fast with "Connection closed"
- Fixed MCP tools missing on the first turn of headless/remote-trigger sessions when MCP servers connect asynchronously
- Fixed `/model` picker on AWS Bedrock in non-US regions persisting invalid `us.*` model IDs to `settings.json` when inference profile discovery is still in-flight
- Fixed 429 rate-limit errors showing a raw JSON dump instead of a clean message for API-key, Bedrock, and Vertex users
- Fixed crash on resume when session contains malformed text blocks
- Fixed `/help` dropping the tab bar, Shortcuts heading, and footer at short terminal heights
- Fixed malformed keybinding entry values in `keybindings.json` being silently loaded instead of rejected with a clear error
- Fixed `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` in one project's settings permanently disabling usage metrics for all projects on the machine
- Fixed washed-out 16-color palette when using Ghostty, Kitty, Alacritty, WezTerm, foot, rio, or Contour over SSH/mosh
- Fixed Bash tool suggesting `acceptEdits` permission mode when exiting plan mode would downgrade from a higher permission levelv2.1.101团队指南与安全修复
- /team-onboarding自动生成团队成员入门指南
- Google Vertex AI登录向导简化GCP认证
- 修复Bash权限检查安全漏洞增强防护
- 默认信任系统CA证书企业代理无需额外配置
## 2.1.101 - Added `/team-onboarding` command to generate a teammate ramp-up guide from your local Claude Code usage - Added OS CA certificate store trust by default, so enterprise TLS proxies work without extra setup (set `CLAUDE_CODE_CERT_STORE=bundled` to use only bundled CAs) - `/ultraplan` and other remote-session features now auto-create a default cloud environment instead of requiring web setup first - Improved brief mode to retry once when Claude responds with plain text instead of a structured message - Improved focus mode: Claude now writes more self-contained summaries since it knows you only see its final message - Improved tool-not-available errors to explain why and how to proceed when the model calls a tool that exists but isn't available in the current context - Improved rate-limit retry messages to show which limit was hit and when it resets instead of an opaque seconds countdown - Improved refusal error messages to include the API-provided explanation when available - Improved `claude -p --resume <name>` to accept session titles set via `/rename` or `--name` - Improved settings resilience: an unrecognized hook event name in `settings.json` no longer causes the entire file to be ignored - Improved plugin hooks from plugins force-enabled by managed settings to run when `allowManagedHooksOnly` is set - Improved `/plugin` and `claude plugin update` to show a warning when the marketplace could not be refreshed, instead of silently reporting a stale version - Improved plan mode to hide the "Refine with Ultraplan" option when the user's org or auth setup can't reach Claude Code on the web - Improved beta tracing to honor `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS`, and `OTEL_LOG_TOOL_CONTENT`; sensitive span attributes are no longer emitted unless opted in - Improved SDK `query()` to clean up subprocess and temp files when consumers `break` from `for await` or use `await using` - Fixed a command injection vulnerability in the POSIX `which` fallback used by LSP binary detection - Fixed a memory leak where long sessions retained dozens of historical copies of the message list in the virtual scroller - Fixed `--resume`/`--continue` losing conversation context on large sessions when the loader anchored on a dead-end branch instead of the live conversation - Fixed `--resume` chain recovery bridging into an unrelated subagent conversation when a subagent message landed near a main-chain write gap - Fixed a crash on `--resume` when a persisted Edit/Write tool result was missing its `file_path` - Fixed a hardcoded 5-minute request timeout that aborted slow backends (local LLMs, extended thinking, slow gateways) regardless of `API_TIMEOUT_MS` - Fixed `permissions.deny` rules not overriding a PreToolUse hook's `permissionDecision: "ask"` — previously the hook could downgrade a deny into a prompt - Fixed `--setting-sources` without `user` causing background cleanup to ignore `cleanupPeriodDays` and delete conversation history older than 30 days - Fixed Bedrock SigV4 authentication failing with 403 when `ANTHROPIC_AUTH_TOKEN`, `apiKeyHelper`, or `ANTHROPIC_CUSTOM_HEADERS` set an Authorization header - Fixed `claude -w <name>` failing with "already exists" after a previous session's worktree cleanup left a stale directory - Fixed subagents not inheriting MCP tools from dynamically-injected servers - Fixed sub-agents running in isolated worktrees being denied Read/Edit access to files inside their own worktree - Fixed sandboxed Bash commands failing with `mktemp: No such file or directory` after a fresh boot - Fixed `claude mcp serve` tool calls failing with "Tool execution failed" in MCP clients that validate `outputSchema` - Fixed `RemoteTrigger` tool's `run` action sending an empty body and being rejected by the server - Fixed several `/resume` picker issues: narrow default view hiding sessions from other projects, unreachable preview on Windows Terminal, incorrect cwd in worktrees, session-not-found errors not surfacing in stderr, terminal title not being set, and resume hint overlapping the prompt input - Fixed Grep tool ENOENT when the embedded ripgrep binary path becomes stale (VS Code extension auto-update, macOS App Translocation); now falls back to system `rg` and self-heals mid-session - Fixed `/btw` writing a copy of the entire conversation to disk on every use - Fixed `/context` Free space and Messages breakdown disagreeing with the header percentage - Fixed several plugin issues: slash commands resolving to the wrong plugin with duplicate `name:` frontmatter, `/plugin update` failing with `ENAMETOOLONG`, Discover showing already-installed plugins, directory-source plugins loading from a stale version cache, and skills not honoring `context: fork` and `agent` frontmatter fields - Fixed the `/mcp` menu offering OAuth-specific actions for MCP servers configured with `headersHelper`; Reconnect is now offered instead to re-invoke the helper script - Fixed `ctrl+]`, `ctrl+\`, and `ctrl+^` keybindings not firing in terminals that send raw C0 control bytes (Terminal.app, default iTerm2, xterm) - Fixed `/login` OAuth URL rendering with padding that prevented clean mouse selection - Fixed rendering issues: flicker in non-fullscreen mode when content above the visible area changed, terminal scrollback being wiped during long sessions in non-fullscreen mode, and mouse-scroll escape sequences occasionally leaking into the prompt as text - Fixed crash when `settings.json` env values are numbers instead of strings - Fixed in-app settings writes (e.g. `/add-dir --remember`, `/config`) not refreshing the in-memory snapshot, preventing removed directories from being revoked mid-session - Fixed custom keybindings (`~/.claude/keybindings.json`) not loading on Bedrock, Vertex, and other third-party providers - Fixed `claude --continue -p` not correctly continuing sessions created by `-p` or the SDK - Fixed several Remote Control issues: worktrees removed on session crash, connection failures not persisting in the transcript, spurious "Disconnected" indicator in brief mode for local sessions, and `/remote-control` failing over SSH when only `CLAUDE_CODE_ORGANIZATION_UUID` is set - Fixed `/insights` sometimes omitting the report file link from its response - [VSCode] Fixed the file attachment below the chat input not clearing when the last editor tab is closed
v2.1.90-997 个版本 · 7 已摘要
v2.1.98Vertex向导工具集
- Vertex AI向导支持GCP认证、项目配置和模型锁定
- 新增Monitor工具用于后台脚本事件流监听
- 新增进程沙箱隔离和Perforce模式支持
- 修复大量Bash权限规则漏洞增强安全检查
## 2.1.98
- Added interactive Google Vertex AI setup wizard accessible from the login screen when selecting "3rd-party platform", guiding you through GCP authentication, project and region configuration, credential verification, and model pinning
- Added `CLAUDE_CODE_PERFORCE_MODE` env var: when set, Edit/Write/NotebookEdit fail on read-only files with a `p4 edit` hint instead of silently overwriting them
- Added Monitor tool for streaming events from background scripts
- Added subprocess sandboxing with PID namespace isolation on Linux when `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` is set, and `CLAUDE_CODE_SCRIPT_CAPS` env var to limit per-session script invocations
- Added `--exclude-dynamic-system-prompt-sections` flag to print mode for improved cross-user prompt caching
- Added `workspace.git_worktree` to the status line JSON input, set whenever the current directory is inside a linked git worktree
- Added W3C `TRACEPARENT` env var to Bash tool subprocesses when OTEL tracing is enabled, so child-process spans correctly parent to Claude Code's trace tree
- LSP: Claude Code now identifies itself to language servers via `clientInfo` in the initialize request
- Fixed a Bash tool permission bypass where a backslash-escaped flag could be auto-allowed as read-only and lead to arbitrary code execution
- Fixed compound Bash commands bypassing forced permission prompts for safety checks and explicit ask rules in auto and bypass-permissions modes
- Fixed read-only commands with env-var prefixes not prompting unless the var is known-safe (`LANG`, `TZ`, `NO_COLOR`, etc.)
- Fixed redirects to `/dev/tcp/...` or `/dev/udp/...` not prompting instead of auto-allowing
- Fixed stalled streaming responses timing out instead of falling back to non-streaming mode
- Fixed 429 retries burning all attempts in ~13s when the server returns a small `Retry-After` — exponential backoff now applies as a minimum
- Fixed MCP OAuth `oauth.authServerMetadataUrl` config override not being honored on token refresh after restart, affecting ADFS and similar IdPs
- Fixed capital letters being dropped to lowercase on xterm and VS Code integrated terminal when the kitty keyboard protocol is active
- Fixed macOS text replacements deleting the trigger word instead of inserting the substitution
- Fixed `--dangerously-skip-permissions` being silently downgraded to accept-edits mode after approving a write to a protected path via Bash
- Fixed managed-settings allow rules remaining active after an admin removed them, until process restart
- Fixed `permissions.additionalDirectories` changes not applying mid-session — removed directories lose access immediately and added ones work without restart
- Fixed removing a directory from `additionalDirectories` revoking access to the same directory passed via `--add-dir`
- Fixed `Bash(cmd:*)` and `Bash(git commit *)` wildcard permission rules failing to match commands with extra spaces or tabs
- Fixed `Bash(...)` deny rules being downgraded to a prompt for piped commands that mix `cd` with other segments
- Fixed false Bash permission prompts for `cut -d /`, `paste -d /`, `column -s /`, `awk '{print $1}' file`, and filenames containing `%`
- Fixed permission rules with names matching JavaScript prototype properties (e.g. `toString`) causing `settings.json` to be silently ignored
- Fixed agent team members not inheriting the leader's permission mode when using `--dangerously-skip-permissions`
- Fixed a crash in fullscreen mode when hovering over MCP tool results
- Fixed copying wrapped URLs in fullscreen mode inserting spaces at line breaks
- Fixed file-edit diffs disappearing from the UI on `--resume` when the edited file was larger than 10KB
- Fixed several `/resume` picker issues: `--resume <name>` opening uneditable, filter reload wiping search state, empty list swallowing arrow keys, cross-project staleness, and transient task-status text replacing conversation summaries
- Fixed `/export` not honoring absolute paths and `~`, and silently rewriting user-supplied extensions to `.txt`
- Fixed `/effort max` being denied for unknown or future model IDs
- Fixed slash command picker breaking when a plugin's frontmatter `name` is a YAML boolean keyword
- Fixed rate-limit upsell text being hidden after message remounts
- Fixed MCP tools with `_meta["anthropic/maxResultSizeChars"]` not bypassing the token-based persist layer
- Fixed voice mode leaking dozens of space characters into the input when re-holding the push-to-talk key while the previous transcript is still processing
- Fixed `DISABLE_AUTOUPDATER` not fully suppressing the npm registry version check and symlink modification on npm-based installs
- Fixed a memory leak where Remote Control permission handler entries were retained for the lifetime of the session
- Fixed background subagents that fail with an error not reporting partial progress to the parent agent
- Fixed prompt-type Stop/SubagentStop hooks failing on long sessions, and hook evaluator API errors showing "JSON validation failed" instead of the real message
- Fixed feedback survey rendering when dismissed
- Fixed Bash `grep -f FILE` / `rg -f FILE` not prompting when reading a pattern file outside the working directory
- Fixed stale subagent worktree cleanup removing worktrees that contain untracked files
- Fixed `sandbox.network.allowMachLookup` not taking effect on macOS
- Improved `/resume` filter hint labels and added project/worktree/branch names in the filter indicator
- Improved footer indicators (Focus, notifications) to stay on the mode-indicator row instead of wrapping at narrow terminal widths
- Improved `/agents` with a tabbed layout: a Running tab shows live subagents, and the Library tab adds Run agent and View running instance actions
- Improved `/reload-plugins` to pick up plugin-provided skills without requiring a restart
- Improved Accept Edits mode to auto-approve filesystem commands prefixed with safe env vars or process wrappers
- Improved Vim mode: `j`/`k` in NORMAL mode now navigate history and select the footer pill at the input boundary
- Improved hook errors in the transcript to include the first line of stderr for self-diagnosis without `--debug`
- Improved OTEL tracing: interaction spans now correctly wrap full turns under concurrent SDK calls, and headless turns end spans per-turn
- Improved transcript entries to carry final token usage instead of streaming placeholders
- Updated the `/claude-api` skill to cover Managed Agents alongside Claude API
- [VSCode] Fixed false-positive "requires git-bash" error on Windows when `CLAUDE_CODE_GIT_BASH_PATH` is set or Git is installed at a default location
- Fixed `CLAUDE_CODE_MAX_CONTEXT_TOKENS` to honor `DISABLE_COMPACT` when it is set.
- Dropped `/compact` hints when `DISABLE_COMPACT` is set.v2.1.97焦点视图与大量bug修复
- NO_FLICKER 模式新增焦点视图切换 (Ctrl+O),简化显示提示词和响应摘要
- 修复 MCP 连接缓冲泄漏和 OAuth Token 刷新问题
- 修复 --resume 选择器失效和文件编辑 diff 丢失的多个问题
- 改进 CJK 文本处理,支持中日文输入后的命令补全
## 2.1.97 - Added focus view toggle (`Ctrl+O`) in `NO_FLICKER` mode showing prompt, one-line tool summary with edit diffstats, and final response - Added `refreshInterval` status line setting to re-run the status line command every N seconds - Added `workspace.git_worktree` to the status line JSON input, set when the current directory is inside a linked git worktree - Added `● N running` indicator in `/agents` next to agent types with live subagent instances - Added syntax highlighting for Cedar policy files (`.cedar`, `.cedarpolicy`) - Fixed `--dangerously-skip-permissions` being silently downgraded to accept-edits mode after approving a write to a protected path - Fixed and hardened Bash tool permissions, tightening checks around env-var prefixes and network redirects, and reducing false prompts on common commands - Fixed permission rules with names matching JavaScript prototype properties (e.g. `toString`) causing `settings.json` to be silently ignored - Fixed managed-settings allow rules remaining active after an admin removed them until process restart - Fixed `permissions.additionalDirectories` changes in settings not applying mid-session - Fixed removing a directory from `settings.permissions.additionalDirectories` revoking access to the same directory passed via `--add-dir` - Fixed MCP HTTP/SSE connections accumulating ~50 MB/hr of unreleased buffers when servers reconnect - Fixed MCP OAuth `oauth.authServerMetadataUrl` not being honored on token refresh after restart, fixing ADFS and similar IdPs - Fixed 429 retries burning all attempts in ~13 seconds when the server returns a small `Retry-After` — exponential backoff now applies as a minimum - Fixed rate-limit upgrade options disappearing after context compaction - Fixed several `/resume` picker issues: `--resume <name>` opening uneditable, Ctrl+A reload wiping search, empty list swallowing navigation, task-status text replacing conversation summary, and cross-project staleness - Fixed file-edit diffs disappearing on `--resume` when the edited file was larger than 10KB - Fixed `--resume` cache misses and lost mid-turn input from attachment messages not being saved to the transcript - Fixed messages typed while Claude is working not being persisted to the transcript - Fixed prompt-type `Stop`/`SubagentStop` hooks failing on long sessions, and hook evaluator API errors displaying "JSON validation failed" instead of the actual message - Fixed subagents with worktree isolation or `cwd:` override leaking their working directory back to the parent session's Bash tool - Fixed compaction writing duplicate multi-MB subagent transcript files on prompt-too-long retries - Fixed `claude plugin update` reporting "already at the latest version" for git-based marketplace plugins when the remote had newer commits - Fixed slash command picker breaking when a plugin's frontmatter `name` is a YAML boolean keyword - Fixed copying wrapped URLs in `NO_FLICKER` mode inserting spaces at line breaks - Fixed scroll rendering artifacts in `NO_FLICKER` mode when running inside zellij - Fixed a crash in `NO_FLICKER` mode when hovering over MCP tool results - Fixed a `NO_FLICKER` mode memory leak where API retries left stale streaming state - Fixed slow mouse-wheel scrolling in `NO_FLICKER` mode on Windows Terminal - Fixed custom status line not displaying in `NO_FLICKER` mode on terminals shorter than 24 rows - Fixed Shift+Enter and Alt/Cmd+arrow shortcuts not working in Warp with `NO_FLICKER` mode - Fixed Korean/Japanese/Unicode text becoming garbled when copied in no-flicker mode on Windows - Fixed Bedrock SigV4 authentication failing when `AWS_BEARER_TOKEN_BEDROCK` or `ANTHROPIC_BEDROCK_BASE_URL` are set to empty strings (as GitHub Actions does for unset inputs) - Improved Accept Edits mode to auto-approve filesystem commands prefixed with safe env vars or process wrappers (e.g. `LANG=C rm foo`, `timeout 5 mkdir out`) - Improved auto mode and bypass-permissions mode to auto-approve sandbox network access prompts - Improved sandbox: `sandbox.network.allowMachLookup` now takes effect on macOS - Improved image handling: pasted and attached images are now compressed to the same token budget as images read via the Read tool - Improved slash command and `@`-mention completion to trigger after CJK sentence punctuation, so Japanese/Chinese input no longer requires a space before `/` or `@` - Improved Bridge sessions to show the local git repo, branch, and working directory on the claude.ai session card - Improved footer layout: indicators (Focus, notifications) now stay on the mode-indicator row instead of wrapping below - Improved context-low warning to show as a transient footer notification instead of a persistent row - Improved markdown blockquotes to show a continuous left bar across wrapped lines - Improved session transcript size by skipping empty hook entries and capping stored pre-edit file copies - Improved transcript accuracy: per-block entries now carry the final token usage instead of the streaming placeholder - Improved Bash tool OTEL tracing: subprocesses now inherit a W3C `TRACEPARENT` env var when tracing is enabled - Updated `/claude-api` skill to cover Managed Agents alongside the Claude API
v2.1.96Bedrock认证修复
- 修复使用 AWS_BEARER_TOKEN_BEDROCK 时的 403 授权失败
## 2.1.96 - Fixed Bedrock requests failing with `403 "Authorization header is missing"` when using `AWS_BEARER_TOKEN_BEDROCK` or `CLAUDE_CODE_SKIP_BEDROCK_AUTH` (regression in 2.1.94)
v2.1.94新增Bedrock和effort调整破坏性
- 新增 Amazon Bedrock via Mantle 支持,设置 CLAUDE_CODE_USE_MANTLE=1 启用
- API/Bedrock/Vertex 用户的默认 effort 从 medium 改为 high
- Plugin skill 使用 frontmatter name 作为稳定的调用名称
- 新增 Slack channel 消息的紧凑链接头信息
破坏性变化
- 默认 effort 级别从 medium 改为 high (可通过 /effort 调整)
## 2.1.94
- Added support for Amazon Bedrock powered by Mantle, set `CLAUDE_CODE_USE_MANTLE=1`
- Changed default effort level from medium to high for API-key, Bedrock/Vertex/Foundry, Team, and Enterprise users (control this with `/effort`)
- Added compact `Slacked #channel` header with a clickable channel link for Slack MCP send-message tool calls
- Added `keep-coding-instructions` frontmatter field support for plugin output styles
- Added `hookSpecificOutput.sessionTitle` to `UserPromptSubmit` hooks for setting the session title
- Plugin skills declared via `"skills": ["./"]` now use the skill's frontmatter `name` for the invocation name instead of the directory basename, giving a stable name across install methods
- Fixed agents appearing stuck after a 429 rate-limit response with a long Retry-After header — the error now surfaces immediately instead of silently waiting
- Fixed Console login on macOS silently failing with "Not logged in" when the login keychain is locked or its password is out of sync — the error is now surfaced and `claude doctor` diagnoses the fix
- Fixed plugin skill hooks defined in YAML frontmatter being silently ignored
- Fixed plugin hooks failing with "No such file or directory" when `CLAUDE_PLUGIN_ROOT` was not set
- Fixed `${CLAUDE_PLUGIN_ROOT}` resolving to the marketplace source directory instead of the installed cache for local-marketplace plugins on startup
- Fixed scrollback showing the same diff repeated and blank pages in long-running sessions
- Fixed multiline user prompts in the transcript indenting wrapped lines under the `❯` caret instead of under the text
- Fixed Shift+Space inserting the literal word "space" instead of a space character in search inputs
- Fixed hyperlinks opening two browser tabs when clicked inside tmux running in an xterm.js-based terminal (VS Code, Hyper, Tabby)
- Fixed an alt-screen rendering bug where content height changes mid-scroll could leave compounding ghost lines
- Fixed `FORCE_HYPERLINK` environment variable being ignored when set via `settings.json` `env`
- Fixed native terminal cursor not tracking the selected tab in dialogs, so screen readers and magnifiers can follow tab navigation
- Fixed Bedrock invocation of Sonnet 3.5 v2 by using the `us.` inference profile ID
- Fixed SDK/print mode not preserving the partial assistant response in conversation history when interrupted mid-stream
- Improved `--resume` to resume sessions from other worktrees of the same repo directly instead of printing a `cd` command
- Fixed CJK and other multibyte text being corrupted with U+FFFD in stream-json input/output when chunk boundaries split a UTF-8 sequence
- [VSCode] Reduced cold-open subprocess work on starting a session
- [VSCode] Fixed dropdown menus selecting the wrong item when the mouse was over the list while typing or using arrow keys
- [VSCode] Added a warning banner when `settings.json` files fail to parse, so users know their permission rules are not being appliedv2.1.92Bedrock向导与托管设置
- Bedrock 登录页新增交互式配置向导,引导 AWS 认证和模型选择
- 新增 forceRemoteSettingsRefresh 策略强制刷新托管设置
- /cost 新增按模型和缓存命中率的详细成本分析
- /release-notes 改为交互式版本选择器
## 2.1.92 - Added `forceRemoteSettingsRefresh` policy setting: when set, the CLI blocks startup until remote managed settings are freshly fetched, and exits if the fetch fails (fail-closed) - Added interactive Bedrock setup wizard accessible from the login screen when selecting "3rd-party platform" — guides you through AWS authentication, region configuration, credential verification, and model pinning - Added per-model and cache-hit breakdown to `/cost` for subscription users - `/release-notes` is now an interactive version picker - Remote Control session names now use your hostname as the default prefix (e.g. `myhost-graceful-unicorn`), overridable with `--remote-control-session-name-prefix` - Pro users now see a footer hint when returning to a session after the prompt cache has expired, showing roughly how many tokens the next turn will send uncached - Fixed subagent spawning permanently failing with "Could not determine pane count" after tmux windows are killed or renumbered during a long-running session - Fixed prompt-type Stop hooks incorrectly failing when the small fast model returns `ok:false`, and restored `preventContinuation:true` semantics for non-Stop prompt-type hooks - Fixed tool input validation failures when streaming emits array/object fields as JSON-encoded strings - Fixed an API 400 error that could occur when extended thinking produced a whitespace-only text block alongside real content - Fixed accidental feedback survey submissions from auto-pilot keypresses and consecutive-prompt digit collisions - Fixed misleading "esc to interrupt" hint appearing alongside "esc to clear" when a text selection exists in fullscreen mode during processing - Fixed Homebrew install update prompts to use the cask's release channel (`claude-code` → stable, `claude-code@latest` → latest) - Fixed `ctrl+e` jumping to the end of the next line when already at end of line in multiline prompts - Fixed an issue where the same message could appear at two positions when scrolling up in fullscreen mode (iTerm2, Ghostty, and other terminals with DEC 2026 support) - Fixed idle-return "/clear to save X tokens" hint showing cumulative session tokens instead of current context size - Fixed plugin MCP servers stuck "connecting" on session start when they duplicate a claude.ai connector that is unauthenticated - Improved Write tool diff computation speed for large files (60% faster on files with tabs/`&`/`$`) - Removed `/tag` command - Removed `/vim` command (toggle vim mode via `/config` → Editor mode) - Linux sandbox now ships the `apply-seccomp` helper in both npm and native builds, restoring unix-socket blocking for sandboxed commands
v2.1.91MCP结果持久化和Plugin执行
- MCP Tool 结果通过 _meta 注解支持最大 500K 字符的超限持久化
- 新增 disableSkillShellExecution 设置禁用 Skill 的 shell 执行
- Plugin 可在 bin/ 目录下放置可执行文件并直接调用
- 修复 --resume 导致的会话链断裂和远程 plan 文件丢失
## 2.1.91 - Added MCP tool result persistence override via `_meta["anthropic/maxResultSizeChars"]` annotation (up to 500K), allowing larger results like DB schemas to pass through without truncation - Added `disableSkillShellExecution` setting to disable inline shell execution in skills, custom slash commands, and plugin commands - Added support for multi-line prompts in `claude-cli://open?q=` deep links (encoded newlines `%0A` no longer rejected) - Plugins can now ship executables under `bin/` and invoke them as bare commands from the Bash tool - Fixed transcript chain breaks on `--resume` that could lose conversation history when async transcript writes fail silently - Fixed `cmd+delete` not deleting to start of line on iTerm2, kitty, WezTerm, Ghostty, and Windows Terminal - Fixed plan mode in remote sessions losing track of the plan file after a container restart, which caused permission prompts on plan edits and an empty plan-approval modal - Fixed JSON schema validation for `permissions.defaultMode: "auto"` in settings.json - Fixed Windows version cleanup not protecting the active version's rollback copy - `/feedback` now explains why it's unavailable instead of disappearing from the slash menu - Improved `/claude-api` skill guidance for agent design patterns including tool surface decisions, context management, and caching strategy - Improved performance: faster `stripAnsi` on Bun by routing through `Bun.stripANSI` - Edit tool now uses shorter `old_string` anchors, reducing output tokens
v2.1.90交互教程与性能优化破坏性
- 新增 /powerup 命令提供交互式特性教程和动画演示
- 修复 rate-limit 超限后无限重复弹窗导致的奔溃
- 修复 --resume 因 deferred tool 导致的缓存全量失效
- 优化性能:SSE 传输、JSON 序列化、转录写入等
破坏性变化
- 移除 /tag 命令
- 移除 /vim 命令 (改为通过 /config 的编辑器模式切换)
## 2.1.90
- Added `/powerup` — interactive lessons teaching Claude Code features with animated demos
- Added `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` env var to keep the existing marketplace cache when `git pull` fails, useful in offline environments
- Added `.husky` to protected directories (acceptEdits mode)
- Fixed an infinite loop where the rate-limit options dialog would repeatedly auto-open after hitting your usage limit, eventually crashing the session
- Fixed `--resume` causing a full prompt-cache miss on the first request for users with deferred tools, MCP servers, or custom agents (regression since v2.1.69)
- Fixed `Edit`/`Write` failing with "File content has changed" when a PostToolUse format-on-save hook rewrites the file between consecutive edits
- Fixed `PreToolUse` hooks that emit JSON to stdout and exit with code 2 not correctly blocking the tool call
- Fixed collapsed search/read summary badge appearing multiple times in fullscreen scrollback when a CLAUDE.md file auto-loads during a tool call
- Fixed auto mode not respecting explicit user boundaries ("don't push", "wait for X before Y") even when the action would otherwise be allowed
- Fixed click-to-expand hover text being nearly invisible on light terminal themes
- Fixed UI crash when malformed tool input reached the permission dialog
- Fixed headers disappearing when scrolling `/model`, `/config`, and other selection screens
- Hardened PowerShell tool permission checks: fixed trailing `&` background job bypass, `-ErrorAction Break` debugger hang, archive-extraction TOCTOU, and parse-fail fallback deny-rule degradation
- Improved performance: eliminated per-turn JSON.stringify of MCP tool schemas on cache-key lookup
- Improved performance: SSE transport now handles large streamed frames in linear time (was quadratic)
- Improved performance: SDK sessions with long conversations no longer slow down quadratically on transcript writes
- Improved `/resume` all-projects view to load project sessions in parallel, improving load times for users with many projects
- Changed `--resume` picker to no longer show sessions created by `claude -p` or SDK invocations
- Removed `Get-DnsClientCache` and `ipconfig /displaydns` from auto-allow (DNS cache privacy)v2.1.80-898 个版本 · 8 已摘要
v2.1.89权限defer决策支持破坏性
- PreToolUse Hook 新增 "defer" 决策,无头会话可暂停后通过 -p --resume 继续
- 新增 CLAUDE_CODE_NO_FLICKER=1 环境变量启用无闪烁呈现
- 新增 PermissionDenied Hook 允许 auto 模式在被拒后重试
- 修复 Edit/Write 的 CRLF 加倍和 Markdown 换行符丢失问题
破坏性变化
- 思考总结默认不再生成,设置 showThinkingSummaries: true 启用
## 2.1.89
- Added `"defer"` permission decision to `PreToolUse` hooks — headless sessions can pause at a tool call and resume with `-p --resume` to have the hook re-evaluate
- Added `CLAUDE_CODE_NO_FLICKER=1` environment variable to opt into flicker-free alt-screen rendering with virtualized scrollback
- Added `PermissionDenied` hook that fires after auto mode classifier denials — return `{retry: true}` to tell the model it can retry
- Added named subagents to `@` mention typeahead suggestions
- Added `MCP_CONNECTION_NONBLOCKING=true` for `-p` mode to skip the MCP connection wait entirely, and bounded `--mcp-config` server connections at 5s instead of blocking on the slowest server
- Auto mode: denied commands now show a notification and appear in `/permissions` → Recent tab where you can retry with `r`
- Fixed `Edit(//path/**)` and `Read(//path/**)` allow rules to check the resolved symlink target, not just the requested path
- Fixed voice push-to-talk not activating for some modifier-combo bindings, and voice mode on Windows failing with "WebSocket upgrade rejected with HTTP 101"
- Fixed Edit/Write tools doubling CRLF on Windows and stripping Markdown hard line breaks (two trailing spaces)
- Fixed `StructuredOutput` schema cache bug causing ~50% failure rate when using multiple schemas
- Fixed memory leak where large JSON inputs were retained as LRU cache keys in long-running sessions
- Fixed a crash when removing a message from very large session files (over 50MB)
- Fixed LSP server zombie state after crash — server now restarts on next request instead of failing until session restart
- Fixed prompt history entries containing CJK or emoji being silently dropped when they fall on a 4KB boundary in `~/.claude/history.jsonl`
- Fixed `/stats` undercounting tokens by excluding subagent usage, and losing historical data beyond 30 days when the stats cache format changes
- Fixed `-p --resume` hangs when the deferred tool input exceeds 64KB or no deferred marker exists, and `-p --continue` not resuming deferred tools
- Fixed `claude-cli://` deep links not opening on macOS
- Fixed MCP tool errors truncating to only the first content block when the server returns multi-element error content
- Fixed skill reminders and other system context being dropped when sending messages with images via the SDK
- Fixed PreToolUse/PostToolUse hooks to receive `file_path` as an absolute path for Write/Edit/Read tools, matching the documented behavior
- Fixed autocompact thrash loop — now detects when context refills to the limit immediately after compacting three times in a row and stops with an actionable error instead of burning API calls
- Fixed prompt cache misses in long sessions caused by tool schema bytes changing mid-session
- Fixed nested CLAUDE.md files being re-injected dozens of times in long sessions that read many files
- Fixed `--resume` crash when transcript contains a tool result from an older CLI version or interrupted write
- Fixed misleading "Rate limit reached" message when the API returned an entitlement error — now shows the actual error with actionable hints
- Fixed hooks `if` condition filtering not matching compound commands (`ls && git push`) or commands with env-var prefixes (`FOO=bar git push`)
- Fixed collapsed search/read group badges duplicating in terminal scrollback during heavy parallel tool use
- Fixed notification `invalidates` not clearing the currently-displayed notification immediately
- Fixed prompt briefly disappearing after submit when background messages arrived during processing
- Fixed Devanagari and other combining-mark text being truncated in assistant output
- Fixed rendering artifacts on main-screen terminals after layout shifts
- Fixed voice mode failing to request microphone permission on macOS Apple Silicon
- Fixed Shift+Enter submitting instead of inserting a newline on Windows Terminal Preview 1.25
- Fixed periodic UI jitter during streaming in iTerm2 when running inside tmux
- Fixed PowerShell tool incorrectly reporting failures when commands like `git push` wrote progress to stderr on Windows PowerShell 5.1
- Fixed a potential out-of-memory crash when the Edit tool was used on very large files (>1 GiB)
- Improved collapsed tool summary to show "Listed N directories" for `ls`/`tree`/`du` instead of "Read N files"
- Improved Bash tool to warn when a formatter/linter command modifies files you have previously read, preventing stale-edit errors
- Improved `@`-mention typeahead to rank source files above MCP resources with similar names
- Improved PowerShell tool prompt with version-appropriate syntax guidance (5.1 vs 7+)
- Changed `Edit` to work on files viewed via `Bash` with `sed -n` or `cat`, without requiring a separate `Read` call first
- Changed hook output over 50K characters to be saved to disk with a file path + preview instead of being injected directly into context
- Changed `cleanupPeriodDays: 0` in settings.json to be rejected with a validation error — it previously silently disabled transcript persistence
- Changed thinking summaries to no longer be generated by default in interactive sessions — set `showThinkingSummaries: true` in settings.json to restore
- Documented `TaskCreated` hook event and its blocking behavior
- Preserved task notifications when backgrounding a running command with Ctrl+B
- PowerShell tool on Windows: external-command arguments containing both a double-quote and whitespace now prompt instead of auto-allowing (PS 5.1 argument-splitting hardening)
- `/env` now applies to PowerShell tool commands (previously only affected Bash)
- `/usage` now hides redundant "Current week (Sonnet only)" bar for Pro and Enterprise plans
- Image paste no longer inserts a trailing space
- Pasting `!command` into an empty prompt now enters bash mode, matching typed `!` behavior
- `/buddy` is here for April 1st — hatch a small creature that watches you codev2.1.87Cowork消息投递修复
- 修复 Cowork Dispatch 中消息未被投递的问题
## 2.1.87 - Fixed messages in Cowork Dispatch not getting delivered
v2.1.86会话追踪和 MCP 工具问题修复
- 添加 X-Claude-Code-Session-Id 头用于代理请求聚合
- 修复 --bare 模式丢弃 MCP 工具的问题
- 修复配置写入导致 Windows 损坏的问题
- 优化内存缓存和令牌开销
## 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
v2.1.85MCP 授权和条件 Hook 支持
- Hook 添加条件语句减少不必要进程开销
- 修复 MCP 步进授权在刷新令牌存在时失败
- 优化 @-mention 文件自动完成大型仓库性能
## 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
v2.1.84Windows PowerShell 工具预览发布
- Windows 预览发布 PowerShell 工具(opt-in)
- 修复 voice 按住说话时泄露字符的问题
- 改进启动速度和 Bedrock 冷启动延迟
## 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× fasterv2.1.83转录搜索和反应式环境管理
- 添加转录搜索功能(Ctrl+O 后按 /)
- Hook 支持反应式环境管理(CwdChanged/FileChanged 事件)
- 修复多个 UI 冻结和屏幕闪烁问题
## 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 `CwdChanged` and `FileChanged` hook events for reactive environment management (e.g., direnv) - Added `sandbox.failIfUnavailable` setting to exit with an error when sandbox is enabled but cannot start, instead of running unsandboxed - Added `disableDeepLinkRegistration` setting to prevent `claude-cli://` protocol handler registration - Added `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1` to strip Anthropic and cloud provider credentials from subprocess environments (Bash tool, hooks, MCP stdio servers) - Added transcript search — press `/` in transcript mode (`Ctrl+O`) to search, `n`/`N` to step through matches - Added `Ctrl+X Ctrl+E` as an alias for opening the external editor (readline-native binding; `Ctrl+G` still works) - Pasted images now insert an `[Image #N]` chip at the cursor so you can reference them positionally in your prompt - Agents can now declare `initialPrompt` in frontmatter to auto-submit a first turn - `chat:killAgents` and `chat:fastMode` are now rebindable via `~/.claude/keybindings.json` - Fixed mouse tracking escape sequences leaking to shell prompt after exit - Fixed Claude Code hanging on exit on macOS - Fixed screen flashing blank after being idle for a few seconds - Fixed a hang when diffing very large files with few common lines — diffs now time out after 5 seconds and fall back gracefully - Fixed a 1–8 second UI freeze on startup when voice input was enabled, caused by eagerly loading the native audio module - Fixed a startup regression where Claude Code would wait ~3s for claude.ai MCP config fetch before proceeding - Fixed `--mcp-config` CLI flag bypassing `allowedMcpServers`/`deniedMcpServers` managed policy enforcement - Fixed claude.ai MCP connectors (Slack, Gmail, etc.) not being available in single-turn `--print` mode - Fixed `caffeinate` process not properly terminating when Claude Code exits, preventing Mac from sleeping - Fixed bash mode not activating when tab-accepting `!`-prefixed command suggestions - Fixed stale slash command selection showing wrong highlighted command after navigating suggestions - Fixed `/config` menu showing both the search cursor and list selection at the same time - Fixed background subagents becoming invisible after context compaction, which could cause duplicate agents to be spawned - Fixed background agent tasks staying stuck in "running" state when git or API calls hang during cleanup - Fixed `--channels` showing "Channels are not currently available" on first launch after upgrade - Fixed uninstalled plugin hooks continuing to fire until the next session - Fixed queued commands flickering during streaming responses - Fixed slash commands being sent to the model as text when submitted while a message is processing - Fixed scrollback jumping when collapsed read/search groups finish after scrolling offscreen - Fixed scrollback jumping to top when the model starts or stops thinking - Fixed SDK session history loss on resume caused by hook progress/attachment messages forking the parentUuid chain - Fixed copy-on-select not firing when you release the mouse outside the terminal window - Fixed ghost characters appearing in height-constrained lists when items overflow - Fixed `Ctrl+B` interfering with readline backward-char at an idle prompt — it now only fires when a foreground task can be backgrounded - Fixed tool result files never being cleaned up, ignoring the `cleanupPeriodDays` setting - Fixed space key being swallowed for up to 3 seconds after releasing voice hold-to-talk - Fixed ALSA library errors corrupting the terminal UI when using voice mode on Linux without audio hardware (Docker, headless, WSL1) - Fixed voice mode SoX detection on Termux/Android where spawning `which` is kernel-restricted - Fixed Remote Control sessions showing as Idle in the web session list while actively running - Fixed footer navigation selecting an invisible Remote Control pill in config-driven mode - Fixed memory leak in remote sessions where tool use IDs accumulate indefinitely - Improved Bedrock SDK cold-start latency by overlapping profile fetch with other boot work - Improved `--resume` memory usage and startup latency on large sessions - Improved plugin startup — commands, skills, and agents now load from disk cache without re-fetching - Improved Remote Control session titles: AI-generated titles now appear within seconds of the first message - Improved `WebFetch` to identify as `Claude-User` so site operators can recognize and allowlist Claude Code traffic via `robots.txt` - Reduced `WebFetch` peak memory usage for large pages - Reduced scrollback resets in long sessions from once per turn to once per ~50 messages - Faster `claude -p` startup with unauthenticated HTTP/SSE MCP servers (~600ms saved) - Bash ghost-text suggestions now include just-submitted commands immediately - Increased non-streaming fallback token cap (21k → 64k) and timeout (120s → 300s local) so fallback requests are less likely to be truncated - Interrupting a prompt before any response now automatically restores your input so you can edit and resubmit - `/status` now works while Claude is responding, instead of being queued until the turn finishes - Plugin MCP servers that duplicate an org-managed connector are now suppressed instead of running a second connection - 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 - 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] 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
v2.1.81脚本化调用和渠道权限中继
- --bare 标志支持脚本化 -p 调用跳过 Hook
- --channels 权限中继推送工具批准到手机
- 修复多会话 OAuth 刷新时重复认证问题
## 2.1.81
- Added `--bare` flag for scripted `-p` calls — skips hooks, LSP, plugin sync, and skill directory walks; requires `ANTHROPIC_API_KEY` or an `apiKeyHelper` via `--settings` (OAuth and keychain auth disabled); auto-memory fully disabled
- Added `--channels` permission relay — channel servers that declare the permission capability can forward tool approval prompts to your phone
- Fixed multiple concurrent Claude Code sessions requiring repeated re-authentication when one session refreshes its OAuth token
- Fixed voice mode silently swallowing retry failures and showing a misleading "check your network" message instead of the actual error
- Fixed voice mode audio not recovering when the server silently drops the WebSocket connection
- Fixed `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` not suppressing the structured-outputs beta header, causing 400 errors on proxy gateways forwarding to Vertex/Bedrock
- Fixed `--channels` bypass for Team/Enterprise orgs with no other managed settings configured
- Fixed a crash on Node.js 18
- Fixed unnecessary permission prompts for Bash commands containing dashes in strings
- Fixed plugin hooks blocking prompt submission when the plugin directory is deleted mid-session
- Fixed a race condition where background agent task output could hang indefinitely when the task completed between polling intervals
- Resuming a session that was in a worktree now switches back to that worktree
- Fixed `/btw` not including pasted text when used during an active response
- Fixed a race where fast Cmd+Tab followed by paste could beat the clipboard copy under tmux
- Fixed terminal tab title not updating with an auto-generated session description
- Fixed invisible hook attachments inflating the message count in transcript mode
- Fixed Remote Control sessions showing a generic title instead of deriving from the first prompt
- Fixed `/rename` not syncing the title for Remote Control sessions
- Fixed Remote Control `/exit` not reliably archiving the session
- Improved MCP read/search tool calls to collapse into a single "Queried {server}" line (expand with Ctrl+O)
- Improved `!` bash mode discoverability — Claude now suggests it when you need to run an interactive command
- Improved plugin freshness — ref-tracked plugins now re-clone on every load to pick up upstream changes
- Improved Remote Control session titles to refresh after your third message
- Updated MCP OAuth to support Client ID Metadata Document (CIMD / SEP-991) for servers without Dynamic Client Registration
- Changed plan mode to hide the "clear context" option by default (restore with `"showClearContextOnPlanAccept": true`)
- Disabled line-by-line response streaming on Windows (including WSL in Windows Terminal) due to rendering issues
- [VSCode] Fixed Windows PATH inheritance for Bash tool when using Git Bash (regression in v2.1.78)v2.1.80速率限制显示和内联插件配置
- 状态栏显示 Claude.ai 速率限制使用情况
- 插件支持 source: 'settings' 内联配置方式
- 修复 --resume 丢弃并行工具调用结果
## 2.1.80 - Added `rate_limits` field to statusline scripts for displaying Claude.ai rate limit usage (5-hour and 7-day windows with `used_percentage` and `resets_at`) - Added `source: 'settings'` plugin marketplace source — declare plugin entries inline in settings.json - Added CLI tool usage detection to plugin tips, in addition to file pattern matching - Added `effort` frontmatter support for skills and slash commands to override the model effort level when invoked - Added `--channels` (research preview) — allow MCP servers to push messages into your session - Fixed `--resume` dropping parallel tool results — sessions with parallel tool calls now restore all tool_use/tool_result pairs instead of showing `[Tool result missing]` placeholders - Fixed voice mode WebSocket failures caused by Cloudflare bot detection on non-browser TLS fingerprints - Fixed 400 errors when using fine-grained tool streaming through API proxies, Bedrock, or Vertex - Fixed `/remote-control` appearing for gateway and third-party provider deployments where it cannot function - Fixed `/sandbox` tab switching not responding to Tab or arrow keys - Improved responsiveness of `@` file autocomplete in large git repositories - Improved `/effort` to show what auto currently resolves to, matching the status bar indicator - Improved `/permissions` — Tab and arrow keys now switch tabs from within a list - Improved background tasks panel — left arrow now closes from the list view - Simplified plugin install tips to use a single `/plugin install` command instead of a two-step flow - Reduced memory usage on startup in large repositories (~80 MB saved on 250k-file repos) - Fixed managed settings (`enabledPlugins`, `permissions.defaultMode`, policy-set env vars) not being applied at startup when `remote-settings.json` was cached from a prior session
v2.1.70-791 个版本 · 1 已摘要
v2.1.79Console 认证和远程控制桥接
- claude auth login 添加 --console 标志用于 API 计费
- VSCode: /remote-control 桥接会话到浏览器/手机
- 改进非流式 API 降级方案超时管理
## 2.1.79 - Added `--console` flag to `claude auth login` for Anthropic Console (API billing) authentication - Added "Show turn duration" toggle to the `/config` menu - Fixed `claude -p` hanging when spawned as a subprocess without explicit stdin (e.g. Python `subprocess.run`) - Fixed Ctrl+C not working in `-p` (print) mode - Fixed `/btw` returning the main agent's output instead of answering the side question when triggered during streaming - Fixed voice mode not activating correctly on startup when `voiceEnabled: true` is set - Fixed left/right arrow tab navigation in `/permissions` - Fixed `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` not preventing terminal title from being set on startup - Fixed custom status line showing nothing when workspace trust is blocking it - Fixed enterprise users being unable to retry on rate limit (429) errors - Fixed `SessionEnd` hooks not firing when using interactive `/resume` to switch sessions - Improved startup memory usage by ~18MB across all scenarios - Improved non-streaming API fallback with a 2-minute per-attempt timeout, preventing sessions from hanging indefinitely - `CLAUDE_CODE_PLUGIN_SEED_DIR` now supports multiple seed directories separated by the platform path delimiter (`:` on Unix, `;` on Windows) - [VSCode] Added `/remote-control` — bridge your session to claude.ai/code to continue from a browser or phone - [VSCode] Session tabs now get AI-generated titles based on your first message - [VSCode] Fixed the thinking pill showing "Thinking" instead of "Thought for Ns" after a response completes - [VSCode] Fixed missing session diff button when opening sessions from the left sidebar