initial commit
This commit is contained in:
46
_bmad-output/implementation-artifacts/8-8-auto-update.md
Normal file
46
_bmad-output/implementation-artifacts/8-8-auto-update.md
Normal file
@@ -0,0 +1,46 @@
|
||||
---
|
||||
epic: 8
|
||||
story: 8.8
|
||||
title: "Auto-Update"
|
||||
status: draft
|
||||
---
|
||||
|
||||
## Epic 8 — Windows App (Rust + iced)
|
||||
**Goal:** Fast, lightweight native Windows app -- single .exe, no runtime dependencies.
|
||||
|
||||
### Story 8.8: Auto-Update
|
||||
|
||||
As a **Windows user**,
|
||||
I want CalcPad to check for updates automatically and apply them easily,
|
||||
So that I always have the latest features and bug fixes without manual effort.
|
||||
|
||||
**Acceptance Criteria:**
|
||||
|
||||
**Given** the app is running and connected to the internet
|
||||
**When** the app performs its periodic update check (e.g., on launch and every 24 hours)
|
||||
**Then** it queries the update server for the latest version
|
||||
|
||||
**Given** a new version is available
|
||||
**When** the update check completes
|
||||
**Then** the `.msi` installer is downloaded in the background without interrupting the user
|
||||
|
||||
**Given** the update has been downloaded
|
||||
**When** the download completes
|
||||
**Then** the user is prompted with a non-blocking notification: "Update available. Restart to apply?"
|
||||
|
||||
**Given** the user clicks "Restart to apply"
|
||||
**When** the update process starts
|
||||
**Then** CalcPad saves current state, launches the installer, and closes
|
||||
**And** the installer completes and relaunches CalcPad
|
||||
|
||||
**Given** an update has been downloaded
|
||||
**When** the binary is verified
|
||||
**Then** its Authenticode signature is checked against the CalcPad signing certificate before installation proceeds
|
||||
|
||||
**Given** the signature verification fails
|
||||
**When** the update process checks the binary
|
||||
**Then** the update is rejected, the downloaded file is deleted, and the user is warned about a potential integrity issue
|
||||
|
||||
**Given** the user declines the update
|
||||
**When** the notification is dismissed
|
||||
**Then** the user is not prompted again until the next version is available (or a configurable reminder period passes)
|
||||
Reference in New Issue
Block a user