1.5 KiB
FAIL
crates/ely-ui/src/settings/window.rs:132 — 作者字段在写入成功前将用户输入记为 author_base,保存失败后 follow_author 将其视为可替换的未编辑字段,违反 PRD UX-06 的失败保留输入要求。真窗口复现:共用配置 author=Ana,在 ElyPDF 设置中输入 Bob,将 .settings.lock 建成目录后按 Enter;AX 字段从 Bob 回到 Ana,磁盘仍为 Ana,错误 Banner 显示 Is a directory。恢复可写后再次按 Enter,Bob 仍未保存。证据:/tmp/c18-r2-native-final.log、/tmp/c18-r2-author-typed.ax、/tmp/c18-r2-author-failed.ax、/tmp/c18-r2-author-retry.ax。修复方向:将已保存基准与待保存编辑分开,成功保存后更新基准;写入失败时保留输入并允许原值重试,补失败后恢复可写的窗口回归测试。
crates/ely-ui/src/settings/window.rs:140 — 提交值与磁盘值相同时提前返回,尚未递增 git_asked,先前仍在校验的提交继续拥有写入资格,最终覆盖用户最新选择。真窗口复现:ElyTree 初始使用随带 Git,提交一个 --version 等待五秒的程序路径,随后清空字段并按 Enter 恢复随带 Git;旧校验完成后 settings.json 的 git 被写成慢程序路径,AX 的 Git program 字段仍为空。证据:/tmp/c18-r2-native-final.log、/tmp/c18-r2-git-reset-before.ax、/tmp/c18-r2-git-reset-after.ax。修复方向:每次实际提交先使旧校验过期,再处理与磁盘相同的值;补校验期间恢复已保存值的窗口回归测试。