Doc, Table, Show start past unreadable settings; the newest author name signs, restarts too (X-02)

This commit is contained in:
ZacharyZhang-NY committed 2026-10-09 11:59:26 -04:00
1 parent 8a915ea354
commit ec87e28a46
11 files changed
+180 -61

No files matched your search

+1 -1
View File
@@ -88,7 +88,7 @@
- [ ] K-03 `rect_of` 宽容解析把读不出的载荷悄悄吞掉
- [ ] K-04 `Sheets.current` 用 `as u64` 转有符号的 part
- [x] X-01 设置窗口在前时 Cmd+Q 直接退出,跳过未保存询问并抹掉恢复点 — 退出一律经主窗口宿主的流程(route_quit),延后到动作结束、先把宿主窗口提到前面;R1 主窗口 Cmd+Q 不问;R2 询问被设置窗口挡住;R3 PASS
- [ ] X-02 共用 `settings.json` 读不出时 Doc、Table、Show 根本起不来
- [x] X-02 共用 `settings.json` 读不出时 Doc、Table、Show 根本起不来 — 作者名取启动时读入的设置;R1 重启失败丢作者、脚本退出码、client.rs 超行;R2 作者更新的先后与停机期间的更新;R3 PASS
- [ ] X-03 第二个实例启动即清掉运行中实例的工作目录与恢复点
- [ ] X-04 属性栏字号菜单的 `expect("sizes are numbers")` 是脆弱点,但当前不可达
- [ ] X-05 恢复点写不成时每 10 秒弹一次提示
+7
View File
@@ -0,0 +1,7 @@
FAIL
crates/ely-office/src/lok.rs:82 — 重启在自检、设置作者成功前就替换原 worker;新 worker 的 author 初始为 None,任一步失败都会丢失恢复所需的作者。实测以当前构建的真实 LOK worker 设置作者后停止,在隔离的 lok-profile/lok-verify.fodt 路径创建目录,再调用 Engine::restart:首次返回 IsADirectory,worker.author() 变为 None;移除目录后再次调用仍返回 “the ended worker had no author”,后续恢复永久卡在第 81 行,违反 PRD §6.3 的重新打开要求。空引擎目录导致首次启动失败时也独立复现。应先在局部变量中完成新 worker 的启动、自检与作者设置,全部成功后替换原 worker,并覆盖失败后重试的回归场景。证据:/tmp/ely-x02-restart-profile.log、/tmp/ely-x02-restart.log。
tests/scripts/bad-settings.sh:9 — EXIT 清理函数中的 wait 返回被 SIGTERM 终止的 ElyDoc 的状态 143,set -e 随即退出,跳过临时目录删除,并把成功测试变成失败退出码。连续两次运行 CARGO_NET_OFFLINE=true CARGO_INCREMENTAL=0 bash tests/scripts/bad-settings.sh,均打印 “ok: ElyDoc starts past an unreadable settings file, which stays as it was” 后退出 143;bash -x 确认清理止于 wait,两个临时 HOME 均遗留。应处理清理阶段预期的进程终止状态,保证清理执行完毕并保留测试本身的退出状态。证据:/tmp/ely-x02-bad-settings-trace.log;遗留目录已由本轮审查清理。
crates/ely-lok/src/client.rs:214 — 本次新增作者字段、记录与读取方法,使文件由 HEAD 的 495 行增长到 504 行,超过 agents.md 的每文件 500 行限制;wc -l crates/ely-lok/src/client.rs 可直接复现。应将一组现有客户端实现移入子模块,使该文件回到 500 行以内。
+5
View File
@@ -0,0 +1,5 @@
FAIL
crates/ely-office/src/lok.rs:176 — 作者变更各自捕获名字并启动后台任务,执行顺序可使旧值覆盖最新设置;启动任务第 142 行也会参与这种覆盖。实测直接调用生产 start、更新 Current、经 GPUI 调度器 seed 0 执行并用真实 LOK 插入批注:启动期间由 Initial Author 改为 Latest Author,批注仍署 Initial Author;启动完成后依次改为 Earlier Author、Latest Author,批注仍署 Earlier Author,后者独立复跑一致。应让启动与后续作者更新共用有序写入或代次控制,在取得 worker 锁后核对最新请求,并覆盖这些交错的回归测试。证据:/tmp/ely-x02-r2-native-order.log、/tmp/ely-x02-r2-latest_author_after_two_changes.log;探针源码保存在 /tmp/ely-x02-r2-probe-source.log。
crates/ely-office/src/lok.rs:80 — 重启只沿用最后成功设置的作者,而 follow_author 第 172 行在发送成功前就记下新设置;worker 停止期间的作者更新失败后,该更新永久丢失。实测以 Initial Author 启动真实 worker,停止它,将 Current.author 改为 Latest Author 并执行观察任务,再调用 Lok::restart;重启成功后新插入的真实批注仍署 Initial Author,独立复跑一致,后续相同设置也被 signed 相等检查跳过。应保留待生效的最新作者设置,重启时应用它,并在设置成功后确认同步状态;继续保留上一轮修复的失败重试信息。增加停止期间修改作者后重启的回归测试。证据:/tmp/ely-x02-r2-latest_author_after_recovery.log、/tmp/ely-x02-r2-probe-source.log。
+1
View File
@@ -0,0 +1 @@
PASS