14 lines
4.1 KiB
Markdown
14 lines
4.1 KiB
Markdown
FAIL
|
||
|
||
apps/ely-mark/src/compare.rs:93 — 比较结果使用旧磁盘内容,却通过 `session.reload()` 接受当前磁盘指纹,随后自动保存会覆盖比较期间的新修改,违反 §14.4、FILE-05、QA-22。真窗口复现:基线为 `base\n\nend\n`,本地插入 `X`,外部追加 `tailA`,打开 Compare;外部再把末段改为 `tailB`,等待监听确认第二次变更后点击 Use the Merge。最终磁盘为 `Xbase\n\nend\n\ntailA\n`,`tailB` 丢失。证据:`/tmp/c146-stale2-1.log`、`/tmp/c146-probes-extra.log`。修复方向:比较快照携带对应磁盘指纹与本地修订,提交前核对;变化时重新比较,并让写入检查使用参与比较的指纹。`outside.rs` 的异步读取与重载也须保持内容和指纹配对。
|
||
|
||
apps/ely-mark/src/restore.rs:194 — 有路径文件的恢复内容直接进入原文件会话,下一次编辑会自动覆盖原件,违反 §6.3 的“恢复生成新副本,不先覆盖源文件”。真窗口复现:原件为 `ORIGINAL\n`,崩溃恢复点为 `RECOVERED\n`;重启恢复后原件仍为 `ORIGINAL\n`,键入 `X` 并等待自动保存,原件变为 `XRECOVERED\n`。证据:`/tmp/c146-recovered-1.log`、`/tmp/c146-probes.log`。修复方向:将恢复内容打开为独立恢复副本,保留原件身份与内容;写回原件需经过明确选择和外部变更检查。现有脚本只验证未命名文档的崩溃恢复,遗漏此路径。
|
||
|
||
apps/ely-mark/src/restore.rs:98 — 原路径无法 canonicalize 时直接跳过标签,已读出的有效恢复内容随之丢失,违反 MARK-12 和 §14.4。复现:文件有未保存文本并生成恢复点,外部删除原件后终止应用;重启时该标签及其恢复文本均被跳过。独立执行 `deleted_original_keeps_recovered_text`,实际等待恢复标签数为 0,期望为 1;在隔离副本中将缺失原件的有效恢复内容保留为无路径副本后,同一探针通过。证据:`/tmp/c146-mark-tests.log`、`/tmp/c146-deleted-repair.log`。修复方向:区分原件不可访问与恢复内容可用,保留有效恢复内容并提供另存入口;将原路径读取错误呈现给用户。
|
||
|
||
apps/ely-mark/src/restore.rs:280 — 退出开始时将 `keeping.leaving` 永久置为 true,取消退出后仍持续跳过会话清单写入,违反 MARK-12。真窗口复现:新建并输入 `first`,Cmd+Q 后 Cancel;再新建并输入 `second`,等待超过 10 秒。两个标签均已生成恢复点,`session.json` 仍只记录 Untitled 1;终止并重启后只恢复一个标签,第二份文本失去恢复入口。证据:`/tmp/c146-cancelled-restart.log`、`/tmp/c146-cancelled3-2.log`。修复方向:取消退出或关闭流程时解除清单冻结,并更新实际存活标签;已完成的放弃操作同步移除对应恢复记录。
|
||
|
||
apps/ely-mark/web/src/main.js:157 — 恢复光标只调用 `current.line(place.line, '')`,`Place` 也仅保存行号和滚动值,行内光标位置丢失,违反 MARK-12。真窗口复现:源码为 `abcdef\n`,将光标置于 `abcd|ef`,等待位置上报后正常退出;重启并键入 `X`,保存结果为 `Xabcdef\n`,期望为 `abcdXef\n`。证据:`/tmp/c146-caret-2.log`、`/tmp/c146-probes.log`。修复方向:位置上报、会话序列化与编辑器恢复共同保存并还原完整光标位置;增加行内位置的重启回归检查。
|
||
|
||
apps/ely-mark/src/compare.rs:81 — Keep Yours 成功解决冲突后,保留了被 `external_modified()` 停止的自动保存策略,后续编辑持续无法按 §6.2 在输入停止 1 秒后保存。真窗口复现:本地输入 `X`,外部写入触发冲突,Compare → Keep Yours,保存得到 `Xbase\n`;再输入 `Z` 并等待 3 秒,磁盘仍为 `Xbase\n`;Cmd+S 后得到 `XZbase\n`,确认新编辑已在文档中。证据:`/tmp/c146-stopped3-1.log`、`/tmp/c146-probes-verify.log`。修复方向:显式冲突解决成功后重新建立自动保存策略,并与已保存修订及后续编辑同步。现有 `mark-outside.sh` 在 Keep Yours 后进入合并流程,合并分支重建策略,掩盖了该缺陷。
|