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

8 lines
3.3 KiB
Markdown

FAIL
apps/ely-mark/web/src/main.js:87 — 模式切换销毁当前编辑器,时间线只记录离开时的正文,编辑器内部撤销产生的重做历史随之丢失,违反 PRD §14.3。真窗口打开 `Alpha.\n`,源码模式键入 `v`、Cmd+Z 撤销,切预览再回源码,Shift+Cmd+Z 后保存仍为 `Alpha.\n`,预期 `vAlpha.\n`;可视模式同样失败。对照组直接撤销、重做并保存得到 `vAlpha.\n`。第二轮跨模式跳转后的重做与连续撤销场景已通过,本项覆盖编辑器内部撤销后的模式切换。方向:将编辑器内的编辑、撤销和重做纳入文件的内容历史,切换时保留历史游标与可重做事务,并增加两种编辑模式经预览返回后的重做断言。证据:`/tmp/ely-c143-r3-logs/local-redo.json`、`visual-redo.json`、`local-redo-control.json`、`r2-redo.json`、`r2-linear.json`、`r2-reverse.json`。
crates/ely-files/src/session/registry.rs:101 — 原路径消失时使用首次登记的文件身份判重;正常原子保存已更换文件身份,改名间隙因此再次建立可写会话,违反 PRD §6.1。真窗口打开 `a.md`、Cmd+S 保存一次、改名为 `b.md`;隔离副本仅在文件系统改名成功后延迟完成回调两秒,期间经正常 `open_file` 打开 `b.md`。完成后两个标签都指向 `b.md`,登记号分别为 `Some(0)`、`Some(1)`。首次打开后直接改名的第二轮场景已有一个标签;保存后再改名仍失败。独立单测经 `Session::load`、`save`、`rename_new`、`Sessions::open` 同样得到 `Fresh(1)`,预期 `Focus(0)`;改名前刷新当前文件身份后,单测和真窗口竞争均保持一个会话。方向:让登记中的身份随原子保存更新,改名前占用实际文件身份并在完成时迁移,覆盖保存后改名期间打开目标的竞争。证据:`/tmp/ely-c143-r3-logs/rename-native.log`、`rename-refresh.log`、`saved-rename-unit.log`、`saved-rename-refresh.log`、`rename-probe.diff`、`rename-refresh.diff`。
apps/ely-mark/web/src/main.js:98 — 旧 `shown` 确认回调先读取并清空共享 `asked`,随后才检查请求代次,会删除较新构建期间排队的模式请求,违反 MARK-02。真 CEF 探针在隔离副本仅注入预览构建完成延迟 500 毫秒、可视 `shown` 确认延迟 300 毫秒:从源码请求可视并排队预览,可视等待确认时切源码,随后请求预览并立即再请求源码;旧可视确认在较新预览完成前清空排队的源码请求,最终显示预览。将代次检查移到读取与清空 `asked` 之前,同一探针最终显示源码。第二轮三次切换的原版断言已通过,本项覆盖旧确认与较新构建重叠。方向:旧回调在代次失效时直接退出,每个构建只读取和清理属于自己的排队请求,并增加上述连续请求回归。证据:`/tmp/ely-c143-r3-logs/asked-native.log`、`asked-repair.log`、`asked-probe.diff`、`asked-latency.diff`、`asked-repair.diff`。原版 `mark-modes.sh`、`mark-content.sh`、`mark-session.sh` 均独立通过,五个相关 crate 单测 143 通过、1 忽略,Doc/Table/Show/PDF/Mark 编译检查通过;完整记录为 `/tmp/ely-c143-r3-logs/verification.log`。原项目 854 个文件的散列保持一致,隔离源码、副本依赖、CEF 缓存与独立构建目录已在写结论前删除。