Velopack: installer and auto-updates #21
Loading…
Reference in a new issue
No description provided.
Delete branch "f/velopack"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Releases now ship a Setup.exe installer with delta auto-updates: the app checks the forge releases at startup, downloads any newer version in the background, and offers a restart-to-apply button next to the version in the nav drawer. vpk packages and publishes the release (Setup.exe, its own portable zip, full/delta packages and the update manifest), replacing the hand-rolled zip step. Also drops the precompressed .br/.gz static asset twins from the publish output.
🤖 Claude AI Code Review
Summary
Adds Velopack-based installer and background auto-updates with a restart-to-apply button, replacing the hand-rolled zip release step.
Code Quality ⭐⭐⭐⭐☆
Clean, well-commented integration with sensible best-effort error handling and no-op fallback for portable/dev runs.
Issues
🟢 UpdateService.cs —
PendingVersionis read on the UI thread while_pendingUpdateis set on a background thread with no synchronization/volatile. Low risk given the event ordering, but the field publication isn't guaranteed visible. Consider assigning before invokingStateChanged(already done) and marking fieldsvolatileif you want to be safe.🟢 release.yml —
vpk download giteafailure is only logged, not gated, but a genuine transient failure (vs. "no previous release") would silently produce a full-only package with no delta. Acceptable for a PoC but worth noting.Solid PoC. The hardcoded LAN URLs are consistent with the pre-existing workflow, so no new secret exposure introduced.
📊 Tokens: 5844 input + 396 output | 💰 Cost: ~$0.0391
Generated by Claude Opus 4.8 via Gitea Actions