gemini-cli 修复自动更新误报:PATH 遮蔽致旧版仍在运行
urielefrenvirtusa · ghdev · 2026-10-15
google-gemini/gemini-cli 的 PR #29757 修复了自动更新的一个隐蔽 bug:当系统存在多个安装(如 /usr/local/bin 在 $PATH 中先于 /usr/bin,或 npm/pnpm 全局前缀切换)时,更新命令把新版本装进了包管理器前缀目录,而实际运行的二进制未被更新。handleAutoUpdate 此前只看子进程退出码 0 就误报更新成功,导致用户陷入无限更新提示循环。
修复方案:
- 子进程退出码为 0 后,通过 process.argv[1] 检查实际运行二进制的 package.json 版本
- 若版本仍旧于最新版,发出 update-failed 并提示可能被 $PATH 中的其他安装遮蔽
- 无法读取版本信息时采用 fail-safe,不阻断正常更新
- 新增 getPackageJsonFn 注入点便于确定性单元测试
该 PR 修复 issue #21553,含 PATH 遮蔽检测的新测试覆盖。
「编程与Agent」频道最新
- PHP/node.js/GitLab 大规模安全事件后,Cognition 开源 Devin 修复插件 — Scobleizer · 2026-10-23
- 用 Grok 机器人+租 GPU,个人微调模型变得触手可及 — Rasmic · 2026-10-23
- 一句 prompt 挖出 PHP 预认证 RCE:Agent 辅助漏洞挖掘实录 — chrisrohlf · 2026-10-23
- AutoRouter 公测:按任务难度自动在 Claude/GPT 等模型间分单省 token — floguo · 2026-10-23
- Speak 详解 GPT-Live 实时语言家教:如何用低延迟决策实现即时纠错 — pbbakkum · 2026-10-23
- Google Live API 新增决策触发器,比 function call 更快 — pbbakkum · 2026-10-23