Claude Code 2.1.308 到 2.1.309 更新:claude ultrareview 要先信任工作区,sed -i 改按普通命令处理,一批沙箱修复
10 月 22 日 Claude Code 发了 2.1.308 和 2.1.309。脚本里跑 claude ultrareview 要加 --trust-workspace,否则直接报错;sed -i 改按普通 Bash 命令处理;修了一批沙箱和权限漏洞。本站在 2.1.309 上实测了回退。
2026 年 10 月 22 日(UTC),Claude Code 先后发布了 2.1.308 和 2.1.309。2.1.308 的更新日志只有一句“修复问题、提高稳定性”,改动都在 2.1.309,有 70 多条。和本站读者关系最大的是四点:
claude ultrareview要先信任工作区。 在脚本或 CI 里跑它,不加--trust-workspace就直接报错退出。sed -i改按普通 Bash 命令处理。 以前它被当成一次文件编辑来预览,现在照原样执行,回退时也和别的命令一样对待。同一天官方改了回退的文档:Claude 已经用编辑工具改过的文件,之后命令再改,回退时也会退回去。- 一批沙箱和权限的安全修复。 用沙箱或权限规则看住 Claude 的,建议升级。
- 走网关时,“Waiting for API response”提示要等 45 秒才出现。 接中转站的读者会少看到这条提示在屏幕上闪。
这是 2.1.306 到 2.1.307 之后的两个版本。下面按“对你有什么影响”整理,不逐条翻译更新日志。本站服务器上的 Claude Code 10 月 23 日升到了 2.1.309,下文标了“实测”的几处是在它上面跑的,都是通过酷站AI 中转站。
脚本和 CI 里要改的
claude ultrareview 要先信任工作区(2.1.309)
claude ultrareview 是在命令行里发起云端深度审查的子命令(用法见《提交之前让 Claude Code 先审一遍》)。2.1.309 起,它要求这个目录已经被信任:在终端里会先问你;没有终端的场合(脚本、CI)直接拒绝。脚本里有两种办法:
- 加
--trust-workspace,只对这一次运行信任这个目录。这个参数不带值,PR 编号或基础分支要写在它前面。 - 设环境变量
CLAUDE_CODE_DISABLE_ULTRAREVIEW_TRUST_CHECK=1,关掉这项检查。
本站 10 月 23 日实测:在一个新建的 git 仓库里,不接终端运行 claude ultrareview,输出是
Error: Workspace not trusted. Please run `claude` in /home/ccdemo/demo/h1023-rewind/ur first to review and accept the workspace trust dialog. Or, in a script or CI job, pass `--trust-workspace` to trust the folder for this run only.
退出码 1。加上 --trust-workspace,或者设了上面那个变量,就过了这一关,接着报 Ultrareview could not launch: Ultrareview is currently unavailable.。这是因为 ultrareview 要用 claude.ai 账号登录,我们这台只配了中转站的 key。写这条快讯时,官方的 ultrareview 文档还没写这项要求。
回退和 sed -i
sed -i 改按普通 Bash 命令处理(2.1.309)
以前 Claude 单独跑一条 sed -i 时,Claude Code 把它当成一次文件编辑:先给你看改动预览,回退时也能退。2.1.309 起它和别的 Bash 命令一样,按 Bash 的规则确认,照原样执行。更新日志的原话是“和其他 Bash 改动一样,不再被 /rewind 恢复”。
这句话要和同一天改的回退文档放在一起看。文档现在写的是:
- 只被命令改过的文件,回退不管,要用 git 之类的版本控制撤销。
- Claude 已经用编辑工具(Edit、Write)改过的文件,之后命令再改,
/rewind也会把命令的改动一起退掉。 - 回退菜单里每一轮下面显示的改动数,按“Claude 改过的文件,不管是谁改的”来算。
本站 10 月 23 日在 2.1.309 上实测,分四句让它做:用 Edit 在 a.txt 末尾加一行,用命令往 a.txt 再追加一行,用命令新建 b.txt,单独一条 sed -i 改 c.txt。回退菜单里只有前两句显示 a.txt +1,后两句都是 No code changes。退到第二句之前,a.txt 里命令追加的那一行退掉了,b.txt 和 c.txt 原样留着。菜单底下那句 ⚠ Rewinding does not affect files edited manually or via bash. 在 2.1.309 上还在,比实际情况说得绝对。
用 Agent SDK 的 rewind_files 结果相同:先 Edit 后用命令改的文件整个退回,只被命令碰过的文件不退。详细过程见《Claude Code 权限模式怎么选》和《Claude Agent SDK 进阶》。
2.1.309 还修了回退列表的一个显示问题:通过 /code-review --fix、子代理或命令改了已跟踪的文件时,那一轮以前显示 No code changes。
安全修复(2.1.309)
用沙箱或权限规则看住 Claude 的,这几条值得升级:
- 沙箱里的命令,每次执行前 shell 的启动文件在沙箱外跑了一遍(macOS 和 Linux)。启动文件里的东西因此不受沙箱限制。
- macOS 上
denyWrite的通配,经符号链接到达的路径上不生效。 - 沙箱里的命令和自动接受的编辑,能改
--mcp-config指向的 MCP 配置文件。 - Linux 上后台命令活得比会话长时,沙箱的写入限制失效。
claude -p和 SDK 会话里,被禁用的 MCP 服务器会被后来的权限提示重新连上。- 权限检查的几个漏洞:信任了一个重定向可能失败的命令设的变量;
cd被包了一层再跑 git 的组合命令不再提示;带子 shell 的命令里,重定向能绕过Edit(path)的拒绝规则;Windows 上带多余参数、目标是当前目录的Set-Location或cd被自动批准。 - worktree 隔离的会话放过了带语言环境前缀的命令、zsh 的一些算术命令。
另外两条改了行为:
- 沙箱已经打开但起不来时,被设置排除出沙箱的命令要往沙箱的可写路径里写,会先问你,不再退到不带沙箱直接跑。
- 桌面应用和 VS Code 里,Bypass 模式下危险的
rm、rmdir直接拒绝,并告诉 Claude 怎么改写,不再弹确认等你,无人看管的会话可以接着跑。写这条快讯时,权限模式文档的表里这一格还是“会问你”。
沙箱怎么配,见《Claude Code 沙箱怎么配》。
走中转站的人要知道的
- “Waiting for API response”提示要等 45 秒才出现(2.1.309)。 有的网关在等模型时只发保活的 ping,这条提示以前会在屏幕上一闪一闪。现在只要不是走 Anthropic 自己的后端(中转站、Bedrock 之类都算),没数据 45 秒后才显示。错误页还写着 20 秒,那是直连官方的情况。
- Bedrock 上设了默认的
ANTHROPIC_BEDROCK_BASE_URL时,细粒度工具流式一直关着(2.1.309 修好)。
其他改动(2.1.309)
- 子目录里超大的 CLAUDE.md 只加载开头。 以前读到一个很大的子目录 CLAUDE.md 下面的文件,会话会反复压缩。写这条快讯时,记忆文档还写着“超过 4 MiB 的 CLAUDE.md 整个跳过”,和更新日志说的不一样。CLAUDE.md 怎么写见《CLAUDE.md 怎么写》。
- 分屏显示的代理团队队友,会继承组长命令行上的
--disallowedTools和--tools。 文档已经写明要 2.1.309 起。见《Claude Code 代理团队实战》。 - 创建和复用 worktree 时,git 不再按需拉取对象。 部分克隆(partial clone)又配了沙箱的,会先把对象拉下来。
- PowerShell 里跑的 hook,程序以退出码 2 结束时拦不住;Windows 上没装 Git for Windows 时,
"shell": "powershell"的PreToolUse和PermissionRequesthook 会放行。 两处都修了。 - hook 模块嵌套太深时,报错会写明是哪个文件,不再只是一句栈溢出。
- Claude 在 PR、issue 和评论里把角色名、占位符写成 @ 提及,惊动了不相干的 GitHub 用户,修了。
- 磁盘满了:命令因此中断时会说明,并写出该清哪个目录;临时目录所在的卷满了时,启动会给一句清楚的提示。
/claude-apiskill:搭托管智能体的子代理团队时改用multiagent_20261001,默认打开动态工作流;说某个功能不支持之前,会先查一遍线上文档。- VS Code 扩展:在解密 TLS 的公司代理后面,听写或扩展自己的请求证书校验失败时,日志里会写明怎么办;每次编辑后等新问题出现的时间,多数情况下从 1 到 1.5 秒缩到 0.75 秒。
- Code Review:
@claude review stop之后,排在正在跑的审查后面的那次推送仍会开始审查,现在它的 check 会关掉并写明原因。这是服务端的修复,和本机的 Claude Code 版本无关。 - Claude Tag 修了五处,包括 Slack 里审批过的草稿误发到私信、会话停了以后审批卡片上的 Allow 和 Deny 不起作用。
同一天文档里改了的
这几条不在更新日志里,是 10 月 22 日到 23 日官方文档的改动,影响的文章本站已经跟着改了:
- 云端定时任务默认用 auto 模式。 每次运行新开的云端会话以 auto 模式开始,由分类器判断放不放行;命中 ask 规则或者被拦次数到了上限,会停下来等人。桌面版的本地定时任务还是每个任务单独设。另外,@claudeai 发推说下周起 Pro、Max、Team 套餐里网页、桌面和手机应用的会话也默认 auto 模式,这一条还没生效,文档也还没写。
- Code Review 推送后可能沿用上次的结果。 PR 增删的行和上次一样时(空提交、干净地合并基础分支或 rebase),不重新审查,check run 的标题是
Code review skipped — no new changes或新加的Code review not repeated — earlier findings still open。在 CI 里按条数卡合并的,要先读标题,见《提交之前让 Claude Code 先审一遍》。 - 桌面应用:按住 Option(Windows 上 Alt)点会话是分屏,按住 Cmd(Windows 上 Ctrl)点会话改成在新窗口打开;接第三方、会话在本机的(在应用里接中转站就是这种)从 v3.1623.0 起也是新布局。见《Claude Code 桌面应用》。
Agent SDK 跟上了
| SDK | 版本 | 自带的 Claude Code | 另外改了什么 |
|---|---|---|---|
Python claude-agent-sdk |
0.2.172(10 月 22 日 05:22 UTC) | 2.1.308 | 只升级了自带的版本 |
Python claude-agent-sdk |
0.2.173(10 月 22 日 23:14 UTC) | 2.1.309 | 只升级了自带的版本 |
TypeScript @anthropic-ai/claude-agent-sdk |
0.3.308、0.3.309 | 2.1.308、2.1.309 | 0.3.309 修了宿主传入的 managedSettings 丢掉 disableAllHooks 等几个字段,并把内嵌的 CLI 解压到每个用户自己的临时目录 |
Claude 桌面应用 10 月 22 日发的 v3.6556.1 和 v3.6556.2,自带的都是 2.1.308。
来源
- Claude Code 更新日志(GitHub)
- Claude Code v2.1.308 版本说明
- Claude Code v2.1.309 版本说明
- Checkpointing(Claude Code 文档)
- Error reference(Claude Code 文档)
- How Claude remembers your project(Claude Code 文档)
- Automate work with scheduled tasks(Claude Code 文档)
- Read and request reviews on a pull request(Claude Code 文档)
- Desktop application(Claude Code 文档)
- Agent teams(Claude Code 文档)
- Claude Desktop 更新日志(Claude 应用文档)
- claude-agent-sdk 更新日志(GitHub)
- claude-agent-sdk-typescript 更新日志(GitHub)