第 36 周 · 9月7-11日
第三方中转端点每回合 400 的修复(v2.1.265 起的回归)、
maxEffortLevel全供应商限档、claude plugin eval插件评测套件、任务追踪工具收窄到指定模型,以及一整周密集的提示缓存修复。
版本范围: v2.1.263 → v2.1.269
一次影响国内用户的修复:中转端点每回合 400
如果你用 ANTHROPIC_BASE_URL 指向第三方 Anthropic 兼容端点,v2.1.265 到 v2.1.267 期间会遇到每个回合都返回 HTTP 400。v2.1.268 定位到根因:Artifact 工具输入 schema 里的一段正则被这些端点拒绝,与你的配置无关。
这一周里同类问题还有一条方向相反的:v2.1.267 修掉了托管的 allowedHttpHookUrls 等设置在不可读时放行一切的行为(正确行为应是放行为空)。设置读不出来时默认放开,是比读不出来更危险的失败方式。
重磅更新
maxEffortLevel:给 effort 设上限
v2.1.267 新增 maxEffortLevel,可写在顶层或 modelSettings 下按模型指定,在所有供应商上限制 effort 等级,用户仍可自己选更低的档。对按 token 计费的团队,这是比事后看账单更直接的闸门。
同版还加了 --system-prompt-snapshot off,让每次请求都重新渲染系统提示词,而不是复用会话记录下来的版本。
claude plugin eval:插件也能跑评测
v2.1.269 新增 claude plugin eval,针对 Claude Code 跑插件的评测套件,产出可复现的评分报告(JSON + HTML)。写插件时终于有了「改完是变好还是变坏」的判据。
同版把 Bash 命令改动的文件 diff 附到工具结果里(bashEditDiffEnabled),并新增 /output-style [name] 直接列出与切换输出风格 —— Remote Control、云端及其他 headless 会话同样可用。
--plugin-dir 支持整个插件文件夹
v2.1.265 起 --plugin-dir 可以指向一个文件夹,其下每个带 manifest 的子文件夹都会加载,运行期间增删也能被识别。本地并行开发多个插件不必再逐个挂。
安全与权限
- v2.1.268 修复
/mcp、/plugin详情与claude mcp list/get显示 MCP 配置里${VAR}占位符解析出的明文密钥 - v2.1.268 修复插件与市场的报错信息显示 git 源 URL 里的 token 或口令
- v2.1.268 修复符号链接目录(macOS 的
/etc、/tmp、/var;Linux 的/bin)上的拒绝与询问规则在按真实路径给出时不生效 - v2.1.265 修复 macOS/Linux 上含反斜杠的插件路径绕过符号链接围栏检查
- v2.1.269 修复以
!开头的拒绝/询问规则越出写它的那个设置来源生效,现只在自身来源内生效 - v2.1.269 修复
Edit()拒绝规则与写路径检查对 Bashtee写入的文件不生效 - v2.1.269 修复插件为会话解压出的文件可被同机其他用户读取,且保留归档里的全局可写位
- v2.1.269 修复
permission_denials遥测漏掉被路径拒绝规则挡下的 Read/Edit/Write
值得留意的行为变更
- v2.1.268 任务追踪工具(TaskCreate/Get/Update/List、TodoWrite)改为只在 Claude 3.x、Opus 4.0–4.7、Sonnet 4.0–4.6、Haiku 4.5 上提供,其余模型需设
CLAUDE_CODE_ENABLE_TODO_TOOLS=1 - v2.1.268
/plugin里安装、启用或停用插件在关闭菜单时即生效,不再需要/reload-plugins - v2.1.268 WebFetch 在服务器挂着响应不结束时不再无限等待,改为 300 秒超时(
CLAUDE_CODE_WEBFETCH_DEADLINE_MS可调,0关闭) - v2.1.268 auto 模式的拒绝信息会指名是哪条规则挡住的,并要求 Claude 换更安全的做法、先做完无关工作再来问
- v2.1.267 Bash 工具的描述规范改为要求用平实语言说明命令做什么,而不是复述命令本身
- v2.1.265 双键快捷键在第二个键超过 1 秒才到达时不再静默取消(tmux 里常见),改为等 3 秒并在超时后给出提示
提示缓存修复集中在这一周
- v2.1.267 修复用
/model切换模型时重发全部工具定义;提交与 PR 的署名文本改以会话备注形式送达 - v2.1.267 修复中途消失的工具(MCP 断连或升级)重写工具列表并丢弃此前的思考
- v2.1.267 子 agent 与用
--system-prompt启动的会话现只记录一次系统提示词与工具定义 - v2.1.268 修复 SDK 会话用
excludeDynamicSections时首条消息被每次重渲染 - v2.1.269 修复回复因输出 token 上限被截断并自动续写后的下一回合,缓存被部分失效
- v2.1.265 修复恢复前台派生的子 agent 时其工具列表与系统提示词前缀被改写
稳定性修复要点
- v2.1.268 修复长时间空闲会话里的忙等循环占满一个 CPU 核
- v2.1.268 修复
/compact与自动压缩生成的摘要把含$序列的文本弄乱 - v2.1.265 修复
http类型但只讲旧版 HTTP+SSE 传输的 MCP 服务器始终连不上,现按规范回退到 SSE - v2.1.265 修复非交互会话在每条新用户消息处重置 shell 工作目录,
cd现跨回合保留 - v2.1.265 修复 Windows 上在 AppContainer 或受限令牌沙盒里运行时 Read/Write/Edit 拒绝所有文件
- v2.1.265 修复
/model opusplan[1m]被拒「Model not found」 - v2.1.267 修复恢复大会话(转录超 5 MB)时并行工具调用及其 hook 输出被丢弃
- v2.1.267 修复
claude remote-control在服务端凭据到期(启动后约 30 天)时退出并断开所有附着会话 - v2.1.269 修复压缩后告知 Claude 的 git 状态是会话开始时的旧状态
- v2.1.269 修复
/goal遇 API 错误、网络中断或 token 上限后静默停滞,现改为退避重试或暂停并说明原因 - v2.1.269 修复自动压缩找不到可总结的早期对话时,会话永久卡在「Prompt is too long」
- v2.1.269 修复用日文、中文、泰文等词间无空格语言书写的文本被丢掉提示建议