← 返回更新日志

Claude Code v2.1.89

2026-04-01 · GitHub 原文
## 更新内容 - 为 `PreToolUse` 钩子新增 `"defer"` 权限决策功能 —— 无头会话可在工具调用时暂停,并使用 `-p --resume` 恢复以重新评估钩子 - 新增 `CLAUDE_CODE_NO_FLICKER=1` 环境变量,可选择启用无闪烁的备用屏幕渲染(带虚拟化回滚) - 新增 `PermissionDenied` 钩子,在自动模式分类器拒绝操作后触发 —— 返回 `{retry: true}` 可告知模型允许重试 - 为 `@` 提及自动补全建议新增命名子智能体 - 新增 `MCP_CONNECTION_NONBLOCKING=true` 选项,用于 `-p` 模式以完全跳过 MCP 连接等待,并将 `--mcp-config` 服务器连接超时限制为 5 秒(而非阻塞在最慢的服务器上) - 自动模式:被拒绝的命令现在会显示通知,并出现在 `/permissions` → 最近标签页中,可使用 `r` 重试 - 修复 `Edit(//path/**)` 和 `Read(//path/**)` 允许规则检查解析后的符号链接目标(而非仅请求的路径) - 修复语音一键通话在某些修饰键组合绑定下无法激活的问题,以及 Windows 上语音模式因 "WebSocket upgrade rejected with HTTP 101" 而失败的问题 - 修复 Edit/Write 工具在 Windows 上导致 CRLF 加倍以及删除 Markdown 硬换行(两个尾随空格)的问题 - 修复 `StructuredOutput` 架构缓存缺陷,该缺陷导致使用多个架构时失败率约 50% - 修复内存泄漏:长运行会话中大型 JSON 输入作为 LRU 缓存键被保留 - 修复从超大会话文件(超过 50MB)中删除消息时发生的崩溃 - 修复 LSP 服务器崩溃后的僵尸状态 —— 服务器现在会在下次请求时重启,而非直到会话重启前一直失败 - 修复包含 CJK 字符或表情符号的提示历史条目在 `~/.claude/history.jsonl` 中落入 4KB 边界时被静默丢弃的问题 - 修复 `/stats` 因排除子智能体使用而少计令牌,以及在统计缓存格式变更时丢失超过 30 天的历史数据 - 修复 `-p --resume` 在延迟工具输入超过 64KB 或不存在延迟标记时挂起的问题,以及 `-p --continue` 未恢复延迟工具的问题 - 修复 `claude-cli://` 深度链接在 macOS 上无法打开的问题 - 修复 MCP 工具错误在服务器返回多元素错误内容时仅截取第一个内容块的问题 - 修复通过 SDK 发送带图像的消息时技能提醒和其他系统上下文被丢弃的问题 - 修复 PreToolUse/PostToolUse 钩子对 Write/Edit/Read 工具接收的 `file_path` 改为绝对路径,以匹配文档行为 - 修复自动压缩死循环 —— 现在检测到连续压缩三次后上下文立即重新填满限制的情况,会停止并显示可操作的错误,而非浪费 API 调用 - 修复长会话中因工具架构字节在会话中途变化导致的提示缓存未命中 - 修复长会话中读取多个文件时嵌套的 CLAUDE.md 文件被重复注入数十次的问题 - 修复 `--resume` 在转录包含旧版 CLI 工具结果或中断写入时发生的崩溃 - 修复 API 返回权限错误时显示误导性的 "Rate limit reached" 消息 —— 现在会显示实际错误并提供可操作提示 - 修复钩子 `if` 条件过滤不匹配复合命令(`ls && git push`)或带环境变量前缀的命令(`FOO=bar git push`) - 修复重度并行工具使用时,终端回滚中折叠的搜索/读取组徽章重复的问题 - 修复通知 `invalidates` 未立即清除当前显示的通知 - 修复背景消息在处理期间到达后提示提交后短暂消失的问题 - 修复天城文及其他组合标记文本在助手输出中被截断的问题 - 修复主屏幕终端在布局变化后出现的渲染伪影 - 修复语音模式在 macOS Apple Silicon 上无法请求麦克风权限的问题 - 修复 Windows Terminal Preview 1.25 上 Shift+Enter 提交而非插入换行的问题 - 修复在 tmux 内运行 iTerm2 时流式传输期间的周期性 UI 抖动 - 修复 PowerShell 工具在 Windows PowerShell 5.1 上错误报告 `git push` 等命令向 stderr 写入进度的情况 - 修复 Edit 工具用于超大文件(>1 GiB)时可能发生的内存不足崩溃 - 改进折叠工具摘要:对 `ls`/`tree`/`du` 显示“列出 N 个目录”而非“读取 N 个文件” - 改进 Bash 工具:当格式化程序/检查器命令修改您先前读取的文件时发出警告,防止陈旧编辑错误 - 改进 `@` 提及自动补全:对名称相似的资源,源文件排名高于 MCP 资源 - 改进 PowerShell 工具提示,提供版本适当的语法指导(5.1 与 7+) - 更改 `Edit` 功能:现在可直接处理通过 `Bash` 使用 `sed -n` 或 `cat` 查看的文件,无需先调用单独的 `Read` - 更改:超过 50K 字符的钩子输出将保存到磁盘(提供文件路径+预览),而非直接注入上下文 - 更改:`settings.json` 中的 `cleanupPeriodDays: 0` 现将被拒绝并返回验证错误 —— 此前它会静默禁用转录持久化 - 更改:思考摘要在交互式会话中不再默认生成 —— 在 `settings.json` 中设置 `showThinkingSummaries: true` 可恢复 - 记录 `TaskCreated` 钩子事件及其阻塞行为 - 使用 Ctrl+B 后台运行命令时保留任务通知 - Windows 上的 PowerShell 工具:同时包含双引号和空格的 external-command 参数现在会提示而非自动允许(PS 5.1 参数分割强化) - `/env` 现在适用于 PowerShell 工具命令(此前仅影响 Bash) - `/usage` 现在对 Pro 和 Enterprise 计划隐藏冗余的“本周(仅 Sonnet)”栏 - 图像粘贴不再插入尾随空格 - 将 `!command` 粘贴到空提示中现在会进入 bash 模式,与输入 `!` 行为一致 - `/buddy` 功能上线(四月一日特别版)—— 孵化一个小生物来监督您的编码