Files
ElyOffice/tasks/reviews/C05.6-r1.md
T

1.7 KiB

FAIL

crates/ely-ui/src/settings/panels.rs:64 — 最新宽度仅由延迟 500 ms 的 detached task 保存,正常退出会丢弃尚在等待的改动,违反 C05.6 的重启恢复要求。真实 ElyDoc 窗口中从默认宽度向右拖动 80 点,松手后立即 Cmd+Q,再启动:侧栏回到默认 220 点,settings.json 只有 window/version,缺少 panels;独立重复三次均复现。方向:正常退出前提交并等待最新宽度写入,补上拖动后立即正常退出、重启检查宽度的回归测试;当前 panels.sh:51 先等待写入再终止,覆盖不到此路径。

crates/ely-ui/src/settings/panels.rs:34 — 已存在的无效宽度通过 as_f64()/and_then 转为 None,随后被 fit 当作缺省值,构成静默回退。复现:应用设置写入 {"version":1,"panels":{"left":"broken","right":320}} 后启动 ElyDoc,左栏恢复默认 220 点,日志没有宽度解析错误;真实窗口探针已确认。方向:区分缺省/null 与无效配置,对 panels 结构及已填写宽度的类型、有效数值做校验,传播具体错误并显示。

crates/ely-ui/src/settings/panels.rs:69 — 宽度写入失败只写日志,未接入界面错误状态或刷新错误提示,违反 PRD UX-06。复现:正常启动后把该应用的 settings.json 文件替换为同名目录,再拖宽左栏;窗口显示约 296 点的新宽度,日志记录 “panel widths not saved: Is a directory (os error 21)”,应用与设置窗口均没有保存失败提示,改动只留在内存。读取失败在本文件:28 也只有日志与默认宽度。方向:将应用偏好的读取、保存错误接入界面可见的错误状态,保留本次输入并提供重试,补上失败路径的真窗口断言。