Skip to content

fix(windows): disable font ligatures in run output (#编号) - #959

Merged
1lck merged 3 commits into
1lck:previewfrom
dudylan:fix/run-output-no-ligatures
Sep 28, 2026
Merged

1lck merged 3 commits into
1lck:previewfrom
dudylan:fix/run-output-no-ligatures

Conversation

@dudylan

@dudylan dudylan commented Sep 28, 2026

Copy link
Copy Markdown
Contributor

问题

Geist Mono 默认开启编程连字:==== 分隔线渲染成实线、=>/!= 折叠为单字形,显示与进程实际输出不符(复制文本一直正确,纯显示问题)。
054293b1586d72d4

改动

run-output-text.tsx 的两个 <pre> 增加 [font-variant-ligatures:none](1 文件 2 行),Maven 面板复用同组件一并生效。
80009704ad85b5ea

验证

  • CI 原样命令(src/features/run 单进程)188/188 通过;typecheck / verify-test-stability / verify-windows-boundaries 通过
  • Windows 真机实测:==== 恢复逐个等号、==>/=>/!=/>= 逐字符显示,与复制文本一致

…delity

Geist Mono ships programming ligatures, so separator banners like
'=====' rendered as solid double lines and '=>'/'!=' folded into single
glyphs, which no longer matches the bytes the process actually emitted.
Log viewers should stay literal: set font-variant-ligatures:none on the
run output so every character is rendered individually. Copied text was
always correct; only the display changed.
@ghfind-review ghfind-review Bot added the review: medium ghfind author score; see https://ghfind.com label Sep 28, 2026
@xiaoyumuxi

Copy link
Copy Markdown
Collaborator

矩阵没有修复,修完感觉问题应该不大,改动挺小的

@dudylan

dudylan commented Sep 28, 2026

Copy link
Copy Markdown
Contributor Author

强迫症表示舒服了。

@1lck 1lck left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lithe Review

结论:样式实现未发现需要阻塞合并的功能问题;有 1 个 P2 规范遗漏,且当前功能矩阵 CI 明确失败。
范围: preview ← PR #959,共同基点 130c39f485983d9691e017b9c346747dfb58845d 至 a0560dc97d768043764ba97c3da18b85a97ce998,1 文件 2 行。

Findings / Suggestions

P2:本次用户可见的运行输出显示修改没有同步功能矩阵。请更新 shared/platform-feature-matrix.json 中相关运行/Maven 输出能力的 Windows 证据与验收步骤,重新生成两个文档视图;不要用只适用于无用户可见变化重构的 matrix-exempt 绕过。详见行内意见。

Scope Check

已检查 RunOutputText 的有输出与空态两个 pre、renderRunOutput 的 span 生成,以及 Run 和 Maven 面板调用方。禁用连字只改变文字排印,保留原始文本、复制选择、ANSI 样式、换行与滚动;两个分支都覆盖,未发现新增功能回归。未找到可验证的关联 Issue,标题中的“#编号”仍是占位符,可顺手清理。

Verification

  • 本地 diff、程序包只读、Windows 边界及矩阵生成内容一致性通过;矩阵变更门禁明确失败,输出缺少 shared/platform-feature-matrix.json。
  • 已读 当前 head 的失败日志,与本地失败原因一致;Windows 前端 CI 已通过。
  • 作者描述中的 188 项测试与 Windows 目测是作者提供的证据,本轮未重新执行。
  • 本次未运行完整构建、测试或原生 UI;没有生成新的编译缓存。代码缺陷依据当前 head 的调用链分析,未声称已在 Windows/macOS 实机复现。

建议补齐矩阵后重跑检查;本 review 使用 COMMENT,P2 不升级为 P1。

ref={preRef}
className={cn(
"cursor-text font-mono text-[12px] text-foreground select-text *:select-text",
"cursor-text font-mono text-[12px] text-foreground select-text *:select-text [font-variant-ligatures:none]",

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] 同步记录运行输出禁用连字的用户可见行为

这个修改让 ====、=>、!= 等输出按原字符显示,Run 和 Maven 面板都会受影响,属于用户可见行为变化。但整个 PR 只有本文件两行,缺少 develop-lithe 要求的 shared/platform-feature-matrix.json 更新;当前 head 的矩阵 CI 已因此失败,本地变更门禁也复现相同错误。

请在相关运行/Maven 输出能力条目补充 Windows 实现证据及逐字符显示的验收步骤,运行 node scripts/generate-platform-feature-matrix.mjs 并提交生成视图,再运行矩阵变更和一致性检查。该改动并非无用户可见变化的重构,不适用 matrix-exempt。样式代码本身未发现明确功能问题。

@1lck
1lck merged commit d9b45d3 into 1lck:preview Sep 28, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review: medium ghfind author score; see https://ghfind.com

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants