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」频道最新
- 一万 Agent 协作 88 小时解世纪难题?网友预言从狂欢到打脸全流程 — IgorCarron · 2026-09-12
- Devin Fusion 首登 Coding Agent 榜:保性能同时显著降本 — daniel_mac8 · 2026-09-12
- 100 并发 Agent 压测:全部 HTTP 200,连续性评分却崩了 — its_vayishu · 2026-09-12
- Blender MCP 实测: impressive 但只给 80% 可用方案 — Intelligent_Prize532 · 2026-09-12
- 在公司里养了一支 Claude 智能体大军,如何管理 — Trokkan · 2026-09-12
- 网友用 DeepSeek 4.1 Flash 驱动 Claude Code:开源模型也能跑 Agent 流程 — jasonkneen · 2026-09-12