Claude Code v2.1.305 修掉 2.1.304 的网关回归:走 Vertex / Bedrock / 自建网关的团队请立刻升级
Claude Code v2.1.305 修掉 2.1.304 在 Vertex、Bedrock 与网关后每个请求都失败的 tool search 回归,并新增沙箱嵌套命名空间开关与 Workflow 续跑幂等。
2026-10-22 · Claude Code 官方 CHANGELOG(v2.1.305 / v2.1.306 原始条目)+ GitHub Releases API 逐 tag 核对(v2.1.305 tag 2026-10-20T20:46:50Z、v2.1.306 tag 2026-10-21T03:16:31Z,均 prerelease: false)
发布 2026-10-22核实 2026-10-22要点速览
- v2.1.305(tag 2026-10-20T20:46:50Z)的头号条目是修 2.1.304 自己的回归:在 Vertex、Bedrock 及其他 provider 上,只要端点或网关拒绝 tool search,每个请求都会失败;现在会自动去掉 tool search 重试。
- 沙箱开了一个口子并同时声明代价:新增
sandbox.allowNestedUserNamespaces,让沙箱命令能在 Linux 上创建 user namespace(Chromium、rootless podman),官方明说这会绕过沙箱的文件保护。 - Workflow 续跑终于幂等:
resume不再重跑 journal 里已完成的pipeline()/parallel()agent。 /usage从「列数字」变成「给修法」:每条警告是指明来源的单行修复建议,按f直接套用,VS Code 与/doctor同步。- 两处配置语义变化:
allowedMcpServers不再过滤只在env里用${VAR}的 stdio server;Claude Desktop 按路径挂载的插件在组织设allowManagedPermissionRulesOnly时不再保留allowed-tools。 - v2.1.306(tag 2026-10-21T03:16:31Z,当前最新 stable)只有两条,但第二条很阴:MCP 工具很多的会话里,真实 API 错误会被换成「prompt is too long」并触发一次不必要的压缩。
版本序列现状(2026-10-22 双源核对)
| 版本 | tag 时间戳(UTC) | prerelease | 说明 |
|---|---|---|---|
| v2.1.306 | 2026-10-21 03:16:31 | false | 当前最新 stable,生产钉这一版 |
| v2.1.305 | 2026-10-20 20:46:50 | false | 修 2.1.304 的网关回归 |
| v2.1.304 | 2026-10-19 21:34:39 | false | /auto-mode-setup、Code Review 三档 |
| v2.1.303 | 2026-10-18 22:26:54 | false | 官方仅写「Bug fixes and reliability improvements」 |
沿用既有口径:官方 CHANGELOG 的版本标题下不标注发布日期,上表时间戳取自 GitHub Releases 的 tag,非厂商公布发布日。本站的判据不变:核对版本序列必须同时取 CHANGELOG 与 GitHub Releases 两个来源,并以 prerelease 字段判定 stable,不看 tag 名后缀。
2.1.297 与 2.1.298 两节仍然缺失(本站连续第八次复核确认),当前版本头序列为 2.1.306 → 2.1.305 → 2.1.304 → 2.1.303 → 2.1.302 → 2.1.301 → 2.1.300 → 2.1.299 → 2.1.296 → 2.1.295 …。缺失原因未获知,不作推断。
① 这次最该看的一条:2.1.304 的回归在 2.1.305 才真正兜住
官方原文:
「Fixed every request failing on Vertex, Bedrock and other providers when the endpoint or a gateway rejects tool search, and behind gateways with ToolSearch disallowed or left out of
--tools(a 2.1.304 regression): Claude Code now retries without it」
把它和上一版连起来看就清楚了。本站 10-21 记录的 ㊳ 条:2.1.304 起,自定义 ANTHROPIC_BASE_URL 后面 tool search 默认开启,官方当时的措辞是「网关返回 400 / 422 时自动去掉该字段重试」。现在 305 的条目说明那道降级并没有覆盖全部场景——在 Vertex、Bedrock,以及「网关直接不允许 tool search」或把它从 --tools 里剔掉的情况下,结果是每一个请求都失败,而不是降级成功。
这条对谁最要紧:所有走 Amazon Bedrock、Google Vertex、企业自建 LLM 网关、以及第三方中转(国内用户最常见的形态)的团队。这不是「少个功能」,是「整个 CLI 不可用」,而且报错来自上游端点,排查时很容易被引到凭据或网络方向去。
行动:升级到
v2.1.305及以上。如果你在 2.1.304 上遇到过「突然全部请求失败」且怎么排查都指向网关,这一条大概率就是答案。
② 沙箱:给了能力,也把代价写在同一个括号里
2.1.305 新增 sandbox.allowNestedUserNamespaces。官方措辞:让沙箱内的命令可以在 Linux 上创建 user namespace(举例 Chromium、rootless podman),并且这让它们能够绕过沙箱的文件保护。
这个写法值得单独讲:Anthropic 没有把「能绕过文件保护」藏在文档深处,而是直接写进了 CHANGELOG 的同一句话里。 也就是说这是一个显式降低隔离强度的开关,不是兼容性改进。
本站的判断:把它当安全决策,不要当 Compat 开关。合理的用法是「为特定任务临时开 + 记录在哪开的」,而不是「全局打开图省事」。这也延续了本站一贯的提醒——沙箱的价值在于它是默认拒绝的,每开一个口子都在削弱这个前提。
③ 长任务链路:Workflow 与压缩的两条状态 bug
| 场景 | 修复前 | 修复后 |
|---|---|---|
| Workflow resume | resume 会重新执行 journal 里已完成的 pipeline() / parallel() agent | 从 run 的 journal 直接取结果 |
| 云会话 / teammates 压缩 | 压缩不得不丢掉最老消息时不告诉 Claude | 明确告知摘要不完整 |
第一条是幂等性问题,不只是浪费:被重跑的 agent 如果带副作用(写文件、发请求、建分支),resume 一次就多一份。第二条是可诊断性问题——Claude 不知道自己拿到的是不完整摘要,也就不会在回答里提示你。
配合此前版本中「fork 子代理默认开启」「主会话子代理一律后台运行」这些改动,Claude Code 正在从「一个会话」变成「一个可恢复的执行图」。而执行图一旦可恢复,幂等性就从加分项变成了必答题。这次的修复是这个方向的必要补课。
④ /usage 与 MCP 同意对话框:把「要你判断」改成「帮你修」
/usage:每条警告改为一个指明来源的单行修复建议,按f可直接套用;同样的修法在 VS Code 与/doctor里出现。- MCP 同意对话框:改成「给 prompt 的回车不容易被误判为 Accept」。
- 启动提示:启动警告从 logo 上方的裸文本收进 debug 日志;不限制任何东西的权限规则改为在 banner 下以警告行显示。
第二条看着像小事,实际是误批准类事故的高发点:你在 prompt 里敲回车换行,结果被当成同意挂上一个 MCP server。decider: "person"(2.1.304 引入)明确了「只有人或宿主回调能批准」,这次把交互层面也对齐了。
⑤ 两条会改变行为的配置语义
① allowedMcpServers 不再过滤只在 env 里用 ${VAR} 的 managed-mcp.json stdio server。 官方说明:白名单此前漏掉的这类 server,升级后会加载;要继续挡住请改用 deniedMcpServers。
行动:用了 MCP 白名单的组织,升级后请复核一次实际加载清单。这是典型的「修复了过滤逻辑,于是你以为被挡住的东西其实没被挡住」。
② Claude Desktop 按路径挂载的插件,在组织设置 allowManagedPermissionRulesOnly 时不再保留其 allowed-tools。 企业里用「组织管控 + 本地插件」组合的,升级后权限面会收窄。
⑥ v2.1.306:两条,但第二条会带偏排查
- 修了云会话里不带会话环境变量启动
claude -p时报「Not logged in」。 - 修了 MCP 工具很多的会话里,真实的 API 错误被替换成「prompt is too long」,并触发一次不必要的压缩。
第二条值得单独提醒:它同时制造了两个错误——报错内容是错的,而且顺手把上下文压掉一轮。你的真实问题(比如 401、配额、网关 5xx)会被「prompt too long」盖掉,去调长上下文配置就完全走反了。
判据:看到「prompt is too long」但你的会话工具很多时,先升到 v2.1.306,再判断是不是真的超长。
对开发者的影响
① 走网关 / 云厂商接入 / 中转的:这是本轮唯一必须立即执行的动作——升到 v2.1.305 及以上。
② 用 MCP 白名单的:升级后复核加载清单,需要继续拦截请改 deniedMcpServers。
③ 跑 Workflow / pipeline 编排的:305 之后 resume 才真正幂等。此前请勿把 resume 当成安全操作——它可能重跑带副作用的 agent。
④ 开沙箱跑容器类工具的:allowNestedUserNamespaces 是安全决策,按最小权限开,别全局打开。
⑤ 用组织管控 + 本地插件的企业:复核 allowManagedPermissionRulesOnly 下的插件权限面。
AI 之家 观点
这一版最有信息量的不是功能,是修复顺序。 一个版本里同时出现「修自己上一版的 P0 回归」和「给沙箱开口子」,这两件事放在一起说明了 Claude Code 现在的发布压力在哪:它在两周内把 tool search 从「可选」推到「网关后默认开」(304),又在一天后被迫为这条改动兜底(305)。 功能推进速度已经快到回归窗口被压缩到 24 小时以内。
对用户而言,这意味着一条很实际的纪律变化:「钉版本 + 自己回归」不再是可选项。 过去「等两天让别人踩坑」的策略,在一天一个版本的节奏下失效了——因为两天后你拿到的可能已经是被修过两次的版本,而你遇到的问题的成因描述也随之变了。
第二个观察:Anthropic 正在把「安全默认值」做成可调,而不是不可调。 sandbox.allowNestedUserNamespaces 与之前的 decider: "person"、deniedMcpServers 属于同一类设计——默认收紧,但给你一把明确的钥匙,并在文档里写清代价。这比「不允许」更工程化,也比「静默放行」更负责。对比 Gemini CLI 近期两版在做的事(不受信任目录强制只读 + 对齐 RFC 9207),两家都在把「边界」这件事显性化,只是 Claude Code 侧更强调「谁批准」,Gemini CLI 侧更强调「哪儿可信」。
第三个观察要回到本站自己。 这是本站第五次出现「版本序列判断被后续版本追上」的情形(10-18、10-19、10-20、10-21、10-22)。前面几次都在更正里写了判据修正,这次判据没变——双源核对 + 读 prerelease 字段是正确的,错过依然会发生,因为发布节奏就是快过了复核节奏。 因此本站现在的做法不是「更勤快地查」,而是在正文里保留可被推翻的写法与核对日期,让结论可追溯、可撤回。读者看到的不该是一个永远正确的结论,而是一条能自己复核的链路。
待核实
- v2.1.305 / v2.1.306 的厂商公布发布日:官方 CHANGELOG 版本标题下不标注日期;本文时间戳取自 GitHub Releases 的 tag,非厂商公布发布日。
- 2.1.297 / 2.1.298 缺失原因:本站连续八次复核均未见这两节,原因未获知,不作推断。
sandbox.allowNestedUserNamespaces的具体风险面:官方只说会绕过沙箱文件保护,未给出哪些路径与操作会被暴露,建议在非生产环境实测后再决定是否启用。- Workflow resume 的幂等范围:官方只提到从 journal 取结果,未说明跨版本 resume(用旧版本产生的 journal)是否同样安全。
allowedMcpServers改动的实际影响面:官方未给出「此前被过滤的 server 数量或典型配置」,企业侧需自测。