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

2.4 KiB
Raw Blame History

FAIL

crates/ely-ui/src/settings/storage.rs:62 — 恢复点数与空间的两个闭包各自捕获读取时的 Limits,随后把整个对象异步写回,连续修改会覆盖另一项选择。真窗口复现:初始为 20 个点、64 MB,持有本应用的 .settings.lock,依次点击 10 与 32,再释放锁;settings.json 最终为 {"keep":20,"megabytes":32},用户刚选的 10 被恢复成 20。证据:/tmp/c18.3-r1-native.log 的 BOTH_CHOICES_PERSISTED。修复方向:维护最新的待保存 Limits,并保证连续提交与回读按版本生效,保留两个控件各自的最新选择。

crates/ely-ui/src/settings/storage.rs:106 — 缓存与恢复副本的清除按钮首次点击就提交删除标记,违反 PRD §4.2 对删除缓存与本地历史单独确认的要求。真窗口中分别点击两行的 Clear at next start,.clear-web 与 .clear-recovery 立即出现,AX 树中 dialog=False;随后启动会消费这些标记并删除数据。证据:/tmp/c18.3-r1-native.log 的 CACHE_REQUEST、RECOVERY_REQUEST。修复方向:通过确认对话框明确删除范围,确认后再写入清理标记。

crates/ely-ui/src/run.rs:70 — 启动清理失败仅记日志,随后继续打开待清理的数据;失败原因也未进入设置页的错误状态。复现:在 web/locked 中放入文件,把该目录权限设为 0555,并创建 .clear-web 后启动;日志报 Permission denied (os error 13),旧文件与标记均保留,CEF 继续使用该缓存,存储页只给出禁用的 Clears at next start 按钮。这破坏 C18.3 的“打开任何东西之前清掉”约定,并隐藏本次清理失败。证据:/tmp/c18.3-r1-failure.log。修复方向:在打开待清理数据前处理失败并展示原因,保留标记供重试。

tests/scripts/storage.sh:52 — 真窗口验收只核对缓存行名称,恢复限制只核对 settings.json 的 keep 字段;大小显示与实际恢复点限制缺乏行为断言。隔离副本中把三类大小显示全部改为 0 KB,并把 ElyMark 恢复写入固定为 20 个点、64 MB,重建后 storage.sh 仍退出 0、输出 ok: storage。另一次 AX 检查确认缓存实际有 5,566,125 字节,界面仍显示 0 KB。证据:/tmp/c18.3-r1-mutation.log、/tmp/c18.3-r1-mutation-ax.log。修复方向:用已知大小的样本断言各行的实际显示值,并生成恢复点验证用户选择的点数与容量约束,使上述突变触发失败。