Skip to content

chore(submodule): 前移 external/ftxui 至 f98588b4(FTXUI PR #2 hover motion) - #37

Closed
LIUXIN557 wants to merge 3 commits into
masterfrom
feat/tui-hyperlinks
Closed

chore(submodule): 前移 external/ftxui 至 f98588b4(FTXUI PR #2 hover motion)#37
LIUXIN557 wants to merge 3 commits into
masterfrom
feat/tui-hyperlinks

Conversation

@LIUXIN557

@LIUXIN557 LIUXIN557 commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

背景

TUI 超链接增强(点击打开 / OSC8 透传 / 悬停气泡)的应用侧代码已合入 master(commit 0b97e49),其中 src/main.cpp 调用了 FTXUI 新增的 ftxui::App::EnableMouseHoverMotion(opt-in DEC 1003 hover motion)。该方法来自已合并的 FTXUI PR #2shaohaozhi286/FTXUI#2,merge commit 7eb56df3;f98588b4 已是 main 历史祖先)。

master 当前编译不过:master 已含调用方代码,但 external/ftxui 仍停在 658c942c,Linux CI 报 src/main.cpp:4929: error: 'class ftxui::App' has no member named 'EnableMouseHoverMotion'(见 PR #36 的 run 33653685659)。本 PR 即修复该编译断裂。

本 PR 做了什么

  1. external/ftxui gitlink 658c942c → f98588b4(1 行)—— 让 master 恢复可编译,悬停气泡/OSC8 透传路径完整可用。
  2. 顺带修复 verify_package_contract 契约测试的误报(tests/scripts/verify_package_test.sh)。

关于第 2 项(与子模块无关,但是 CI 全绿的必要条件)

tests/scripts/verify_package_test.sh 的 darwin app bundle 用例先用 mkdir -p 创建了 .../share/acecode/seed 目标目录,随后执行:

cp -R "$fixture/assets/seed" .../share/acecode/seed

由于目标目录已存在,cp -R 会把源目录复制为目标目录下的同名子目录,实际布局变成 seed/seed/{MANIFEST.json,seed.version,skills/demo/SKILL.md},与 assets/seed 比对时产生 missing + unexpected;而校验器只回传最后一行,表现为:

[FAIL] seed bundle (app bundle): seed bundle unexpected: seed/skills/demo/SKILL.md

改为复制目录内容(cp -R src/. dst/),使 app bundle 内 seed 布局与 assets/seed 一致。

该失败自 verify_package_contract 引入(PR #35)起在 master 上即为 pre-existing,与本 PR 的子模块变更无关(证据:PR #35 的 run 33653587072 报同样的 seed bundle unexpected: seed/skills/demo/SKILL.md)。

验证方式:以同一 fixture 对比两种写法——旧写法 FAIL (1 of 9 checks),新写法 PASS (9 checks)

关联

验证

  • 本 PR CI:Build CLI and test binary 通过(证明 gitlink 前移修复了 master 的编译断裂);Run ctest 3809 个测试中仅 verify_package_contract 失败,现已由本 PR 第 2 项修复。
  • 本地全量单测 518 suite:GTEST_FILTER 排除两个 master pre-existing abort 测试(RemoteWebTcpProxy.* / SettingsMutations.*)后全跑,9 FAILED 全部为 master pre-existing(network/pty/browser/statefile/settings,macOS 12 本地环境),本次变更零回归。
  • 不支持的终端(无 hover motion 能力)输出字节级一致(悬停/OSC8 经终端能力探测,关闭时无行为变化)。

FTXUI PR #2(opt-in mouse hover motion, DEC 1003)已合并进
shaohaozhi286/FTXUI:main(merge commit 7eb56df3;f98588b4 已是 main
历史祖先)。前移 ACECode 的 external/ftxui gitlink 658c942c → f98588b4,
使 feat/tui-hyperlinks 分支现在可独立编译(src/main.cpp 调用的
EnableMouseHoverMotion 来自该补丁)。ports/ftxui port-version 已在 5.x 一并
bump 至 4,vcpkg ABI hash 已刷新。
tests/scripts/verify_package_test.sh 的 darwin app bundle 用例先用 mkdir -p
创建了 .../share/acecode/seed 目标目录,随后执行

    cp -R "$fixture/assets/seed" .../share/acecode/seed

由于目标目录已存在,cp -R 会把源目录复制为目标目录下的同名子目录,
实际布局变成 seed/seed/{MANIFEST.json,seed.version,skills/demo/SKILL.md},
与 assets/seed 比对时产生 missing + unexpected,校验器只回传最后一行
unexpected,表现为:

    [FAIL] seed bundle (app bundle): seed bundle unexpected: seed/skills/demo/SKILL.md

改为复制目录内容(cp -R src/. dst/),使 app bundle 内 seed 布局与
assets/seed 一致。该失败自 verify_package_contract 引入(PR #35)起在
master 上即为 pre-existing,与子模块指针变更无关。

验证:以同一 fixture 对比两种写法,旧写法 FAIL(1 of 9),新写法 PASS(9 checks)。
LIUXIN557 pushed a commit that referenced this pull request Sep 2, 2026
…HoverMotion)

master 经 #36 合入 0b97e49(TUI 超链接增强 5.1-5.3)后,src/main.cpp 调用了
ftxui::App::EnableMouseHoverMotion / EnableSynchronizedOutput 等新 API,但
external/ftxui 的 gitlink 仍停留在 658c942c——该版本 ftxui 无
EnableMouseHoverMotion 成员,导致 linux-x64 CI 在 Build CLI and test binary
步骤失败(error: class ftxui::App has no member named EnableMouseHoverMotion),
master 处于构建红态(Merge #36 run 33653685659 同一步失败,为 pre-existing)。

前移至 f98588b4(FTXUI PR #2 hover motion,已确认合入 shaohaozhi286/FTXUI
main,任意机器 clone 可及;与 #37 分支 ae67486 指向一致)。
@LIUXIN557

Copy link
Copy Markdown
Collaborator Author

PR #38 (fix/verify-package-desktop-probe) 已合并进 master,本 PR 的全部内容已被覆盖:

  • gitlink 前移 658c942c → f98588b4 → master bbe7320
  • verify_package_test.sh 的 cp -R src/. dst/ 修复 → master 3521b1d ✓(同补丁,逐字一致)
  • master 还额外修复了 verify_package.py probe_desktop 的 TOCTOU 竞态(desktop immediate exit flake)

此时若再合并本 PR 会把 master 的 TOCTOU 修复回退掉(本分支 verify_package.py 为旧版),故关闭而非合并。功能已全部经 PR #38 落地。

@LIUXIN557 LIUXIN557 closed this Sep 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants