← 返回更新日志

Claude Code v2.1.300

2026-10-14 · GitHub 原文
## 变更内容 - 为 mod 的提示词装饰添加了 `virtualText`:显示在提示词输入框中的文本,但不会进入草稿或最终提交的提示词 - 为 OpenTelemetry `api_request` 事件添加了 `cache_creation_5m_tokens` 和 `cache_creation_1h_tokens`,按生命周期区分缓存写入 - 为 mod 添加了 `$.ui.view({ agentId })`:调用时会在主视图中显示某个代理的对话记录,使用 `$.ui.view({})` 可返回 - 为 mod 的 `Text` 添加了用于从右向左文本的 `dir` 属性:在 Windows 和 VS Code 终端中,其各行会按该方向阅读并右对齐 - 在 AWS 上的 Claude Platform 中添加了 `/advisor`;在通过 `/advisor`、`advisorModel` 或 `--advisor` 选择顾问之前,不会运行任何顾问;设置 `CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1` 可将其关闭 - 为跟踪 span 添加了 OpenTelemetry GenAI 语义约定属性,例如 `gen_ai.provider.name`、`gen_ai.conversation.id`、`gen_ai.tool.name` 和 `error.type` - 支持在 `agent.spawn` mod 钩子中重写工作流代理的 `prompt` 和 `model`;此前该钩子只能拒绝工作流代理 - 添加了 `prompt.change` mod 钩子,当提示词输入框中的文本在没有键入编辑的情况下发生变化时触发,例如恢复历史记录、清空、撤销或由插件填充 - 修复了云会话在实际上是会话自身的网络设置阻止某个主机时,却告知 Claude 是组织策略阻止了该主机的问题 - 修复了选择更小的自动压缩窗口时,`/autocompact` 仍警告令牌用量过高的问题 - 修复了退出时若后台命令仍在运行,SessionEnd 钩子有时不会执行的问题 - 修复了 `claude --help` 在 `--restricted` 的说明中提及一个已移除工具的问题 - 修复了当某个拉取请求返回的数据不完整时,`claude agents` 不会刷新任何拉取请求状态的问题 - 修复了云会话的容器被替换后,即使后台代理已经恢复过一次,Claude 仍会被告知该代理已丢失且无法恢复的问题 - 修复了曾手动向其发送消息的子代理在完成后不久便从 `/tasks` 中消失,导致无法返回相应对话的问题 - 修复了查看子代理时,已完成的父代理会从面包屑导航中消失,而其子代理被重新挂载到顶层的问题 - 修复了输入突发到达时,代理视图会将键入的单词(例如“up”“down”或“escape”)当作对应按键处理,可能导致回复过程中预览位置移动或草稿被清空的问题 - 修复了自动工具搜索(`ENABLE_TOOL_SEARCH=auto`)会在对话过程中途关闭的问题,例如恢复会话后 MCP 服务器重新连接时 - 修复了因 `forceLoginOrgUUID` 拒绝登录后,仍会存储被拒绝组织的令牌,或在执行 `/login` 后该令牌仍保持有效的问题 - 修复了 Claude Desktop 和 Remote Control 会话中的差异视图无法检测使用 reftable 的仓库中发生冲突的 cherry-pick 或 revert 的问题 - 修复了在 Artifact 工具调用的输入仍在到达时,详细视图和 Ctrl+O 行显示 `Artifact("(unprintable path)")` 的问题;现在其所在行会像 Bash 一样显示“Waiting…”和“Running…” - 修复了恢复会话后写入的第一条对话记录,会在此前崩溃导致记录最后一行不完整时丢失的问题 - 修复了内容包含 Unicode 行分隔符或段落分隔符(U+2028、U+2029)时,`/branch` 会丢失消息、`claude purge` 会跳过子文件夹项目的问题 - 修复了 Claude Code 使用 `--worktree` 启动时,不会运行插件的 `WorktreeCreate` 和 `WorktreeRemove` 钩子的问题(`--tmux` 目前仍不支持) - 修复了在使用 reftable 引用存储的仓库中执行 `git commit -q` 后,OpenTelemetry `tool_result` 事件缺少 `git_commit_id` 的问题 - 修复了经 mod 的 `prompt.submit` 钩子重写或丢弃的提示词,仍会在 OpenTelemetry `user_prompt` 事件、交互 span 以及会话标题请求中被记录为用户键入内容的问题 - 修复了供 Claude 查看、关于 mod 热重载的注释会像用户输入一样出现在对话记录中的问题 - 修复了代理钩子忽略其 `model` 的问题:现在会解析 `haiku` 等别名;子代理的模型不再覆盖该设置;模型不可用时会回退到调用方的模型,而不是允许执行该操作 - 修复了当标签或分支的名称类似提交 ID 时,`--worktree` 会话有时会从错误提交开始,以及初始 Git 状态显示的分支并非新工作树分支的问题 - 修复了在使用 Git reftable 引用存储的仓库中,分支显示为“.invalid”且 `--worktree` 无法重新打开工作树的问题 - 修复了 Claude 在会话暂存区中使用裸文件名或相对路径而不是完整路径命名文件的问题 - 修复了 `claude remote-control` 服务器在发生短暂登录错误(例如钥匙串被锁定)后放弃续连的问题;现在会重试,并在需要运行 `claude /login` 时发出警告 - 修复了在裸仓库的工作树中,如果无法获取 origin 的默认分支,`--worktree` 会失败的问题;现在回退使用当前检出的 HEAD 作为基准,而不是主仓库的 HEAD - 修复了在 VS Code、Cursor 或 Devin Desktop 的集成终端中启动 Claude Code 时,为检查扩展而重复启动两次编辑器命令行工具的问题;现在只会启动一次 - 修复了通过 `chat:newline` 键位绑定(Ctrl+J 或重新绑定的 Enter)输入换行时,不会触发 mod 的 `prompt.edit` 钩子的问题 - 修复了 API 拒绝某个 MCP 工具的输入 schema 后,对话在每一轮都会因 400 错误而失败的问题;Claude Code 现在会在对话剩余期间以无参数形式发送该工具 - 修复了恢复无头会话或 Agent SDK 会话时,如果压缩发生在因达到输出令牌上限而被截断的回复之后,会丢失压缩所保留的近期消息的问题(适用于从此版本开始执行的压缩) - 修复了 MCP 服务器在压缩后才完成连接时,Claude 直到下一次工具调用才会获知该服务器的工具和指令的问题 - 修复了在一台计算机同时提供多个会话时,仍在运行的 Remote Control 会话会被标记为已停止的问题 - 修复了恢复无头会话或 Agent SDK 会话时,如果压缩发生在同一轮中重试或未完成的回复之后,会丢失压缩摘要或恢复压缩前历史记录的问题 - 修复了 Claude 会轮询后台命令的输出文件,或在命令运行期间休眠的问题 - 修复了在使用 TLS 检查代理且其证书仅通过操作系统证书存储受信任时,功能标志和分阶段发布信息会一直过期的问题 - 修复了 `claude daemon stop --any` 在卡住的后台服务仍在运行时却输出“stopped”的问题:现在会等待并强制终止服务;如果服务仍然存在,则会明确说明并以状态码 1 退出 - 修复了关闭遥测后,`claude daemon stop` 会在没有任何输出的情况下退出,并将会话继续列为运行中的问题 - 修复了 Cowork 云会话中的 Write、Edit 和 NotebookEdit 对用户自己计算机上的路径报告成功,但文件实际上从未传入的问题 - 修复了会话恢复的历史记录从未列出延迟加载工具时,Claude 会搜索此前已在对话中加载过的延迟工具的问题 - 修复了在深色 ANSI 主题和 16 色终端中,次要(暗色)文本看起来与普通文本相同的问题 - 修复了无法读取组织策略时,云会话每轮会挂起 5 分钟的问题;现在该轮会立即结束并说明原因 - 修复了云会话在长回复期间重启后,有时会再次处理一条已经回答过的消息的问题 - 自托管运行器:修复了无人读取输出时,运行器和编排器会冻结(不再轮询、无法访问 `/healthz`、也无法通过 `SIGTERM` 关闭)的问题;日志现在会保留最新的 256 KiB 并统计丢弃数量(Windows 除外) - 改进了 Cowork 云会话中的 WebFetch:如果某个页面刚刚获取失败,会将这一情况告知 Claude,而不是再次获取 - 改进了内置 `plugin-authoring` 技能中的 mod 共享:Claude 会先扫描 mod 文件中的密钥,再打开这些文件;扫描项目外部的文件夹前会征求许可 - 改进了提供给 Claude 3 模型、关于通过 @ 提及的 PDF 的提示,使其更少出现未读取 PDF 就作答的情况 - 改进了 Artifact 更新:Claude 现在可以在一次调用中应用小型更改并重新发布 Artifact,也可以在单次响应中完成较大编辑并重新发布 - 更改了 `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` 会话,使其忽略设置中的 CA 包、工具代理、Git TLS 以及 `SSL_CERT_FILE` 等 Git 配置变量;在 Claude Desktop 下,仅忽略项目设置中的这些变量 - 更改了退出行为:后台命令收到停止请求 1.5 秒后若仍在运行,将被强制终止;此前在全屏模式下,这些命令可能会继续运行 - 更改了 Claude Desktop 的 Code 标签页:当 `forceLoginGatewayUrl` 指向由 Anthropic 运营且提供会话主机名服务的网关时,会应用托管设置;该网关必须在启动时可访问 - 更改了 `claude gateway`:如果存在 Claude Desktop 无法通过网关使用的 `desktop:` 策略键,现在会在启动时停止并指出该键;此前会在发出警告后继续启动 - 更改了发送到 api.anthropic.com 的大型请求,使其即使在关闭遥测时也使用 gzip 压缩;可设置 `CLAUDE_CODE_GZIP_REQUEST_BODIES=0` 将其关闭 - 更改了 `claude-api` 技能:除非明确要求归档或删除,否则会保留 Managed Agents 会话 - 更改了后台会话:现在会通过 Workflow 工具的审批流程恢复接续的工作流,而不是从交接文件运行该工作流 - 更改了本地会话记录:现在还会记录每个 API 请求的系统提示词、工具和参数,因此选择共享的会话记录可以精确重现请求 - 将 `/sandbox` 模式选项中的“Sandbox BashTool”改为“Sandbox commands” - 更改了 Cowork 云会话中的 `PermissionRequest` 钩子:现在会忽略钩子许可结果中的 `setMode` 更新;其余审批内容仍然生效 - 更改了钩子:现在会像验证 Claude 自身输入一样验证 PreToolUse 和 PermissionRequest 钩子的 `updatedInput`;未知键会被丢弃,工具拒绝的输入则会导致调用被拒绝 - 从 `claude remote-control` 中移除了不起作用的 `--sandbox` 和 `--no-sandbox` 标志;现在传入任一标志都会报错并退出。请在设置中配置 `sandbox.enabled` 以对会话启用沙盒 - [VSCode] 添加了 `claudeCode.attachSelection` 设置,用于阻止将编辑器中选中的文本添加到消息中 - [VSCode] 修复了用量额度耗尽后快速模式仍保持开启,导致每个请求都被拒绝并重新发送的问题;现在快速模式会关闭并显示错误通知,直到用户再次开启 - [VSCode] 修复了在始终进行思考的模型上,“Thinking”开关会切换为“Off”的问题;现在不会为这些模型显示该开关 - [VSCode] 修复了对被标记消息使用“Edit prompt”时,文件或命令菜单会覆盖恢复后的提示词的问题;现在按 Enter 会按原样发送提示词 - [VSCode] 修复了在 Windows 上按住 Shift 将文件拖到提示词输入框时,会插入无法读取的 `/c:/…` 路径,而不是相对于工作目录的引用的问题 - [VSCode] 修复了更改 VS Code 的聊天字体大小设置后,需要重新加载窗口才会生效,或更改主题后设置会被撤销的问题;差异视图和计划预览现在也会遵循这些设置 - [VSCode] 修复了重新加载后使用“Resume session”或恢复标签页时,会打开空白的新对话,而不是已移入 Git 工作树的原对话的问题 - [VSCode] 修复了先按 ↑ 再按 Enter 调出斜杠命令时,会在不带参数的情况下运行该命令的问题;在编辑恢复的提示词前,命令和文件菜单不再覆盖其上方 - [VSCode] 修复了在 WSL、SSH 和 Dev Container 窗口中,按住 Shift 将文件从资源管理器或编辑器标签拖到提示词输入框时不会插入任何内容的问题 - [VSCode] 修复了在 Windows 和 Linux 上,Ctrl+Alt+F 会切换“Focus”视图,而不是在资源管理器、其他树状视图或调试控制台中打开“Find”的问题 - [VSCode] 修复了 macOS 上检查其他窗口或终端中是否有打开的会话时会创建额外进程的问题:现在会直接启动 `/bin/ps`,而不是每次检查时都在 PATH 中搜索 `ps` - [VSCode] Windows:修复了崩溃或断电后,即使 Windows 已重新启动并将旧进程 ID 分配给其他程序,对话仍显示“still open somewhere else”的问题 - [云会话] 修复了当组织关闭连接器工具的“Always allow”时,Cowork 审批提示中缺少“Allow for this task”的问题(2.1.292 中的回归) - [云会话] 修复了在云会话中发送第二条消息后,`/` 菜单里的大多数命令会丢失说明的问题 - [Remote Control] 修复了 claude.ai 和桌面应用中的 Remote Control 会话差异视图将已删除和已重命名文件显示为已修改的问题;本机需要使用 Claude Code v2.1.296 或更高版本 - [Claude Tag] 添加了对 Slack Connect 频道的支持:Owner 或 Claude Tag 管理员可以允许 Slack 中的 Claude 在与其他组织共享的频道内回答;默认关闭 - [Claude Tag] 在 Slack 线程中为需要用户审批的连接器操作添加了私密的“Allow once / Deny”卡片,使 Claude 可以请求批准而不是直接拒绝;其他人只能看到它正在等待用户操作 - [Claude Tag] 为 Slack 中的 Claude 添加了对 Slack 语音片段的支持:如果 Slack 提供了语音片段的转录文本,Claude 会读取该文本 - [Claude Tag] 修复了 Slack 中的 Claude 不会回复另一应用在由 Claude 自己发布到频道的消息下方线程中对其进行标记的问题 - [Claude Tag] 更改了管理员附加到 Slack 频道的访问权限包:频道变为 Slack Connect 频道后,这些权限包仍会继续生效,无需先移除再重新附加 - [Code Review] 修复了 Code Review 会忽略具有写入权限但 GitHub 组织成员身份为私密的用户所发出的 `@claude review` 评论的问题;现在这些评论会启动审查 - [Code Review] 修复了 Code Review 的“paused for this repository”评论会将管理员引导至 Code Review 设置的问题;现在会说明谁可以修复该问题,并提供 Git 提供商页面的链接