3.5 KiB
FAIL
apps/ely-mark/web/src/main.js:100 — 跨模式撤销调用 changed,把刚建立的 forward 链当作新编辑销毁,丢失重做历史,违反 PRD §14.3。真窗口打开 Alpha.\n,可视模式键入 v,源码模式键入 s,返回可视;Cmd+Z 后保存得到 vAlpha.\n,Shift+Cmd+Z 后保存仍为 vAlpha.\n,预期恢复 svAlpha.\n。隔离副本将历史跳转与新编辑的报告分开后,同一操作恢复 svAlpha.\n。方向:历史跳转保留重做链,仅新的内容编辑截断重做分支,并覆盖跨模式撤销、重做。证据:/tmp/ely-c143-r2-logs/redo.json、redo-repair.json、repair.diff。
apps/ely-mark/web/src/main.js:127 — back 指向该模式的旧编辑器,形成按模式分开的历史,破坏本文件编辑事务的撤销顺序(PRD §14.3)。真窗口可视模式键入 v、源码模式键入 s,在源码连续撤销两次并保存,仍为 vAlpha.\n,较早的可视编辑无法撤销;另一路径返回可视撤销 s,再切源码并撤销,落盘反而从 vAlpha.\n 变回 svAlpha.\n,恢复了已撤销的编辑。方向:按本文件实际编辑顺序连接历史与修订,让两种编辑器的历史边界共同推进同一条时间线,覆盖切换后的连续撤销。证据:/tmp/ely-c143-r2-logs/linear.json、reverse.json。
apps/ely-mark/src/rename.rs:130 — 将 Open::Focus 当作新登记赋给发起标签,导致两个可写标签共享文件和登记号,违反 PRD §6.1 的同文件会话规则。隔离副本仅在文件系统改名成功后、完成回调前延迟两秒:发起 a.md → closed.md,期间通过正常 open_file 打开 closed.md;完成后实测 tabs=2,两个标签路径均为 closed.md、registry 均为 Some(1)。关闭任一标签还会删除另一标签共用的登记。上一轮“关闭发起标签后产生孤立登记”的复现已通过,本项是目标在异步间隙被另一标签打开的竞争。方向:改名期间保留目标身份的占用,并一致地迁移文件会话登记;完成回调遇到已有目标会话时处理其归属与待保存内容,避免复用其登记号创建第二个可写会话。证据:/tmp/ely-c143-r2-logs/rename-owner.log、rename-closed.log。
apps/ely-mark/web/src/main.js:142 — shown 回报的异步确认回来后,直接执行旧 asked 请求;期间正常发起的新模式请求既未清除它,完成回调也未重核 latest,最后一次选择仍可能被覆盖。真 CEF 探针将回报确认延迟 300 毫秒:从源码请求可视,构建中请求预览,可视挂载后、确认前再请求源码;页面先报告源码,随后被旧预览请求覆盖,最终 mode 为 preview。隔离副本在新请求时清除旧排队请求、确认回来时核对代次后,同一探针最终为 source。方向:所有模式请求共享递增代次,异步确认与构建完成都只落实最新请求,并覆盖确认期间的三次连续切换。证据:/tmp/ely-c143-r2-logs/asked-native.log、asked-repair.log、repair.diff。原版 mark-modes.sh、mark-content.sh、mark-session.sh 均独立通过;相关五个 crate 单测 142 通过、1 忽略,Doc/Table/Show/PDF/Mark 编译检查通过。上一轮新建非空变异已使脚本失败;Windows 驱动器与 UNC URL 单测通过;handlers.rs 为 424 行;Renaming 扩展 trait 已移除。源码散列核对一致,隔离源码副本与构建目录均已在写结论前删除;完整验证记录为 /tmp/ely-c143-r2-logs/verification.log。