Files
ElyOffice/tasks/reviews/C14.6-r3.md
T

8 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FAIL
crates/ely-office/src/save.rs:332 — 退出保存冲突框的 Keep Mine 仍调用无条件覆盖的 `save_overwrite`,导出期间的新外部写入会被覆盖,违反 FILE-05、§14.4、QA-22。真窗口复现:基线 `base\n\nend\n`,本地插入 X,外部追加 tailA;Cmd+Q → Save → Keep Mine,在导出完成前外部改成 tailB。隔离副本仅给 `Mark::write` 加入 750 毫秒延迟,最终磁盘为 `Xbase\n\nend\n`,tailB 丢失,应用退出。同样延迟下 Compare → Keep Yours 能保留 tailB。证据:`/tmp/c146r3-slowclosemine-result.log`、`/tmp/c146r3-slowmine-result.log`。修复方向:退出冲突的保留本地分支也携带选定磁盘版本的指纹,走受检保存,在实际写入时遇到新变化继续报冲突。隔离副本改为指纹基线加普通保存后,tailB 保留且应用停留在冲突询问,见 `/tmp/c146r3-slowclosemine-repair-result.log`。
crates/ely-office/src/dialogs.rs:132 — Reload from Disk 分支丢弃挂起的 `then`,重开标签后退出流程停止,ElyMark 的 `keeping.leaving` 持续为 true,会话清单冻结,违反 MARK-12。真窗口复现:有路径文档输入本地内容并发生外部冲突,Cmd+Q → Save → Reload from Disk;随后新建并输入 AFTERRELOAD,等待超过十秒。恢复点已包含 `AFTERRELOAD\n`,session.json 仍仅记录原文件;终止并重启后,新正文失去恢复入口。证据:`/tmp/c146r3-conflictreload-result.log`。修复方向:Reload 分支明确结束挂起的关闭状态,调用关闭取消钩子恢复清单更新,再重开文档,并增加该路径的崩溃重启回归。隔离副本加入该钩子后清单记录两个标签,重启恢复 AFTERRELOAD,见 `/tmp/c146r3-conflictreload-repair-result.log`。
apps/ely-mark/src/restore.rs:336 — 退出时的冻结清单保留保存前的路径;未命名标签首次保存成功后,关闭钩子收到的是有路径标签,此分支留下旧的 `path: null`,违反 MARK-12 的打开标签恢复要求。真窗口复现:新建并输入 SAVEDTEXT,Cmd+Q → Save,在系统面板保存到新文件并完成退出。磁盘文件含 `SAVEDTEXT\n`,session.json 仍记录 Untitled 1 和 `path: null`;重启恢复标签数为 0。证据:`/tmp/c146r3-savedquit-result.log`。修复方向:按恢复槽身份,将退出期间保存成功后的路径和名称同步到冻结记录并持久化,再完成关闭;增加首次保存后退出的重启回归。隔离副本同步路径和名称后,重启恢复标签数为 1,见 `/tmp/c146r3-savedquit-repair-result.log`。