gemini-cli 终端闪烁修复:stdout 争用与原生光标双重瓶颈
buraga-kyo · ghdev · 2026-09-12
开发者向 google-gemini/gemini-cli 提交 PR #29294,修复后台命令运行时打字导致的终端闪烁与撕裂问题。
- 根因分析:两个并发渲染瓶颈——CliSpinner 动画高频触发状态更新,与 InputPrompt 的复杂重渲染(语法高亮、ghost text)争抢 stdout;终端无双缓冲,ink 的 ANSI 清行加重撕裂。同时 InputPrompt 用 chalk.inverse 模拟块光标,又开启 terminalCursorFocus 让原生光标每次按键都切换可见性(\x1B[?25l/h)并重算位置。
- 修复方案:引入 AppEvent.UserTyping 事件,spinner 在用户打字期间防抖暂停在静态帧 150ms;禁用冗余的原生光标 focus,只保留模拟块光标。
- 作者本地构建实测,并发操作下打字体验完全流畅。
「编程与Agent」频道最新
- dhh 谈 AI 时代编程:写代码不再是瓶颈,人才是 — NERDDISCO · 2026-10-31
- pi 编码 Agent 获 Rust 原生移植,免 Node 单二进制可日常使用 — jasonkneen · 2026-10-31
- 开源 ComfyUI Motion Previs Studio:先用 3D 分镜导演,再交给 AI 生成视频 — navarisun · 2026-10-31
- Replit CEO 转发:让 Replit 用 Computer Use 操控 Chrome 跑通 — amasad · 2026-10-31
- Railway 泄露密钥后,Every 团队用 Codex 与 Agent 化解危机 — every · 2026-10-31
- Google 新增 /goto 反爬验证,重创转售 SERP 的 agent 搜索公司 — jobergum · 2026-10-31