AskaEth
8a050c4402
fix(m204): 补「扫描中/还没扫描过/正在取消」三格种子 + try_lock 说明对得上代码
视觉复审 r1 判 p2-1items:六张举证图里「取消」全程是禁用态,「正在扫描… 3/7」
一格都没拍,而 README 却写成「两态」——证据覆盖不到结论(与 M201 同一个坑)。
本提交补种子与拆文件,不出产品行为改动。
- `pages/settings/java/seed.rs`:新增 `scanning` / `unscanned` / `cancelling` 三档。
三档都把快照写进 `ScanSlot`(新增 `ScanSlot::seed_report`)而不只改 `State.scanning`:
`clock.advance` 每拍用槽里的快照重算 `scanning`,只改 State 的话第一拍就被推回「没在扫」。
- `pages/settings/java/scan.rs`:`ScanReport` / `Job` / `ScanSlot` / `run_staged` / `rows`
从 `store.rs` 拆出(加 `seed_report` 之后那个文件 408 行,越过 400 行硬线);
`store.rs` 用 `pub use` 再导出 `ScanReport` / `ScanSlot`,既有路径一个都没改。
- `app/view.rs`:`note_screenshot_group` 的锁从 `lock()` 换成 `try_lock()`——代码复审 r1 指出
注释写着「拿不到锁就不打、不能把界面帧卡在锁上」,而实现用的是阻塞 `lock()`,只兜住中毒
不兜住等待。选 try_lock 而不是改注释:注释承诺的保证应由代码提供,不能靠「今天只有一个
调用点、锁里只有一次比较」这种会随改动失效的前提。
- `pages/settings/java/tests/cmdline.rs`:新增 `the_scan_seeds_cover_the_running_states`,
逐档钉 `State.scanning` 与 `scan.report().running`(后者才是「心跳下一拍会不会把它推开」)。
2026-11-09 12:09:02 +08:00
..
2026-11-08 20:23:44 +08:00
2026-11-05 10:43:22 +08:00
2026-11-08 21:42:12 +08:00
2026-11-09 05:06:56 +08:00
2026-11-09 05:06:04 +08:00
2026-11-07 17:01:13 +08:00
2026-11-07 15:02:13 +08:00
2026-11-07 17:01:13 +08:00
2026-11-05 01:59:13 +08:00
2026-11-04 19:53:45 +08:00
2026-11-09 12:09:02 +08:00
2026-11-07 15:02:13 +08:00
2026-11-08 20:23:42 +08:00
2026-11-09 05:06:04 +08:00
2026-11-05 16:43:35 +08:00
2026-11-07 15:02:13 +08:00
2026-11-07 10:36:35 +08:00
2026-11-07 10:36:35 +08:00
2026-11-05 01:59:13 +08:00
2026-11-04 19:53:38 +08:00
2026-11-07 12:09:42 +08:00
2026-11-09 10:51:16 +08:00
2026-11-09 10:51:16 +08:00
2026-11-05 02:54:04 +08:00
2026-11-05 05:08:35 +08:00
2026-11-07 15:02:13 +08:00
2026-11-07 15:02:13 +08:00