Files
calctext/_bmad-output/implementation-artifacts/13-4-crash-recovery.md
2026-03-16 19:54:53 -04:00

1.7 KiB

epic, story, title, status
epic story title status
13 13.4 Crash Recovery draft

Epic 13 — Performance & Reliability

Goal: Instant evaluation, never lose work.

Story 13.4: Crash Recovery

As a CalcPad user, I want my work to be auto-saved continuously, So that I never lose more than 2 seconds of work after a crash or unexpected quit.

Acceptance Criteria:

Given the user is actively editing a sheet on macOS When the application is running Then NSDocument auto-save is leveraged to persist the document state at least every 2 seconds And the auto-saved state includes all sheet content, variable values, and cursor position

Given the user is actively editing a sheet on Windows When the application is running Then a journal file is written to %APPDATA%/CalcPad/recovery/ at least every 2 seconds And the journal file contains the full sheet content and metadata needed for restoration

Given the user is actively editing a sheet on the web When the application is running Then sheet state is persisted to localStorage at least every 2 seconds And if the user is logged in with cloud sync enabled, the state is also queued for server sync

Given CalcPad crashes or is force-quit When the user relaunches the application Then the recovery file is detected and the user is prompted to restore their session And the restored session contains all content from no more than 2 seconds before the crash And the user can choose to discard the recovered state and start fresh

Given multiple sheets were open at the time of a crash When the user relaunches the application Then all sheets with recovery data are listed for restoration And the user can selectively restore individual sheets