Files
photoanalyzer/delivery_backlog/stories/US07-04-fault-concurrency.md

26 lines
1008 B
Markdown

# US07-04 — Prove Concurrency and Crash Recovery
Epic: [E07](../E07-hardening-release.md)
As an operator, I want randomized race and fault tests so concurrency cannot produce
deadlocks, stale commits, duplicate terminal states, or data loss.
## Acceptance criteria
- Test control points exist at persisted transitions without exposing production
mutation APIs.
- Tests cover database pressure, worker claim races, file changes, thumbnail races,
safety/analysis races, EXIF/upload races, rename/archive conflicts, and cancellation.
- Faults cover process death, disk full, read-only paths, DB busy/corruption, network
failures, malformed providers, GPU exhaustion, subprocess hangs, and missing tools.
- Recovery is deterministic or enters an explicit manual-recovery state.
## Automated tests
- Randomized suites repeat with recorded seeds and assert invariants after restart.
- CI retains journals, logs, DB, seed, and filesystem manifest for any failure.
## Dependencies
- US07-02, US07-03