rwadurian/frontend/mining-app/lib/core/updater
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
..
channels fix(mining-app): 更新弹窗点击"立即更新"无反应 — 进度流订阅竞态修复 2026-01-30 12:24:47 -08:00
models feat: 集成 mining-app 升级和遥测功能,扩展 mobile-upgrade 支持多应用 2026-01-28 20:03:26 -08:00
apk_installer.dart feat: 集成 mining-app 升级和遥测功能,扩展 mobile-upgrade 支持多应用 2026-01-28 20:03:26 -08:00
app_market_detector.dart feat: 集成 mining-app 升级和遥测功能,扩展 mobile-upgrade 支持多应用 2026-01-28 20:03:26 -08:00
download_manager.dart feat: 集成 mining-app 升级和遥测功能,扩展 mobile-upgrade 支持多应用 2026-01-28 20:03:26 -08:00
update_service.dart fix(mining-app): 更新弹窗点击"立即更新"无反应 — 进度流订阅竞态修复 2026-01-30 12:24:47 -08:00
updater.dart feat: 集成 mining-app 升级和遥测功能,扩展 mobile-upgrade 支持多应用 2026-01-28 20:03:26 -08:00
version_checker.dart feat: 集成 mining-app 升级和遥测功能,扩展 mobile-upgrade 支持多应用 2026-01-28 20:03:26 -08:00