initial commit
This commit is contained in:
38
_bmad-output/implementation-artifacts/8-9-portable-mode.md
Normal file
38
_bmad-output/implementation-artifacts/8-9-portable-mode.md
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
epic: 8
|
||||
story: 8.9
|
||||
title: "Portable Mode"
|
||||
status: draft
|
||||
---
|
||||
|
||||
## Epic 8 — Windows App (Rust + iced)
|
||||
**Goal:** Fast, lightweight native Windows app -- single .exe, no runtime dependencies.
|
||||
|
||||
### Story 8.9: Portable Mode
|
||||
|
||||
As a **Windows user** who uses a USB drive,
|
||||
I want CalcPad to run in portable mode when a marker file is present,
|
||||
So that I can carry my calculator and all its data on a USB stick without installing anything on the host machine.
|
||||
|
||||
**Acceptance Criteria:**
|
||||
|
||||
**Given** a file named `portable.marker` exists in the same directory as `calcpad.exe`
|
||||
**When** the app launches
|
||||
**Then** all data (sheets, settings, configuration) is stored in a `data/` subdirectory alongside the `.exe` instead of in `%APPDATA%`
|
||||
|
||||
**Given** `portable.marker` does NOT exist alongside the `.exe`
|
||||
**When** the app launches
|
||||
**Then** the app uses the standard `%APPDATA%\CalcPad\` directory for storage (normal installed mode)
|
||||
|
||||
**Given** the app is in portable mode
|
||||
**When** the user creates sheets and changes settings
|
||||
**Then** all changes are written to the local `data/` directory
|
||||
**And** no files are written to the system `%APPDATA%` or registry
|
||||
|
||||
**Given** the user copies the CalcPad folder (exe + portable.marker + data/) to a USB drive
|
||||
**When** the user runs calcpad.exe from the USB on a different Windows machine
|
||||
**Then** all sheets and settings from the original machine are available
|
||||
|
||||
**Given** the app is in portable mode
|
||||
**When** the auto-update feature checks for updates
|
||||
**Then** auto-update is disabled (or updates are downloaded to the portable directory) to avoid modifying the host system
|
||||
Reference in New Issue
Block a user