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