Gemini CLI 修复后台 Git 更新检查劫持终端 TUI 的冻结问题
villahernandez-coder · ghdev · 2026-10-15
Gemini CLI 的一个 PR 修复了扩展后台更新检查时终端被冻结的问题:私有仓库的 Git 鉴权路径会绕过 GITTERMINALPROMPT=0,通过 askpass 助手、OpenSSH 直接打开 /dev/tty 或弹出交互式凭据提示,抢走 Ink raw-mode TUI 的 stdin。
PR 作者指出三条绕过路径:
- gitaskpass() 在检查 GITTERMINALPROMPT 之前执行,设置了 GITASKPASS/SSHASKPASS 就会照样弹提示;
- 抓取 [email protected]: 私有仓库时 OpenSSH 不理会 GITTERMINALPROMPT,直接经 readpassphrase() 打开 /dev/tty,除非启用 BatchMode=yes;
- gh auth git-credential 和 Git Credential Manager 等凭据助手也可能触发交互。
修复方式是在 getSafeGitEnv() 中统一注入 GITTERMINALPROMPT=0、清空 GITASKPASS/SSHASKPASS、设置 GITSSHCOMMAND='ssh -o BatchMode=yes'、GHPROMPTDISABLED=1、GCMINTERACTIVE=never,让未认证的后台 fetch 快速静默失败。这套环境变量组合对任何在 TUI/Agent 里调用 git 的工具都有借鉴意义。
「编程与Agent」频道最新
- ASU 发布 τ-Emotion-Bench:用户情绪波动暴露 LLM 智能体交互脆弱性 — Arizona-State-University · 2026-10-15
- 华为提出 SkillMarker:给 Agent 技能加水印,1.5K token 即可溯源 — Alan Tang · 2026-10-15
- GitHub Copilot 应用新增按仓库沙箱,可细控文件夹与网络权限 — lee_stott · 2026-10-15
- GitHub HydraFusion 更新:新增 Max 档位,模型池引入 GPT-6 系列与 Claude Opus 5.5 — lee_stott · 2026-10-15
- 小红书提出 CASI:用 Shapley 值解决智能体检索的信用分配 — _reachsumit · 2026-10-15
- 一行 CSS 让 iOS Safari 网页背景无缝延伸到状态栏 — msg · 2026-10-15