rwadurian/frontend/mining-app/lib
hailin cfa0e2ca40 fix(mining-app): 更新弹窗点击"立即更新"无反应 — 进度流订阅竞态修复
问题根因:
SelfHostedUpdater._listenToProgress() 在 initState 和 _startDownload 中
订阅 UpdateService.downloadProgressStream,但该 getter 返回
_downloadManager?.progressStream —— _downloadManager 在 downloadUpdate()
调用前为 null,?.listen 无操作。downloadUpdate() 创建新 _downloadManager
后,其 progressStream 无人监听,进度事件全部丢失,UI 无任何反馈。

修复:
1. UpdateService 新增持久化广播流 _downloadProgressController,
   downloadUpdate() 创建新 DownloadManager 后将其进度转发到此流
2. downloadProgressStream getter 改为返回持久化流(非 nullable)
3. SelfHostedUpdater 在 initState 中一次性订阅持久化流,
   dispose 时取消订阅,_startDownload 不再重复订阅

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 12:24:47 -08:00
..
core fix(mining-app): 更新弹窗点击"立即更新"无反应 — 进度流订阅竞态修复 2026-01-30 12:24:47 -08:00
data feat(p2p-transfer): 实现P2P划转手续费功能(全栈) 2026-01-30 06:44:19 -08:00
domain feat(mining-app): 添加补发记录功能 2026-01-22 01:35:53 -08:00
presentation fix(mining-app): 自动更新检查未触发 — 修复双重节流 + 添加调试日志 2026-01-30 12:20:56 -08:00
main.dart feat: 集成 mining-app 升级和遥测功能,扩展 mobile-upgrade 支持多应用 2026-01-28 20:03:26 -08:00