--- 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)