R6.6 round 1 fix: no Git says to install ElyTree; Linux keeps Mark's Git

git::own returns git::NoGit when neither the app nor ElyTree has Git;
ElyMark's Git item then reads 'needs ElyTree'. Linux AppImages stand
alone, so ElyMark keeps its Git there (packages share the AppDir).
The bundle fixture now has ElyTree's executable folder.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
ZacharyZhang-NYandClaude Opus 5.5 committed 2026-10-15 12:21:13 -04:00
1 parent 5958e73ade
commit 8580aed6b0
8 files changed
+71 -19

No files matched your search

+1 -1
View File
@@ -264,7 +264,7 @@
- [x] R6.3 ElyMark 侧栏清除最近列表:核对 98692cb 已做到(文件页能清空最近列表),随本次发布;会话恢复的标签不把文件加回列表,显式打开(含已开着的文件与其硬链接)照样加入
- [x] R6.4 重发 0.1.5:删去 v0.1.5 的标签与发布,在修复的提交上重打;Windows、WSL2 的 Linux、Mac mini 本机建(签名、公证)并上传;本机装上(标签在 39ff567;44 个文件,同名的源码包只留 Linux 的一份,见 P3-16;六个 dmg 公证并钉票;本机六个应用 0.1.5,冒烟启动均正常退出)
- [ ] R6.5 macOS 的 ElyDoc、ElyTable、ElyShow 启动即报“文档引擎未启动”(用户 2026-10-15 报,worker SIGABRT):0.1.5 起以 Developer ID 签名、开强化运行时,UNO 桥以 MAP_JIT 映射虚表须 `com.apple.security.cs.allow-jit`,worker 未带即在首个请求时中止;`bundle.sh` 给 worker 签此权利。用户定:删去 Gitea v0.1.5 里这三个应用的 Mac 与 Linux 包,本机重建后重传
- [ ] R6.6 Windows 与 Linux 的 ElyMark 不带 Git(用户 2026-10-15 问为何 ElyMark 安装目录有 git 文件夹):同 macOS,状态栏的 Git 项用同级 ElyTree 的 Git(按 `apps` 的同级查找),不在即写明要装 ElyTree;`stage.sh` 与许可不再给 ElyMark 带 Git
- [ ] R6.6 Windows 的 ElyMark 不带 Git(用户 2026-10-15 问为何 ElyMark 安装目录有 git 文件夹):同 macOS,状态栏的 Git 项用同级 ElyTree 的 Git(`git::own` 先找本应用旁的,再按 `apps` 的同级查找与 macOS 的登记找 ElyTree 旁的),找不到时 Git 项写明要装 ElyTree;Linux 的 AppImage 须自成一体(与 deb、rpm、Arch 包同一 AppDir),ElyMark 照带 Git(第 1 轮审查查出)
- [ ] R6.7 ElyMark 可视与预览保留单个换行(用户报:代码块后的“你好↵测试”离开输入框后变成“你好 测试”):照 Typora 默认(编辑时保留单个换行,导出与打印照 GFM 读作空格);组件库的读法分屏上与输出两种
- [ ] R6.8 源码模式插入点落在字中(用户报:“测”后的插入点画在“测”中间):代码编辑器按“列 × m 的宽”定位,中日韩字宽约两格;插入点、选区、按下、输入法框改按排版后的实际位置(组件库 `CodeEditor`)
- [ ] R6.9 ElyMark 三、四级标题不显眼(用户报):各级字号随正文按 Typora 的倍数(2.25、1.75、1.5、1.25、1、1),一律加粗,六级为次要色(组件库渲染)
+7
View File
@@ -0,0 +1,7 @@
FAIL
- crates/ely-platform/src/git.rs:78 — With ElyMark installed alone and no configured external Git, the missing sibling falls through to a nonexistent development Git path. `vcs::ask` converts the spawn error into `Tracked::Unknown`, and `git_item` returns a non-clickable “Git: unknown” item; the existing “Install ElyTree” message is unreachable. This violates R6.6's explicit missing-install requirement. Relocated probes using the production locator and ElyMark's unchanged status functions reproduce Windows error 3 and Linux error 2, with no installation guidance (`.work/R6.6-r1/windows-missing-hint.log`, `linux-missing-hint.log`). Distinguish an unavailable bundled Git provider and show the localized ElyTree installation guidance while preserving other errors.
- packaging/stage.sh:68 — Removing Git also removes working Git status from Linux AppImages. With ElyMark and ElyTree AppImages beside each other, `current_exe()` points inside ElyMark's mounted/extracted image, so `apps::beside` searches that image's directories and never reaches ElyTree's Git. The development-path fallback is absent on an end-user machine. A probe using the shipped AppImage runtime, package directory layout, production locator and real Git reproduces this: ElyTree's image runs `git --version`, while ElyMark's image reports `Unknown("No such file or directory (os error 2)")`; the native sibling-install control succeeds (`.work/R6.6-r1/linux-appimage-mark.log`, `linux-appimage-tree-version.log`, `linux-sibling.log`). Make shared Git discovery work for the AppImage distribution required by PRD §4.1 and MARK-13, and cover that layout before removing its local Git.
- crates/ely-platform/src/git.rs:132 — The revised bundle test fails on Linux. Its fixture creates `ElyTree.app/Contents/Resources/git` but no `Contents/MacOS`; the new lookup traverses `Contents/MacOS/../Resources/git`, which cannot resolve through the nonexistent intermediate directory on Linux. `cargo test --locked -p ely-platform --lib` yields 51 passed and this failure; running the test alone reproduces it (`.work/R6.6-r1/linux-platform-tests.log`, `linux-git-fixture.log`). Build a complete sibling-bundle fixture, including its executable directory, so the test exercises the real installation layout and passes on Linux.