Skip to content

fix: show updater progress and enforce timeouts - #10

Merged
Karl-Dai merged 1 commit into
mainfrom
fix/updater-progress-timeout
Aug 14, 2026
Merged

fix: show updater progress and enforce timeouts#10
Karl-Dai merged 1 commit into
mainfrom
fix/updater-progress-timeout

Conversation

@Karl-Dai

Copy link
Copy Markdown
Owner

Summary

  • emit updater stages for checking, downloading, signature verification, and readiness
  • show localized download percentage and verification state in both Master and Slave toolbars
  • enforce 10-second per-endpoint, 30-second overall check, and 5-minute download timeouts
  • restore the update button before showing completion or error dialogs
  • add shared progress/error helpers and focused unit coverage

Why

The updater waited on network requests and silently downloaded the complete update package before opening the update dialog. With no request timeout or visible progress, the button could remain on “Checking…” long enough to look unresponsive.

User impact

Users now see whether the app is checking, downloading, or verifying an update. Known-length downloads show a percentage, stalled checks/downloads fail with localized guidance, and duplicate checks are prevented while background update work is active.

Validation

  • npm -w shared-frontend test — 20 tests passed
  • npm -w frontend run build
  • npm -w master-frontend run build
  • cargo test -p modbusmaster-app -p modbussim-app
  • cargo clippy -p modbusmaster-app -p modbussim-app --all-targets -- -D warnings
  • cargo tauri build --bundles app --config '{"bundle":{"createUpdaterArtifacts":false}}'
  • real macOS UI check: “Checking…” appears immediately, then the button resets before the “latest version” dialog

@Karl-Dai
Karl-Dai marked this pull request as ready for review August 14, 2026 05:41
@Karl-Dai
Karl-Dai merged commit c5bbf05 into main Aug 14, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant