跳到主要内容

Claude Code v2.1.176 发布 —— 二十多个修复扎堆,Remote Control 和可用模型白名单是重灾区

· 阅读需 5 分钟

封面图

以前:Remote Control 的连环坑

Remote Control 是 Claude Code 最方便也最危险的功能之一——手机上点一下,终端里的 agent 就动起来了。但这个链接两端之间的状态管理,出了不少问题:

  • web/mobile 连接上来,静悄悄把 session 模型换了。你在终端里配好了 Sonnet,Remote 一接进来,agent 切到了 Opus,你甚至不知道。
  • 断连通知变成了数字代码。断开时显示 "Disconnected: code 7",你得去翻文档才知道是什么意思。
  • 连接失败给对话加了一行冗余日志。连接失败本应静默或只通知一次,但 transcript 里多了一条重复记录。
  • 签另一账号登录,之前的 Remote session 不断开。理论上登录会被 TOTP 刷新,但旧 session 还活着,存在越权隐患。

这些不是最近才冒出来的 bug——Remote Control 上线以来,断连体验一直很粗糙。这次一次性修了四条,基本把"连接生命周期"这个状态机擦了一遍。

现在:可用模型白名单的防线被加厚了

v2.1.175 加了 enforceAvailableModels,从管理员端锁死了 Default 模型不能绕过白名单。但攻击面比想象中更宽:

  • 环境变量 ANTHROPIC_DEFAULT_*_MODEL 还能覆盖白名单。就算管理员配了白名单,用户在 shell 里 export 一个 ANTHROPIC_DEFAULT_OPUS_MODEL=claude-3-opus-4-8,alias 解析完还是跳到白名单外的模型。这次堵上了——alias model picks 不能 redirect 到 blocked model。
  • /fast 模式切换也没有白名单检查/fast 默认切一个轻量模型,但如果管理员没放行那个模型,/fast 应该拒绝而不是强行切换。现在 /fast 在目标模型不在白名单内时会拒绝执行。
  • 子 agent 的 model override 此前也不受 availableModels 约束。agent 模板里写 model: claude-opus-4-8,即使管理员只允许 Sonnet,子 agent 照样用 Opus。上版本(v2.1.172)修了子 agent 白名单,这次算是把余下的缺口(/advisor 预选模型、agent dispatch 选择器)一起补了。

一个细节:管理员花一个下午配好的策略,用户一行 env var 就能绕过——这种事在 SaaS 产品里屡见不鲜。连着两个版本砍环境变量绕过路径,说明 Claude Code 的 enterprise 合规需求确实在上升。

剩下的修复,按主题排比比较清楚

终端兼容性

  • /copy 和鼠标选中的文本在 tmux + SSH 下拷贝不到系统剪贴板——常见场景:跳板机连服务器,代码复制不出来
  • 旧版 tmux(<3.2)的 paste buffer 加载失败
  • Windows 上 agent 视图输入框没有文本光标

背景 session & daemon

  • /bg 中途打断后 agent 一直显示 "Working",实际上没活干了——持续占用终端注意力
  • claude --bg -cn &lt;name> 设的 session name 没生效
  • 背景 session 的 Windows 网络路径在持久化状态里没做脱敏,respawn 时路径解析错误
  • 损坏的状态文件里 malformed resume ID 导致恢复拒绝,但不报清楚原因
  • Windows daemon 在 ~/.claude/daemon 目录设置了 ReadOnly 属性后启动失败
  • 自动更新后窗口跨版本发不了回复,现在会在 daemon status 里说明是 version skew

Sandbox 与 hooks

  • Linux sandbox 在 .claude/settings.json 是 symlink 且指向绝对路径时启动失败
  • Hook 的 if 条件(如 Edit(src/**), Read(~/.ssh/**), Read(.env))此前不匹配这些常见 pattern——写了 hook 规则的人会发现它根本没生效
  • Fable 5 的 auto mode 在没有启用 Opus 4.8 的组织里会直接报错,现在 fallback 到可用的最佳 Opus 模型

Session 状态

  • /cd 和工作目录移动后,session 仍然报告旧目录的 git branch——git branch 显示的是 main 但实际在 feature/xxx
  • Background agent 按 PR URL 搜索:PR 在 scheduled wakeup 或 job 阻塞期间打开的,之前搜不到
  • Cloud session 闲置太久后重连报 "Could not resolve authentication method"

并发与多窗口

  • claude agents 里按返回键,一个窗口返回会把其他附加到同一 session 的窗口也弹回;现在各窗口独立

升级

已安装用户:

claude update

新安装(三种方式任选):

# macOS/Linux 推荐
curl -fsSL https://claude.ai/install.sh | bash

# Homebrew
brew install --cask claude-code

# Windows
irm https://claude.ai/install.ps1 | iex

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#ClaudeCode #AI编程 #可用模型管理 #RemoteControl