47 lines
1.7 KiB
Markdown
47 lines
1.7 KiB
Markdown
---
|
|
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)
|