2.7 KiB
FAIL
apps/ely-table/src/text.rs:261 — 校验与导入使用了两个文件版本:预览和严格解码读取 Pending.bytes,提交时却重新从 pending.path 复制文件。实测先打开 Account\n123\n,等扫描结束,再由外部程序将源文件改成字节 Account\n00123\nA\xffB\n,点击打开仍成功;A2 变成 123,A3 变成 A�B,数据损失与解码错误均进入工作簿。R1 的整文件扫描和严格解码在此路径失效,违反 TABLE-12 与 §9.3。修复方向:导入经过校验的同一份字节快照,或在后台对实际工作副本重新完整校验、推断并要求用户确认变化;加入源文件在对话框期间改变的回归。
apps/ely-table/src/text.rs:231 — 扫描回调只核对每个 Pending 自己的 asked 计数,新导入对话框重新从 0 开始,因此两个文件的首次扫描都为 1。延迟旧扫描回调的探针实测:打开 old.csv(Old\n00123\n),取消后打开 next.csv(Next,Amount\n123,1.5\n),等新文件预览完成,再释放旧回调;标题与 path 仍为 next.csv,预览却变成 ["Old"],列类型从两个 Standard 变成一个 Text,reading 也被旧结果清除。慢扫描期间取消并打开另一文件即可触发,违反 TABLE-12 的按当前选择预览和列类型约定。修复方向:回调同时核对导入请求或字节快照的身份与扫描版本,丢弃已取消对话框的结果;加入跨导入对话框的延迟回调回归。
apps/ely-table/src/text/dialogs.rs:144 — PREVIEW_COLUMNS 同时截断了列类型控件,导致第 65 列起无法选择任何导入类型。真窗口打开 65 列 CSV(第 65 列为 2026-03-04)时,AX 树只有“第 1 列”至“第 64 列”的类型选择器;第 65 列始终使用默认 Standard,用户无法选择日期顺序、文本或跳过。TABLE-12 要求导入前逐列选择类型,预览采样上限在这里成为永久操作上限。修复方向:保留预览采样限制时,为全部实际列提供类型选择入口,并验证第 65 列及后续列的选择能传入内核。
apps/ely-table/src/book.rs:213 — 外部链接列表只在标签首次读取时填充,后续编辑始终命中 links.is_none() 的缓存门禁。实测空白工作簿初次读得 Some([]) 后,在 B1 输入引用 source.ods 的公式;内核 .uno:ExternalLinks 已返回该文件 URL,界面的 extra.links 仍为 [],links_banner 因此持续隐藏。用户在已打开工作簿中新增外部引用后,来源与未刷新状态没有显示,违反 §9.3 及 agents.md 的链接提示约定。修复方向:让链接列表随相关文档修改失效并在后台重读,按发起标签与状态核对回报;加入在空白工作簿中新增外部引用后的提示回归。