docs(troubleshooting): add workaround for TUI flicker in web-based terminals - #8867
docs(troubleshooting): add workaround for TUI flicker in web-based terminals#8867LelandJin wants to merge 3 commits into
Conversation
…rminals Document the confirmed cause (Virtualized History full-screen ANSI repaints overwhelming high-latency web terminals) and the verified workaround (ui.useTerminalBuffer: false, optionally ui.mouseTracking: false) from issue QwenLM#8659.
|
Thanks for the PR! Template looks good ✓ Problem: observed, not theoretical — linked issue #8659 reports continuous flicker/tearing in Alibaba Cloud Workbench with full environment details (TERM=xterm, no COLORTERM/TERM_PROGRAM, v0.21.7), and @doudouOUC confirmed the cause in that thread: Direction: aligned — the maintainer's comment in #8659 explicitly sets the fix direction as "docs + startup hint first, auto-detection later", and this PR ships exactly the docs half. Deferring auto-detection to a follow-up is the right call: missing Size: not applicable — docs-only, 1 file, +15/−0, no core paths. Approach: the scope is exactly right. One troubleshooting entry placed next to the existing terminal-behavior entries (tmux trackpad, right-click/mouse tracking), no unrelated changes. The entry matches the maintainer's confirmed analysis: Risk: no elevated risk signals (docs path only, no high-risk files touched). Moving on to code review. 🔍 中文说明感谢贡献! 模板完整 ✓ 问题:已观测到的真实问题,非理论推测——关联 issue #8659 报告了阿里云 Workbench 中的持续闪烁/撕裂,附完整环境信息(TERM=xterm、无 COLORTERM/TERM_PROGRAM、v0.21.7);@doudouOUC 已在该帖中确认原因。我也对照代码核实: 方向:对齐——maintainer 在 #8659 中明确给出的修复方向是「先文档 + 启动提示,自动检测后续再做」,本 PR 交付的正是文档部分。自动检测推迟到后续 PR 是合理的:仅凭缺少 规模:不适用——纯文档,1 个文件,+15/−0,未触及核心路径。 方案:范围恰当。新增一条 troubleshooting 条目,紧邻现有终端行为条目(tmux 滚轮、右键/鼠标追踪),无无关改动。内容与 maintainer 确认的分析一致: 风险:无升级风险信号(仅文档路径,未触及高风险文件)。 进入代码审查 🔍 — Qwen Code · qwen3.8-max Reviewed at |
Code reviewDocs-only change, reviewed statically against current Independent proposal first: for "document the confirmed web-terminal flicker workaround", I'd add one entry under "Common error messages and solutions" in That is exactly what this PR does. What I verified:
No blockers, no convention violations. No diagram or files table — one file doesn't earn them. Test evidenceThis is an unattended CI run — triage never builds or executes PR code; the signal below is the PR's own CI read via the API.
The full The PR's substantive claim — that 中文说明代码审查纯文档改动,基于当前 先给独立方案:要「记录已确认的 web 终端闪烁解决方案」,我会在 PR 的实际做法与此完全一致。核实内容:
无阻塞项,无规范违规。只有一个文件,不附时序图或文件清单。 测试证据本次为无人值守 CI 运行——triage 从不构建或执行 PR 代码;以下是通过 API 读取的 PR 自身 CI 信号。 完整的 PR 的实质主张—— — Qwen Code · qwen3.8-max Reviewed at |
|
Confidence: 5/5 — clean docs-only change that delivers exactly what the maintainer prescribed in #8659; every technical claim in the entry checks out against the code. Stepping back: this PR exists because a maintainer said "docs first", and it does exactly that — one accurate, correctly-placed entry, nothing more. My independent proposal and the diff converge on the same change, and I found no simpler version of it. The author also resisted the temptation to bundle the startup hint or auto-detection code; that's the right scope call, and the PR names the follow-up explicitly. The entry even improves on the original issue report by dropping the irrelevant Verdict: approve. One procedural caveat: the full CI suite has not executed on this commit yet — fork PRs from first-time contributors wait on maintainer approval, and the run is at 中文说明置信度:5/5 —— 干净的纯文档改动,恰好交付 maintainer 在 #8659 中指定的内容;条目中的每项技术表述都已对照代码核实。 退一步看:这个 PR 源于 maintainer 的一句「先做文档」,而它做的也仅此而已——一条准确、位置恰当的条目。我的独立方案与 diff 殊途同归,也没有更简的做法。作者也没有顺手夹带启动提示或自动检测代码,范围取舍正确,且 PR 中明确指出了后续工作。条目甚至比原始 issue 报告更严谨:去掉了无关的 结论:批准。一个程序性说明:完整 CI 套件尚未在此 commit 上执行——首次贡献者的 fork PR 需 maintainer 批准运行,当前状态为 — Qwen Code · qwen3.8-max Reviewed at |
|
📄 Docs-only change — the automatic review ran at
Reviewed head: 中文说明📄 纯文档变更 —— 自动评审以 |
doudouOUC
left a comment
There was a problem hiding this comment.
Reviewed — no blockers. Suggestions are inline. 2 Suggestion-level finding(s) could not be anchored to a changed line and were dropped; nothing further to act on here.
中文说明
已审查——无阻断问题。 建议见行内评论。 2 条建议级发现无法锚定到改动行,已丢弃;此处无需进一步处理。
— deepseek-v4-flash via Qwen Code /review (v0.21.8)
Co-authored-by: jinye <djy1989418@126.com>
What this PR does
Adds a troubleshooting entry for TUI flickering/tearing in web-based terminals (for example Alibaba Cloud Workbench), documenting the confirmed cause and the verified workaround (
ui.useTerminalBuffer: false, optionallyui.mouseTracking: false). Docs only — no code changes.Why it's needed
Issue #8659 reports continuous flicker/tearing when Qwen Code runs in browser-based terminals. @doudouOUC confirmed the cause in the thread:
shouldUseVirtualViewport()cannot distinguish web terminals (TERM=xtermon a TTY, noCOLORTERM, noTERM_PROGRAM), so Virtualized History activates by default and its full-screen ANSI repaints overwhelm high-latency web terminals. The fix direction agreed in the thread is "docs + startup hint first, auto-detection later". This PR delivers the docs half so affected users can find the workaround today; the startup hint and auto-detection need a detection-heuristic design discussion (missingCOLORTERM+TERM_PROGRAMalone false-positives on ordinary SSH xterm sessions) and are proposed as a follow-up.Reviewer Test Plan
How to verify
Docs-only change. Confirm the new entry renders correctly in
docs/users/support/troubleshooting.md(placed next to the other terminal-behavior entries: tmux trackpad, right-click/mouse tracking). The workaround itself was verified by the reporter in #8659: settingui.useTerminalBuffer: falseswitches rendering to the append-only Static path and resolves the flicker in Alibaba Cloud Workbench.Evidence (Before & After)
N/A — docs change.
Tested on
Environment (optional)
Alibaba Cloud Workbench (browser-based terminal), TERM=xterm, no COLORTERM/TERM_PROGRAM — the environment from the original report.
Risk & Scope
Linked Issues
Part of #8659
中文说明
本 PR 的内容
为「基于 Web 的终端(如阿里云 Workbench)中 TUI 闪烁/撕裂」问题新增一条 troubleshooting 文档,记录已确认的原因和已验证的解决方案(
ui.useTerminalBuffer: false,可选ui.mouseTracking: false)。纯文档改动,无代码变更。为什么需要
Issue #8659 报告在浏览器终端中运行时 Qwen Code 持续闪屏/撕裂。@doudouOUC 在讨论中确认了原因:
shouldUseVirtualViewport()无法识别 web 终端(TTY 上TERM=xterm、无COLORTERM、无TERM_PROGRAM),导致 Virtualized History 默认启用,其全屏 ANSI 重绘超出高延迟 web 终端的处理能力。讨论中商定的修复方向是「先文档 + 启动提示,自动检测后续再做」。本 PR 先交付文档部分,让受影响用户今天就能找到解决方案;启动提示与自动检测需要先讨论检测启发式(仅凭缺少COLORTERM+TERM_PROGRAM会在普通 SSH xterm 会话上误报),建议作为后续 PR。审阅者测试计划
验证方式:纯文档改动。确认
docs/users/support/troubleshooting.md中新条目渲染正常(与 tmux 滚轮、右键/鼠标追踪等其他终端行为条目放在一起)。解决方案本身已由 #8659 报告者验证:设置ui.useTerminalBuffer: false后渲染切换到 append-only Static 路径,阿里云 Workbench 中闪烁消失。前后对比:N/A — 文档改动。
测试系统:Linux ✅(macOS/Windows N/A)。
环境:阿里云 Workbench(浏览器终端),TERM=xterm,无 COLORTERM/TERM_PROGRAM —— 与原始报告一致。
风险与范围
关联 Issue
Part of #8659(不自动关闭,自动检测部分待后续)