Claude Code 2.1.314:禁写工作区外与空闲压缩

Anthropic 于 2026 年 10 月 30 日发布 Claude Code 2.1.314。这一版正好赶上 Cursor 扩展市场 2.1.312 / 2.1.313 被篡改之后的替换窗口(事件见快讯、自查教程)。更新日志本身列了多项新增,以及大量修复;写代码的人可以先看「工作区外禁写」和「空闲压缩」。
发生了什么
官方 CHANGELOG 把 2.1.314 标在 10 月 30 日。除权限与空闲压缩外,同版还修了组织管理员限制 effort 时反复报 “Invalid effort level”(改为自动降档重试并告知所用档位)、Bedrock 多图会话压爆上下文、Foundry 缺默认模型部署时的回退、TLS 交叉签名根证书导致的 UNABLE_TO_GET_ISSUER_CERT、PreCompact Hook 输出过长弄挂压缩(单 Hook 输出截到 10000 字符)等。GitHub Release v2.1.314 的发布时间戳为 2026-10-30T01:06:26Z(北京时间 30 日 09:06)。
开启禁写的写法(写入用户或项目 settings,与现有 blockReadsOutsideWorkingDirectories 对称):
{
"permissions": {
"blockWritesOutsideWorkingDirectories": true
}
}
打开后,会话不再提供 EnterWorktree / ExitWorktree 工具。日志与第三方整理都强调:它不限制 Shell、MCP 工具和 Hook——Agent 仍可能通过终端改到工作区外;远程执行转发设置时会丢掉这对读写封锁项,远端会话不会替你强制执行。
为什么重要
同一周里扩展供应链出事,官方又把「文件工具写到哪里」收紧了一档。禁写开关给本地自动化、多仓库 Agent、共享开发机多了一层默认护栏:至少 Write/Edit 不会悄悄改到家目录配置或别的项目。空闲压缩则针对 VS Code / Desktop 里拖了很久的对话:提示缓存过期后,不必整段重喂,摘要顶上。
禁写挡的是文件工具,不是 Shell。要收紧终端,还得靠权限规则、沙箱或 Hook,别以为开一个布尔值就万事大吉。
一个主对比:开禁写之前 vs 之后
| 默认(未开) | blockWritesOutsideWorkingDirectories: true | |
|---|---|---|
| Write / Edit / NotebookEdit | 可按权限模式写到工作区外 | 工作区外一律拒绝;settings 文件也拒写 |
| Worktree 进出工具 | 可提供 | 从工具列表移除 |
| Shell / MCP / Hook | 按原有规则 | 不受该开关限制 |
| 远程会话 | — | 该设置不会随沙箱设置转发到远端 |
| 被拒时怎么办 | — | 提示 /add-dir 追加目录,或关掉设置 |
谁该关心
- 刚从 Cursor 扩展后门自查过来的人:先按教程清残留,再把扩展升到 ≥ 2.1.314;CLI 用户对照
claude --version与 更新日志 升级。 - 跑
claude -p/ Agent SDK 的 CI:启动失败现在会非 0 退出,流水线终于能区分「没跑起来」和「跑完了」。 - 企业网关与 Bedrock 用户:按组分流和
guardrail_trace方便审计,不含触发文本本身。 - VS Code / Claude Desktop 长会话用户:空闲压缩减少「缓存一过期就要重读半屏历史」的浪费;可在
/config里看到相关项(日志称对关闭遥测的订阅用户、以及 Bedrock/Vertex 等在一小时缓存开启后也会走这套)。
最后
用 Cursor 扩展的先完成自查再升级;用 CLI 的,打开禁写前要想清楚 Shell 仍可能写出工作区。设置文档与 CHANGELOG 冲突时,以 code.claude.com 更新日志 为准。