Files
ElyOffice/tasks/reviews/C07.4-r3.md
T

6 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FAIL
crates/ely-lok/src/worker/input.rs:125 — Check::History 用文档级 UndoCount/RedoCount 检查 Calc 单元格编辑中的局部历史,导致命令可用性与执行结果错误,违反 LOK-02、LOK-05。实测载入现有 FODS,A1="Hello 世界",F2 后键入 Z,run("edit.undo") 报 `.uno:UndoCount is 0`,文本保持 "Hello 世界Z";同一 worker 的 Cmd+Z 随即恢复 "Hello 世界"。若先执行 format.bold 留下一条文档历史,再 F2 键入 Z,run("edit.undo") 已把编辑文本恢复,却报 `UndoCount went 1 to 1`;随后 run("edit.redo") 报 `RedoCount is 0`。现有即时撤销回归只覆盖 Writer。修复方向:使用与 UNO 实际作用的编辑上下文一致的同步历史/结果确认,加入 Calc F2 编辑内的撤销、重做以及同时存在文档历史的回归。
crates/ely-lok/src/commands.rs:123 — 0.05 步长校验的 1e-6 容差放行 `18.05000001`,原始值继续派发;内核以 18.05 执行后,Reports 比较报错,worker/input.rs:155 的 Undo 回滚破坏了用户已有的重做历史。通过公开 Worker API 实测:打开 FODT、键入 a 并撤销,保留可重做的输入;全选后 run("format.size", &["18.05000001"]) 返回 Err;再 run("edit.redo") 返回 Ok,保存文本仍为 "Hello 世界",字号变成约 18.05pt,原本应恢复的 a 已丢失。现有精度测试只拒绝 18.01,覆盖不到步长容差边界和失败前已有 redo 的情形。修复方向:在 client/view 排队前及 worker 派发前严格拒绝内核无法原样表示的字号,加入接近 0.05 格点的输入及已有 redo 时失败请求保持历史的回归。