Files
ElyOffice/tasks/reviews/M-02-r1.md
T
ZacharyZhang-NY d59159cea2 Fixes for M-02 to M-14, G-01 to G-14, K-02 to K-04, X-04 to X-14, not yet reviewed
Committed before review so Windows and WSL builds can start.
Each fix was tested and mutation-checked here; the codex review
of each item is still to come, so tasks/BUGS.md stays unticked.

M-02 is mid-review: round 1 findings are fixed (apps/ely-mark/src/tally.rs).
K-01 stays deferred. The ElyMark window test mark-outside.sh failed
once at its crash-recovery step in the last run; not yet looked into.
2026-10-10 02:29:19 -04:00

1.5 KiB

FAIL

apps/ely-mark/src/view.rs:194 — refresh 换代时保留 renders 中的回调,随后 query 的代号检查会直接丢弃旧代 rendered 回报,导出永久悬空。原生复现:发起 Plain Text 导出,在桥接处暂留已生成的 generation=1 回报;外部写入触发 generation=2 的 refresh 后交付该回报。日志确认旧回报被丢弃,目标文件未生成,界面没有成功或失败提示;同一标签随后再次导出成功。证据:/tmp/ely-m02-native.log、/tmp/ely-m02-native-result.log。这违反 PRD MARK-11 与规则 2。修复方向:刷新换代时结束被作废的渲染回调并向原请求显式返回错误,补充该交错的回归测试。

tests/scripts/mark-outside.sh:81 — 当前测试等外部重载完成并额外暂停一秒才键入,缺少 M-02 在途消息的回归断言;18 个 ElyMark 单元测试也未覆盖这条协议。真实浏览器变异探针恢复旧版 refresh,并按旧版 Rust 行为保持代号:旧版与修复版均通过干净重载断言;将刷新前的 changed 延后至 Rust 计数重置后交付,旧版稳定留下 changed=1、reported=0,修复版保持落定。证据:/tmp/ely-m02-mutation.log;本轮 cargo check -p ely-mark、cargo test -p ely-mark、mark-outside.sh 均通过。修复方向:增加可控消息交付顺序的测试,覆盖两端换代、版本重置、旧代编辑回报丢弃,以及刷新后保存和关闭能够完成。