xfy
2e40836480
fix(system): 备份/恢复任务轮询永不启动导致按钮卡死在 loading
点击「创建备份」后接口返回 task id,但按钮一直转圈、列表不刷新。
根因是 AGENTS.md 踩坑记录里的「Reactive hooks 不追踪普通 props/snapshot」:
进度轮询 use_future 在挂载时把 active_task_id 快照进 _task_id_for_poll
(彼时为 None),use_future 只运行一次即 return;用户点击后 create_backup
返回 task id 并 active_task_id.set(Some(id)),但 future 已结束、永不重跑
→ 轮询不启动 → busy 永远 true。恢复确认 use_future 有同样的快照陷阱
(_pending_for_confirm),导致点「恢复」连确认框都不弹。
改用与 DbStatusTab 自动刷新一致的长生命周期 loop 模式:use_future 只跑
一次,内部 loop 每轮迭代读 active_task_id() / pending_restore() 信号,
空闲时 200ms yield 呼吸。这样信号更新在下一轮迭代即被感知,无需依赖
ReactiveContext 对挂载期快照的订阅。
2026-07-13 13:56:22 +08:00
..
2026-07-13 10:09:15 +08:00
2026-06-16 16:45:08 +08:00
2026-06-29 13:47:40 +08:00
2026-07-13 13:38:50 +08:00
2026-07-04 21:54:54 +08:00
2026-07-08 14:18:08 +08:00
2026-07-13 10:09:15 +08:00
2026-07-08 16:40:32 +08:00
2026-07-13 13:56:22 +08:00
2026-06-29 13:47:40 +08:00
2026-07-02 17:15:18 +08:00
2026-07-09 11:50:39 +08:00
2026-07-08 16:40:32 +08:00
2026-07-08 14:37:52 +08:00
2026-06-12 19:02:37 +08:00
2026-06-29 13:47:40 +08:00
2026-07-10 11:48:26 +08:00
2026-07-09 17:36:38 +08:00
2026-06-29 15:42:40 +08:00
2026-06-30 17:42:52 +08:00
2026-07-03 13:42:17 +08:00
2026-07-07 18:34:17 +08:00
2026-06-24 13:54:36 +08:00
2026-07-10 11:39:24 +08:00