Files
ElyOffice/tasks/reviews/C09.5-r1.md
T

3.4 KiB
Raw Blame History

FAIL

crates/ely-lok/src/worker.rs:398 — 文本导入沿用文件扩展名自动识别,未指定 Calc 的文本过滤器。实测相同内容 Account,Value\n00123,1.5\n 保存为 .csv、.tsv、.tab 时得到工作表,保存为 .txt 时得到 Writer 的 Page 1,SHEETS 返回的 part info 只有 mode,随后保存为 FODS 失败;应用的工作表与几何读取也失败。这破坏了 agents.md 声明的 TXT 导入流程。修复方向:文本导入显式选定电子表格文本过滤器,并检查载入文档类型;加入 TXT 经过应用导入、保存 XLSX、重开的回归。

apps/ely-table/src/text.rs:70 — 默认列类型仅由前 64 KiB 推断,后续行直接按常规数值导入,违反 TABLE-12 和 §9.3 的编号保留要求。实测 Account\n 加 18,000 行 123\n,再加 00123\n12345678901234567890\n,按默认选择导入后 A18002 为 123,A18003 为 1.23456789012346E+019,前导零与精度已丢失。首条记录超过 64 KiB 时,截断逻辑还会把整个预览清空,列类型选择器数量为零。修复方向:把受限预览与完整文件的数据安全判定分开,后台检查完整列并保留危险编号;超长记录也应提供可用的列类型选择。现有短样本测试覆盖不到这些失败。

apps/ely-table/src/text.rs:119 — 解码时丢弃 encoding_rs 的错误标记,错误编码通过替换字符静默改写数据。实测文件字节 Account\nA\xffB\n 选择 UTF-8 后,预览显示 A�B 且仍可提交;IMPORT 返回成功,实际保存的 FODS 正文也是 A�B,整个过程没有解码错误提示。修复方向:传播解码失败,在完整导入前验证所选编码,向用户暴露错误并阻止带静默替换的数据进入工作簿;保留采样末端截断与实际非法字节的区别。

apps/ely-table/src/text/dialogs.rs:147 — 预览行的布局宽度未体现各列的总宽度,水平滚动容器无法到达被裁掉的列。macOS 真窗口导入八列 CSV 时仅显示前三列,连续向左右水平滚动仍停在 Column1–Column3,Column4–Column8 的预览与类型控件处于裁剪区外。AX 树里存在这些控件,现有模型测试因此照样通过。修复方向:让预览内容的实际布局宽度包含全部列,并验证滚动后后续列能显示、点击和修改类型。

apps/ely-table/src/text/dialogs.rs:80 — 预览单元格直接使用 div 的默认黑色文字,未采用主题前景色。macOS 深色真窗口中,八列 CSV 的 Column1、00123 等预览值绘制为黑色,背景为深色对话框表面,常规文字对比度远低于 PRD §20.3 的 4.5:1,影响导入规则检查。修复方向:为预览文本应用主题前景色,并用实际深浅色渲染验证文字和背景的对比度。

apps/ely-table/src/page/dialogs.rs:93 — 三个缩放模式与固定宽度的数值框挤在 DescriptionList 的同一值列。macOS 默认真窗口中,百分比模式下第三个模式位于裁剪区外;点击第二个模式切到宽×高页数后,两个数值框把模式选择器整体挤出可见区,只剩 1 × 1,无法通过该控件切回百分比或选择总页数。TABLE-14 的缩放操作因此受阻,现有测试直接赋值 Scale 绕过了实际控件。修复方向:给模式选择器与数值输入分配足够且稳定的布局空间,并在真实渲染中逐项切换三个模式验证。