1.7 KiB
FAIL
apps/ely-mark/src/outside.rs:234(keep_edits:267):保留本地编辑的分支只接过磁盘指纹,丢弃读到的 Source,后续保存仍使用旧 doc.source 的 BOM、换行格式和原始字节,违反 PRD §14.3。真窗口独立复现三次:打开 b"alpha\n\nbeta\n",在开头键入 X,停手保存前外部写入 b"\xef\xbb\xbfalpha\r\n\r\nbeta\r\n";日志出现 local edits stay,自动保存却写出 b"Xalpha\n\nbeta\n"。删掉 X 后再次保存也写回旧 LF 字节。证据:/tmp/ely-m01-r2-probe-results.log、/tmp/ely-m01-r2-stable-1-results.log、/tmp/ely-m01-r2-stable-2-results.log。修复方向:keep_edits 接收并采用本次磁盘 Source,保留编辑器、当前文字与编辑历史;回归覆盖存在未保存输入时的 BOM/CRLF 基线重写。
apps/ely-mark/src/outside.rs:273(autosave.rs:56):重建保存策略时保留了失败自动保存的 extra.writing,save_after_pause 安排的任务随后被 writing.is_some() 阻挡,保留的编辑持续未保存,违反 PRD §6.2。真窗口碰撞探针连续复现两次:打开 alpha/beta 文档并键入 X,在 autosaves tab 日志出现后立即以原文重写文件;保存指纹检查报告 meets an external change,随后 rebase 报 local edits stay。停手四秒,autosaves 仍只有首次失败的一次,磁盘仍为 b"alpha\n\nbeta\n";手动 Cmd+S 才写出 b"Xalpha\n\nbeta\n"。证据:/tmp/ely-m01-r2-collision-2-results.log、/tmp/ely-m01-r2-collision-3-results.log 及对应 save-collision.log。修复方向:恢复策略时结清旧自动保存的 writing 状态与修订归属,再安排保留编辑的保存;回归覆盖自动保存撞上同内容外部重写后,持续停手即可完成保存。