← 返回更新日志

Claude Code v2.1.257

2026-09-01 · GitHub 原文
## 有哪些变化 - 新增 Claude Fable 5.1(`claude-fable-5-1`),现为默认 Fable 模型——100 万上下文,价格为每百万 token $10/$50,缓存读取为每百万 token $0.25 - 新增“时间格式”(`timeFormat`)和 `timeZone` 设置:支持 12 小时制、24 小时制、24 小时 UTC,或用于回合结束时钟和转录查看时间戳的 strftime 格式 - 在自动模式中新增“遏制逃逸”规则:云元数据凭证获取、规避出口限制和跨租户访问不再自动批准,除非你的环境将其标记为预期行为 - 新增 `CLAUDE_CODE_SUBAGENT_MODEL_FORCE`,将 `CLAUDE_CODE_SUBAGENT_MODEL`(或主模型)应用于每个子代理,忽略每次生成和代理定义中的模型覆盖设置 - 在 `/effort` 中新增 `s`,仅更改当前会话的工作力度,与 `/model` 的行为一致 - 新增 `/doctor` 警告,用于提示被终止的会话遗留的过期沙盒屏蔽文件 - 在自动模式下,首次读取工作目录之外的文件前新增一次性提示,并可选择阻止此类读取(`permissions.blockReadsOutsideWorkingDirectories`) - 支持网关为发现的 `/model` 选择器条目提供 `description`(`CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY`);没有描述的条目仍显示为“来自网关” - 修复了启动后才在 `.claude/` 文件夹中创建的设置必须重启后才会被识别的问题 - 修复了从使用 `←` 打开的代理视图中调度的会话始终以原始会话的权限模式启动,并覆盖目标目录的 `defaultMode` 和代理的 `permissionMode` 的问题 - 修复了在 `claude agents` 中,`keybindings.json` 对 Ctrl+G 的重新绑定被忽略的问题;其 Ctrl+S / Ctrl+T 现在可通过新增的 `Agents` 上下文重新绑定 - 修复了 macOS npm 安装在自更新期间无法启动后台会话的问题,以及 Windows 上过期的守护进程锁文件指向已复用进程 ID 时无法启动的问题 - 修复了响应在斜杠命令面板后方流式传输时,工作中的旋转指示器停止的问题 - 修复了后台会话的 `state.json` 中的 `detail` 在计划唤醒后重复显示自身调度提示的问题 - 修复了 `claude agents` 中重新提示的后台会话再次完成后仍被埋在“已完成”列表中的问题;“已完成”现在按最近完成时间排序 - 修复了从刚被删除的目录运行 `claude --bg` 时报告“已后台运行”并留下崩溃会话行的问题;现在会打印原因并以状态码 1 退出 - 修复了 Remote Control 在会话进行期间连接时重新发送 Bash 工具定义,导致提示缓存未命中的问题 - 修复了重复列出的自定义 `Authorization` 标头覆盖 Bedrock、Mantle、Vertex 和 WIF 中已配置凭证的问题,以及 Vertex 设置向导从 `~/.config/anthropic` 中读取遗留 Anthropic 配置文件的问题 - 修复了 Claude 应用网关向 Foundry、Vertex 和 Bedrock 发送多余主机 `Authorization` 或配置文件标头的问题,以及设置 `ANTHROPIC_FOUNDRY_API_KEY` 时 Foundry Entra ID 上游服务无法启动的问题 - 修复了在 API 密钥模式下,遗留的 Anthropic API 密钥或身份验证令牌与 Foundry 订阅密钥一同发送的问题 - 修复了 `/schedule` 例程的提示在保存时缺少消息角色,导致运行时无事可做的问题 - 修复了 `claude agents` 未提示后台会话正在等待你批准来自另一个会话的消息,也未说明发送者是谁的问题 - 修复了在已打开的后台会话中使用 Ctrl+S 暂存的提示,在会话空闲或停止后重新打开时丢失的问题 - 修复了通过服务器管理设置推送的遥测(OTEL)设置在热启动时被忽略的问题,包括桌面应用中的 Code 会话 - 修复了领导者的邮箱写入短暂锁定时,队友权限请求被回答两次的问题 - 修复了命令的自动续接响应流式传输期间,在进行中的回合下方渲染出重复斜杠命令行的问题 - 修复了 `policyHelper` 的 `timeoutMs` 和 `refreshIntervalMs` 值超过计时器最大值(2147483647)时导致失败或每毫秒重新运行的问题;现在会对其进行限制 - 修复了切换到另一个子代理的转录后,令牌计数器冻结或缓慢更新的问题;后台子代理和队友的计数器现在会在响应流式传输时实时更新 - 修复了沙盒网络主机带有末尾句点(`example.com.`)时的问题:`deniedDomains` 条目无法阻止沙盒内的该主机,而对此类主机选择“不再询问”后仍会反复提示 - 修复了关闭 Remote Control 同意提示(按 Esc,或在 `claude remote-control` 中输入 `n`)却被计为同意,导致下一次请求无需询问便连接的问题 - 修复了 `/mcp` 重新连接和启用操作仍会连接设置文件中的 MCP 服务器的问题,即使启动后加载的托管 MCP 允许/拒绝列表或 `strictPluginOnlyCustomization` 应阻止该服务器 - 修复了在 `strictPluginOnlyCustomization` 将 MCP 锁定为仅插件服务器时,`claude mcp remove` 未删除远程服务器已存储的 OAuth 凭证的问题 - 修复了从 Claude 应用启动的 Remote Control(`claude remote-control`)会话忽略所选模型、改用机器默认模型运行的问题 - 修复了启用 `allowManagedPermissionRulesOnly` 后,`--disallowedTools` 和会话拒绝规则在首次设置重新加载后被丢弃的问题 - 修复了 `--resume` 将后台会话列出两次,以及 `--continue` 重新打开其进入后台前卡住的副本的问题;`--continue` 现在也会打开已完成的后台会话 - 修复了全屏模式下无法点击 `!` 展开 shell 命令输出的问题 - 修复了后台会话继续运行旧版 Claude Code 二进制文件,并在自动更新期间不断累积而不是被淘汰的问题 - 修复了 `claude agents --json` 短暂将终端切换到原始模式,并在退出时撤销其他程序终端设置的问题 - 修复了使用 Proactive 输出样式的会话在后台命令或其启动的 Monitor 仍在运行时,不进入空闲状态,而是忙循环发送填充消息并重复读取日志的问题 - 修复了子代理因计算机睡眠、连接中断或服务器错误导致响应在流式传输中途被截断后停止的问题;现在会自动继续,而不是以不完整响应结束 - 修复了在 `claude agents` 会话的 `/btw` 面板中按 `←` 无效的问题:现在会返回代理列表(即使正在回答中),重新打开会话时该面板也会恢复 - 修复了设置了顾问模型的会话在后台请求(压缩、`/recap`、提示建议)中缺少提示缓存,并且每次都重新发送未缓存的完整对话的问题 - 修复了 `claude -p` 在最终结果返回约 5 秒后退出、但模型启动的 Monitor 仍在运行的问题;现在会等待监视触发或超时 - 修复了自动模式下,当匹配的命令在复合命令或子 shell 中运行时,`permissions.ask` 规则被跳过、导致命令无需确认即可运行的问题 - 修复了插件可通过声明的命令、代理、技能、钩子或其他组件路径读取其自身目录之外的文件的问题;如果这些路径是符号链接,现在会拒绝并报错 - 修复了 `/add-dir` 拒绝当前工作目录内目录的问题;现在会像启动时使用 `--add-dir` 一样加载该目录的技能、命令和代理 - 修复了恢复曾在其转录视图中被你停止的子代理时,主代理不会收到通知的问题 - 修复了将 ANSI 着色文本(例如 CI 日志)粘贴到 `/feedback` 等对话框时发生崩溃的问题 - 修复了项目的 `.mcp.json` 是 FIFO 或设备文件符号链接时,`claude mcp add/remove` 挂起或耗尽内存的问题;现在会快速失败并显示可执行的提示 - 修复了将非 JSONL 数据通过管道传入 `claude -p --input-format stream-json` 时内存无限增长的问题;现在会快速失败并显示清晰的错误 - 修复了子代理或其他工具运行期间将回合置于后台(`←` 或 Ctrl+B)偶尔导致后台会话将该工具视为已拒绝而不是重新运行的问题 - 修复了 Bash 的 `Read()`/`Edit()` 拒绝规则不适用于 `< file` 重定向和 `tac`、`egrep` 等读取器命令的问题;对任意参数或重定向目标设置拒绝规则现在都会拒绝该命令 - 修复了恢复或向转录超过 5 MB 的子代理发送消息(例如读取大量图片后)失败并显示“No transcript found”的问题 - 修复了工作树隔离会话将不触及 git 的 Bash 循环、`$VAR` 读取、`"$(…)"` 和 heredoc 拒绝为“过于复杂,无法验证其始终位于工作树内”的问题 - 修复了将对话回退为空状态后,`/model` 和 `/effort` 仍显示提示缓存警告的问题 - 修复了在长期、包含大量截图的会话中,当图片超过单次请求大小上限后每个回合都发生提示缓存未命中的问题 - 修复了 Edit 权限提示的差异视图以错误宽度渲染 emoji 和多代码点字符的问题 - 修复了 WebSocket MCP 服务器连接失败时记录为“[object ErrorEvent]”而不是底层错误的问题 - 修复了在另一个 Claude Code 进程下载 npm 更新时,后台会话打开失败并显示“无法启动后台服务”的问题;启动现在会等待更新完成 - 修复了从 shell 中脱离的后台命令(例如在 `timeout` 或 `setsid` 下运行的命令)在任务停止或 Claude Code 退出后仍继续运行的问题 - 修复了从任务面板或已连接客户端停止后台命令时,Claude 不会收到通知的问题 - 修复了停止后台子代理后其监视器仍在运行的问题 - 修复了隔离沙盒中的 git 命令在进入子目录后失去对关联工作树公共 `.git` 目录写入权限的问题 - 修复了 Bedrock 和 Bedrock Mantle 请求在 Opus 4.7 及更高版本的长时间隐藏思考阶段变得无响应,导致空闲超时切断连接的问题;流现在会携带进度事件 - 修复了 Claude 应用网关会话过期或被撤销后启动 Claude Code 时的问题;现在会提示会话已结束,并提供 `/login`,而不是报告网络错误 - 修复了云会话在启动时网络代理启动失败后,在剩余会话期间丢失 git/GitHub 凭证的问题;现在会在后台重试并恢复 - 修复了后台守护进程启动中断后系统临时目录中遗留 `cc-daemon-*` 文件夹的问题;`cleanupPeriodDays` 保留清理任务现在会将其删除 - 修复了 Bash 权限检查自动批准某些 zsh 与 bash 解析方式不同的 `[[ ]]` 条件表达式的问题;这些命令现在会请求批准 - 修复了托管设置批准提示在设置同时关闭详细跟踪或原始 API 正文日志记录,或开启跟踪导出时显示通用警告而不是遥测相关措辞的问题 - 修复了 tmux/iTerm2 窗格中的代理团队队友在确认关闭请求后有时仍保持打开的问题 - 修复了无密钥 Console 登录(“使用 Console 账户登录”)未应用组织服务器管理设置的问题,以及该登录方式下 `/status` 不显示组织信息的问题 - 改进了渲染性能:长对话中每个回合需要重新渲染的内容更少,流式传输不再随着回复变长而变慢,后台代理更新也不再重新渲染整个屏幕 - 通过减少每次按键时的渲染工作,提升了提示输入的响应速度 - 改进了策略助手诊断:刷新失败现在会显示在 `/status` 中,拒绝托管设置对话框时会打印 Claude Code 退出的原因,助手超时现在会明确报告为超时 - 改进了 `/code-review --comment`:现在通过 `glab mr note` 将发现的问题发布到 GitLab 合并请求,而不是报告不支持该目标 - 改进了通知:在另一个对话框下排队的 MCP 引导或权限请求,现在会以与可见请求相同的延迟发送桌面空闲通知 - 改进了详细/转录输出:同时到达的异步钩子完成通知现在显示在同一行,而不是每个钩子占一行 - 改进了 `claude self-hosted-runner --configure-git`:现在还会启用 git 推送协商,因此从过期克隆中首次推送新分支时,只上传新提交而不是整个目录树 - 改进了向 SDK 主机报告存活状态的机制:当网关保持连接使响应保持打开时,即使提高了 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`,长时间等待也不会被误认为会话卡死 - 改进了 MCP 连接和 OAuth 调试/错误日志:服务器 URL 或请求标头中携带的凭证现在会被隐藏 - 改进了 `/fork`:新后台会话现在会保留原始对话的提示缓存;工作树说明会作为消息传入,而不是修改系统提示 - 改进了 emoji 自动补全:支持剩余的 GitHub/Slack 短代码别名(`:satisfied:`、`:telephone:`、`:collision:` 等) - 更改了 `--effort` 的行为:现在仅为当前会话解除新模型的默认工作力度限制,而不是永久解除;在 claude.ai 上为 Remote Control 会话选择的工作力度现在会在限制期间生效 - 更改了在 MDM 或 `managed-settings.json` 中配置、但在启动时被缓存的服务器托管设置覆盖的 `policyHelper`:当获取结果报告其被移除后,现在会立即运行(或退出),而不是等到下次启动 - 更改了 `managedSourcesBehavior: "merge"`:`sandbox.credentials.awsPairs` 和 `sandbox.ripgrep` 现在会整体采用设置它们的最高优先级托管源的值,而不是合并多个来源的值 - 更改了网关模型发现(`CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`)的行为:即使设置了 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`,仍会运行,因为它只查询你的网关 - 更改了 `claude --resume <session-id> --bg` 的行为:当没有进程运行该会话时,现在会使用会话自身的 ID 继续运行,而不是静默启动副本;若启动副本,现在会明确告知 - 更改了 `/btw` 历史浏览方式:从 `←`/`→` 改为 `Shift+←`/`Shift+→`(或 `[`/`]`),用于浏览最近的附带问题,并返回实时回答 - 更改了 `.claude/settings.json` 或 `.claude/settings.local.json` 中 `defaultMode: "bypassPermissions"` 的行为:现在会像 `"auto"` 一样被忽略;请在用户设置或托管设置中配置,或传入 `--permission-mode` - 更改了 Claude 应用网关会话中的 `fable` 和 `best`:暂时继续解析为 Fable 5,因为尚未配置 Fable 5.1 的网关会拒绝它;如需使用 Fable 5.1,请在 `/model` 中选择 - 更改了 `--add-dir`、`/add-dir` 和 `additionalDirectories`:在访问网络路径(UNC 共享、`/net/<host>` 自动挂载)前会拒绝并显示提示;Windows 上请使用映射的驱动器盘符 - 更改了 Claude 应用网关登录和令牌刷新请求:现在会验证网关固定的 TLS 证书,就像托管设置获取请求一样 - 更改了 Cowork 和 claude.ai 云会话的行为:读取不属于你的工件现在始终会先询问你,即使在自动模式下也是如此 - 移除了 Bash 和 PowerShell 权限提示中的 Ctrl+E 命令说明 - [VSCode] 在会话列表面板中新增可折叠的 ACCOUNT & USAGE 和 SESSION MANAGER 分区标题,其中包含账户邮箱、使用量计量器,以及打开使用量对话框的“查看详细信息”链接 - [VSCode] 在输入区底部新增模型标签,显示当前模型并打开模型选择器;其中包含 Effort 行和“更多模型”页面 - [VSCode] 为会话列表的“未分组”分区新增折叠切换按钮 - [VSCode] 为命令菜单新增输出样式选择,包括自定义样式 - [VSCode] 修复第三方提供商部署(Bedrock、Vertex 等)仍显示仅限 claude.ai 的功能(远程会话、听写、使用量)并使用遗留登录信息调用 claude.ai 的问题 - [VSCode] 修复会话列表面板加载后使用量计量器为空白的问题;现在会立即显示已知的最近使用量 - [VSCode] 修复“为所有会话启用 Remote Control”切换按钮的问题:开启或关闭后,现在会应用于已经打开的会话,而不仅是新会话 - [VSCode] 修复屏幕阅读器播报:围栏或标题前的控制字符不再导致可见行从语音中消失,跨越标题的粗体标记也不再错误配对 - [VSCode] 更改操作菜单:现在会在可筛选的“斜杠命令”对话框中列出斜杠命令,而不是以内联方式显示;选择命令后会运行它;MCP 服务器对话框也新增了相同的筛选框 - [VSCode] 将“删除会话”更改为“归档会话”:归档的会话会移动到列表底部可折叠的“已归档会话”分组中,并提供“取消归档”操作