initial commit
This commit is contained in:
46
_bmad-output/implementation-artifacts/8-6-file-management.md
Normal file
46
_bmad-output/implementation-artifacts/8-6-file-management.md
Normal file
@@ -0,0 +1,46 @@
|
||||
---
|
||||
epic: 8
|
||||
story: 8.6
|
||||
title: "File Management"
|
||||
status: draft
|
||||
---
|
||||
|
||||
## Epic 8 — Windows App (Rust + iced)
|
||||
**Goal:** Fast, lightweight native Windows app -- single .exe, no runtime dependencies.
|
||||
|
||||
### Story 8.6: File Management
|
||||
|
||||
As a **Windows user**,
|
||||
I want my sheets stored as files in a standard location with a sidebar for navigation,
|
||||
So that I can organize my calculations and find them through Windows Search.
|
||||
|
||||
**Acceptance Criteria:**
|
||||
|
||||
**Given** the app is installed
|
||||
**When** the user creates a new sheet
|
||||
**Then** it is saved as a `.calcpad` JSON file in `%APPDATA%\CalcPad\sheets\`
|
||||
|
||||
**Given** sheets exist in the storage directory
|
||||
**When** the app's sidebar is displayed
|
||||
**Then** all sheets and folders appear in a tree view matching the directory structure
|
||||
|
||||
**Given** the sidebar shows sheets and folders
|
||||
**When** the user clicks a sheet name
|
||||
**Then** the editor loads that sheet's content
|
||||
|
||||
**Given** sheets are stored as `.calcpad` files
|
||||
**When** Windows Search indexes the directory
|
||||
**Then** sheets are discoverable by file name and (if a search protocol handler is registered) by content
|
||||
|
||||
**Given** the user renames a sheet via the sidebar
|
||||
**When** the rename is confirmed
|
||||
**Then** the underlying file is renamed on disk and the sidebar updates
|
||||
|
||||
**Given** the user creates a folder via the sidebar
|
||||
**When** the folder is created
|
||||
**Then** a corresponding subdirectory is created in the storage path
|
||||
**And** sheets can be dragged into it
|
||||
|
||||
**Given** the `.calcpad` file format
|
||||
**When** a sheet is saved
|
||||
**Then** the JSON contains the sheet's lines, variable state, metadata (title, created date, modified date), and format version
|
||||
Reference in New Issue
Block a user