三个能立刻用上的改动
10月26日,Claude Code 发布 v2.1.311。这是 2026 年第 253 个版本,近一个月发了 25 个,平均 0.9 天一个。版本密集到这个程度,改动日记已经不能按大版本读,只能按你今天有没有被这个问题卡住读。
本次新增的功能只有一组:自托管 runner 加了 --hold-idle-file 与 --max-hold-min,用来在宿主报告仍有残留进程时保持空闲会话不被回收。其余五十多项全是修复。另外给 Explanatory 输出风格加了一条使用提示,当你向 Claude 要解释时会出现。
第一条值得关注的是启动冻结:当 CLAUDE.md 里存在超长列表项时,启动阶段以及读写文件之后会出现长时间卡顿,这次修掉了。维护过几千行规范文件的人大概被这个坑拖过。
200K 那道坎终于不是死路
更影响日常的一条:标准上下文会话在请求超过 20 万 Token 时,会以 Usage credits required for 1M context 直接停下。现在的行为改成自动压缩对话并继续跑。对长会话来说,这等于把一次硬中断换成一次可控的上下文裁剪。
同一批里还有几处能明显感到的差异:MCP 服务器没回应资源读取、或者 skill 还在下载时,按中断键要等到超时才会生效,已修;一次改几千行时 Write 与 Edit 会卡上 5 秒并报 0 行变更,已修;子代理无法使用在其启动之后才连上的 MCP 工具,已修;自动压缩之后 Claude 读到的是旧的 MEMORY.md 与 CLAUDE.md,已修。
官方说明里最实用的一句是:Claude Code 不再因为文件被改动而停住。
外围也一起收了:SubagentStop 钩子原本每个运行中的子代理每分钟跑两次,现在改成完成时跑一次;@ 文件选择器之前会忽略 .ignore 与 .rgignore 里重新包含 git 忽略文件的反向规则;子代理的隔离 worktree 会在它启动的后台子代理还在工作时被删掉;Cowork 云会话里 WebFetch 与 WebSearch 遇到卡住的响应会一直挂着,现在 300 秒未完成即失败。
升级与验证
升级照旧:claude update,或者用 npm 重装最新版。自托管 runner 场景才需要加那两个参数,普通本地使用不受影响。
要留意的是版本号密集带来的隐性风险:相邻两个小版本之间可能同时改了沙箱边界与权限提示,CI 里锁版本比追最新更稳。上周的 2.1.309 一次性收了九处沙箱加固,本周这批以稳定性为主,两类的风险方向完全不同。