3.2 KiB
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 延迟期间普通标签关闭及时返回的回归。