Gemini CLI v0.63 PowerShell 误拦 bug 社区提交 O(N) 扫描器修复
duvanka-prasad · ghdev · 2026-11-04
Google Gemini CLI 的开源仓库收到一个大型 PR(#30110),修复 v0.63.0 引入的严重 Windows PowerShell 回归:
- 误拦截问题:常规开发命令(参数含括号、方法/静态调用、控制流语句、-NonInteractive 包装)被错误当成命令替换而拦截;且用户已确认或策略允许(--yolo/allowCommandSubstitution = true)的替换仍被无条件阻断。
- 核心修复:将 detectPowerShellSubstitution 重写为线性时间 O(N) 的有状态字符扫描器,正确处理 PowerShell 引号规则、here-string、注释、${...} 变量,并区分安全括号(路径、$str.Trim()、if (...) 等)与真正的命令替换($(...)、@(...)、scriptblock .Invoke())。
- 防绕过:拒绝注释伪装的闭合括号(如 echo ($a <) #> ; whoami))、重定向、管道、嵌套 here-string;通过单调前瞻水位保证 O(N) 无 ReDoS 风险。
- 外壳解包:重写 stripShellWrapper,支持完整可执行路径、powershell.exe/pwsh.exe/cmd.exe/POSIX shell 的 token 级解析。
PR 目前 1 个反应、4 条评论,标签 size/xl。
「编程与Agent」频道最新
- 一名工程师用 agent 自发清掉积压多年的代码 backlog — BradPorter_ · 2026-11-04
- Prized 开发盒子上线 GPU:AI Agent 现在能自己开算力了 — bigaiguy · 2026-11-04
- AnnotateKit 上线:iOS 反馈标注直接喂给 AI Agent 改代码 — julianweisser · 2026-11-04
- 用 Pydantic 开源沙箱 Monty,AIOps 平台 token 成本降超 30% — samuelcolvin · 2026-11-04
- scikit-learn 维护者:编码 agent 别浪费 token 重写随机森林,直接调库 — GaelVaroquaux · 2026-11-04
- Claude Code 云会话预启动、diff 行内评论,套餐附赠月度 API 额度 — ClaudeDevs · 2026-11-04