Linux: file watchers skip reads, so idle apps stop rereading theme, settings and repos (L1.2)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
c62d548688
commit
b2e13230b5
12 files changed
+211
-9
No files matched your search
+7
-6
@@ -201,9 +201,10 @@
|
||||
|
||||
## L1 Linux 发布(用户 2026-10-11 报:Omarchy 上六个 AppImage 都打不开;要 deb、rpm、Arch、AppImage;在 ubuntu:26.04 容器里本机构建,替换 v0.1.3 的 Linux 包)
|
||||
|
||||
- [x] L1.1 Linux 显示后端:`gpui_platform` 开 `wayland` 与 `x11`(原样无头,“window open”而合成器里没有窗口);Omarchy(Hyprland)上 ElyTree 在 Wayland 与 X11 上画出窗口(其余五个要引擎,随 L1.5 实测);`tests/scripts/linux-backends.sh` — R1 锁文件、目标目录、未证明交帧;R2 产物路径、字形未核;R3 语言、OCR 错误被吞;R4 PASS
|
||||
- [ ] L1.2 Omarchy 主题同步:查清空闲时每秒数次重套主题的根因并修;Omarchy 换主题时应用跟随
|
||||
- [ ] L1.3 Linux 构建环境:`ubuntu:26.04` 容器里构建全部引擎与六个应用(glibc 不高于 2.43)
|
||||
- [ ] L1.4 Linux 包:deb、rpm、Arch(pkg.tar.zst)、AppImage 出自同一份分装,装到 `/opt/ely-office/<应用>`,带桌面项、图标与文件类型
|
||||
- [ ] L1.5 本机出六个应用的四种包;Omarchy 上装 Arch 包与 AppImage 出窗口;deb、rpm 在各自发行版的容器里装上并冒烟
|
||||
- [ ] L1.6 v0.1.3:删去旧 AppImage,上传新包;`ci.sh` 的 Linux 产出四种包;agents.md 与官网随之
|
||||
- [x] L1.1 Linux 显示后端:`gpui_platform` 开 `wayland` 与 `x11`(原样无头,“window open”而合成器里没有窗口);Omarchy(Hyprland)上 ElyTree 在 Wayland 与 X11 上画出窗口(其余五个要引擎,随 L1.6 实测);`tests/scripts/linux-backends.sh` — R1 锁文件、目标目录、未证明交帧;R2 产物路径、字形未核;R3 语言、OCR 错误被吞;R4 PASS
|
||||
- [x] L1.2 Linux 上的文件监视把读取当作改动(inotify 报打开,FSEvents 不报):Omarchy 主题、通用设置在第一次改动后、ElyTree 打开仓库起,每次重读自己又触发下一次,空闲时每 250 毫秒读一遍;四处监视(主题、设置、ElyTree、ElyMark)经 `ely_ui::watching::only_read` 略去读取,写后关闭照算改动;`theme.name` 读不出不再吞掉;`tests/scripts/linux-idle.sh`(ElyMark 要 CEF,随 L1.6 实测) — R1 写后关闭也被略去、注释超长;R2 PASS
|
||||
- [ ] L1.3 Linux 上设置窗口打开即崩(无菜单的窗口画菜单条,组件库断言“a menu bar needs menus”)
|
||||
- [ ] L1.4 Linux 构建环境:`ubuntu:26.04` 容器里构建全部引擎与六个应用(glibc 不高于 2.43)
|
||||
- [ ] L1.5 Linux 包:deb、rpm、Arch(pkg.tar.zst)、AppImage 出自同一份分装,装到 `/opt/ely-office/<应用>`,带桌面项、图标与文件类型
|
||||
- [ ] L1.6 本机出六个应用的四种包;Omarchy 上装 Arch 包与 AppImage 出窗口;deb、rpm 在各自发行版的容器里装上并冒烟
|
||||
- [ ] L1.7 v0.1.3:删去旧 AppImage,上传新包;`ci.sh` 的 Linux 产出四种包;agents.md 与官网随之
|
||||
@@ -0,0 +1,5 @@
|
||||
FAIL
|
||||
|
||||
- apps/ely-tree/src/watch.rs:21; apps/ely-mark/src/outside.rs:380; crates/ely-ui/src/settings/mod.rs:86; crates/ely-ui/src/theme/omarchy/mod.rs:60 — `is_access()` also discards `Access(Close(Write))`, so actual external writes can disappear. Reproduced on Linux by modifying `a.txt`, `theme.name`, and `settings.json` through writable shared memory mappings, flushing, then closing: inotify emitted OPEN and CLOSE_WRITE without MODIFY. The running ElyTree performed no new status read and observed neither the theme-name nor settings change; ordinary writes immediately triggered all three. ElyMark has the same filter, which also drops this content-change signal (MARK-08). Evidence: `.work/L1.2-r1/mmap-results.log` and `mmap-events.log`; the existing idle script passes despite this defect. Preserve writable-close notifications while filtering read events, and add regression coverage for mapped writes.
|
||||
|
||||
- tests/scripts/linux-idle.sh:59 — The comment has 12 words, exceeding the ten-word limit in agents.md. Running `python tests/scripts/comments.py` fails on this line (`.work/L1.2-r1/comments.log`). Shorten the comment to ten words or fewer.
|
||||
@@ -0,0 +1 @@
|
||||
PASS
|
||||
Reference in new issue
Block a user