跳到主要内容

Claude Code v2.1.160 发布 —— 写个 shell 脚本,差点让 agent 改了你 .zshrc

· 阅读需 3 分钟

v2.1.160 修的刚好就是这一条。

Claude Code v2.1.160 封面

Shell 启动文件保护 + Build 工具配置守卫

这次最核心的安全改动其实只有两条:

  • agent 往 .zshenv.zlogin.bash_login~/.config/git/ 写东西之前,必须先问你是否同意
  • acceptEdits 模式下,agent 写 .npmrc.yarnrc*bunfig.toml.bazelrc.pre-commit-config.yaml.devcontainer/ 等能授予代码执行权的配置文件时,也会弹确认框

不是多此一举。agent 在帮你配 CI 或者装依赖的时候,顺手往 shell 启动文件里写一行 export PATH=... 或者 git 配置,这在自动化场景下可能完全是无意的。但后果是:下次你开终端,那行代码执行的路径跟你预期的不一样了。

这两个改动本质上是「agent 可以做,但不能不被看见地做」。不是什么复杂的防御,但缺了就是安全缺口。

Session 稳定性:挂后台的 agent 不会再丢对话

另一个大批量修复的方向是 session 状态管理。claude-code 的 background sessions 和 agent 视图有几个长期的 bug:

  • claude agents 恢复已完成的 session → 对话历史丢失,从头又跑了一遍原始 prompt
  • 过夜回收的 background session 重新 attach → 同样丢对话
  • 恢复近期不活跃的 background session → 打开卡顿好几秒(这次也优化了启动性能)
  • claude --bg 在冷启动时偶发报「socket missing」

前两个问题尤其致命——agent 跑了一夜的背景任务,第二天早上来检查,发现它其实把刚做完的阶段忘了,又跑了一遍。这批修复意味着后台 session 现在能保留对话状态,不会被错误回收。

Vim 模式、IME 输入、鼠标滚动:一堆日常烦人 bug

几个小修但频率很高的:

  • Vim 模式 p 粘贴位置修正v$ 复制后 p 粘贴到了下一行而不是光标位置。修了之后终于跟 Vim 原生行为一致了
  • CJK IME 输入位置:中文/日文输入法的候选窗口之前显示在屏幕左下角,不是光标位置。修完之后 IME 候选框跟着输入走了
  • 鼠标滚动历史:打开 session 之后第一次滚动,滚的不是 transcript 而是 prompt history。修了
  • /effort ultracode:在不支持 xhigh 的模型上不再推荐 ultracode,报错信息更明确,不再怪动态 worklow 设置

另外,auto mode 的 classifier 延迟也优化了——routine action 的推理量减少了,「could not evaluate this action」的报错概率降低。

其他清理

CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE 这个环境变量被移除了,现在是个 no-op。JetBrains 插件安装提示也从启动时消失了——如果你用 JB 系列 IDE,自己装插件就好,启动时不用再看那行提示了。

动态 worklow 的触发关键词从 workflow 改成了 ultracode——你不会因为说"这个 workflow 流程不对"就意外触发它。

升级:

curl -fsSL https://claude.ai/install.sh | bash
brew install --cask claude-code

完整更新日志:GitHub Release

以前 agent 改你 shell 配置是不打招呼的。v2.1.160 说:改之前告诉你一声。

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

#ClaudeCode #AI编程 #安全 #Session管理 #版本更新