Files
ElyOffice/tasks/reviews/C18.1-r1.md
T

3.0 KiB
Raw Blame History

FAIL

crates/ely-ui/src/settings/window.rs:94 — 作者字段只在窗口创建时读取一次,外部更新后,旧字段失焦会覆盖其他应用刚写入的值。真窗口复现:以 author=Ana 打开 ElyPDF 设置并聚焦作者框,将共用配置的 author 改成 Bob,等待一秒;AX 字段仍为 Ana,直接按 Tab 后磁盘被写回 Ana。证据:/tmp/c18-r1-native-probe.log、/tmp/c18-r1-external-author.ax。修复方向:跟随共用设置更新尚未编辑的字段,提交依据本次实际编辑及其基准值;覆盖“外部更新后原字段直接失焦”的回归场景。

crates/ely-ui/src/settings/window.rs:111 — Git 校验任务各自直接落盘,旧任务较晚完成会覆盖后一次提交,回调也缺少输入版本核对。真窗口复现:先提交 A(--version 等待五秒后执行随带 Git 的脚本),随后提交 B(随带 Git 的路径);B 先保存成功,A 完成后配置被改回 A,AX 字段继续显示 B。证据:/tmp/c18-r1-git-race.log。修复方向:为校验、写入与错误回显绑定提交序号,保证落盘遵守最新提交,丢弃过期任务的写入和回显;补延迟校验的回归测试。

crates/ely-ui/src/settings/mod.rs:109 — 写入失败刚设置的 Current.error 被紧接着的成功重读清除,保存错误仅进入日志。真窗口复现:保留有效的浅色配置,将同目录 .settings.lock 建成目录,点击 Dark;日志报告 appearance not saved: Is a directory,磁盘仍为 light,设置窗口的 AX 树没有错误提示。证据:/tmp/c18-r1-native-probe.log、/tmp/c18-r1-failed-write.ax。修复方向:更新读入状态后保留此次写入失败,向用户显示保存错误,并覆盖“配置可读、写入失败”的测试路径。

crates/ely-ui/src/settings/window.rs:76 — ElyTree 应用偏好读取失败时被换成空字符串,git_error 初始化为 None;窗口的通用错误 Banner 只读取共用配置错误,应用配置错误因此只出现在日志。真窗口复现:共用 settings.json 有效,ely-tree/settings.json 内容为 {,启动 ElyTree 并打开设置的 Git 页;日志记录解析失败,AX 显示空 Git program 字段和默认随带 Git 的说明,窗口缺少读取错误提示。证据:/tmp/c18-r1-corrupt-tree.log、/tmp/c18-r1-corrupt-tree.ax。修复方向:保留并显示应用配置的读取错误,字段状态明确关联该错误;补共用文件正常、应用文件损坏的窗口测试。

crates/ely-platform/src/git.rs:43(同类路径 apps/ely-tree/src/git.rs:132)— 版本校验只解析 stdout,吞掉进程失败状态及 stderr。独立调用复现:程序向 stdout 输出 git version 2.56.0,向 stderr 输出 fatal: version query failed,并退出 7;system_version 返回 Ok("git version 2.56.0"),设置提交会接受该失败结果。证据:/tmp/c18-r1-git-probe.log。修复方向:先核对 --version 的成功退出状态,将失败状态与错误输出传回,再解析版本;两条版本读取路径均补带合法版本文本的非零退出测试。