Files
ElyOffice/tasks/reviews/C09.3-r3.md
T

12 lines
3.2 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-office/src/save.rs:334 — 异步导出完成后,保存成功分支直接执行关闭,遗漏导出期间新增的编辑,违反 FILE-01、FILE-03 与 QA-08。复现:文档输入 `BeforeExport`,执行关闭提示中的保存;在内核导出完成、完成回调尚待处理时输入 `AfterExport`。隔离探针延迟完成回调并通过真实输入桥提交新文字,确认标签被关闭,存档包含 `BeforeExport`、缺失 `AfterExport`。修复方向:保存任务携带实际导出修订,完成时核对当前修订及排队输入;后续编辑保留未保存状态,关闭流程继续处理这些编辑。补充导出期间继续编辑并保存关闭的回归。
apps/ely-table/src/format.rs:192 — 自定义数字格式在后台校验成功后,通过 `run_active` 发送给回调完成时的活动工作簿,丢失发起目标,违反 TABLE-07。复现:A、B 的 A1 均为常规格式;在 A 提交 `0.000`,校验回调返回前切换到 B。真实内核探针读得 A/B 的格式分别为 `General`、`0.000`,A 的操作修改了 B。修复方向:捕获发起视图与选区版本,校验完成后向对应目标提交,处理等待期间选区变化;增加延迟校验期间切换工作簿的回归。
crates/ely-office/src/save.rs:230 — 另存为只在后台导出前检查目标占用,写入回调直接保存,遗漏等待期间新增的文件持有者,破坏 §6.1 的独立会话约束。复现:A、B 各含 `FirstOwner`、`SecondOwner`,在两次导出完成前均另存为同一新路径 `same.odt`。真实内核探针确认两个标签的会话指向同一文件,最终文件仅含 `SecondOwner`;第二次保存覆盖了第一标签的文件。修复方向:提交前按文件身份重新检查目标持有者,并覆盖并发另存为相同路径的回归;同标签保存队列继续按现有顺序执行。
apps/ely-doc/src/merge/run.rs:149 — 预览发起后台模板导出时直接使用 `core.next`,直到后续载入才分配编号;等待期间另一预览复用并重建同一临时目录,导致模板串用,违反 DOC-14 与 FILE-08。复现:A 正文为 `SourceAlpha «Name»`,B 为 `SourceBeta «Name»`;延迟 A 模板导出的完成回调,先生成 B 的 Grace 预览,再放行 A 的 Ada 预览。探针保存并读取两个预览,标题属于 A 的 Ada 预览实际包含 `SourceBeta` 和 `Ada`,缺失 `SourceAlpha`。修复方向:每次预览在异步工作发起前保留独立编号与临时目录,后台导出、载入和填充沿用该身份;覆盖两个来源交错预览的回归。
crates/ely-office/src/save.rs:39 — 标签栏关闭调用 `request_close` 后,干净标签仍在界面线程通过 `dirty_now` 获取 worker 锁并同步读取撤销历史,违反 PERF-02 与 agents.md 的界面线程约束。复现:后台操作持有 worker 锁 350 毫秒时关闭干净的 ElyTable 标签;直接调用标签栏对应处理路径的隔离探针测得 370.8 毫秒。修复方向:标签关闭与菜单退出的读取、文档释放移到后台,返回时核对发起标签和编辑版本;窗口关闭回调保留约定的同步判断。增加 worker 延迟期间普通标签关闭及时返回的回归。