6 lines
2.3 KiB
Markdown
6 lines
2.3 KiB
Markdown
FAIL
|
|
|
|
apps/ely-mark/src/engine.rs:79 — 保存字节与保存修订取自两份文本快照,保存期间的新编辑会被错误标记为已保存,并在关闭时丢失,违反 PRD §14.3 的内容与当前修订一致性。`write` 写出后释放文本锁,外壳读回临时文件再调用 `history`;此时 `current` 可已被页面更新,返回的新文本哈希随后成为 `MarkView.saved` 的基线。具体复现:真 CEF 窗口打开 `Alpha.\n`,原生 Cmd+S 导出 7 字节后,用内部 `save.md` 的 FIFO 延迟读回;经 CEF `Input.insertText` 输入 `x`,等待应用收到版本 1、长度 8 的全文,再放行原来的 7 字节。日志记录 `write len 7`、`text version 1 len 8`、`history len 8`;磁盘仍为 `Alpha.\n`,页面为 `xAlpha.`,原生 Cmd+Q 直接以 0 退出,新增字符丢失。修复方向:将导出字节与修订标记绑定到同一文本快照,保存完成后以该快照标记已保存,后续编辑继续保持未保存状态;补充导出与历史读取之间继续编辑的回归。副本中的修订绑定变异已验证:同一调度下关闭会弹出 `Save changes to race.md?`,原生 AX 可见 Save、Cancel 和 Don't Save。证据:`/tmp/ely-c142-r2-logs/race-method.log`、`race-native-broken.log`、`race-instrument.log`、`race-repair.log`、`race-repair-ax.log`。
|
|
|
|
tests/scripts/mark-session.sh:132 — 链接定义回归的多行 `grep -qF` 将各行视为独立模式,其中的空行模式匹配任意非空文件,后面的全文比较随之被跳过,无法验证 R1 的定义移动与修剪缺陷。具体复现:将 gap2 的保存结果替换为 R1 的损坏结果 `Alpha.Beta.\n\n[r]: /path " T "\n\nTail.\n`,断言通过;进一步在副本测试脚本中于此断言前将 gap2 全文写成 `CORRUPTED\n`,完整真窗口测试仍以 0 退出并报告 `ok: mark session`。修复方向:使用逐字节比较,并要求上述损坏结果变异使测试失败。证据:`/tmp/ely-c142-r2-logs/predicate.log`、`session-mutant.log`。R1 六项已复核通过;独立网页构建、`cargo test -p ely-mark`(四项通过)、原始 mark-session 测试及五个受影响应用的编译检查均通过。审查源码副本与其独立构建目录已在写结论前删除,原范围内文件散列一致;验证记录:`/tmp/ely-c142-r2-logs/verification.log`。
|