24 lines
866 B
Markdown
24 lines
866 B
Markdown
# US01-03 — Discover and Reconcile Stable Assets
|
|
|
|
Epic: [E01](../E01-shared-identity-inventory.md)
|
|
|
|
As a user, I want scans to discover eligible photos and retain identity across moves
|
|
so reorganizing folders does not lose prior work.
|
|
|
|
## Acceptance criteria
|
|
|
|
- Donor discovery and reconciliation logic is extracted behind `InventoryService`.
|
|
- All supported roots use one boundary and exclusion policy; unsafe symlink paths fail.
|
|
- New, moved, copied, replaced, missing, active, and archived occurrences are distinct.
|
|
- Enumeration is deterministic and rescanning unchanged input is idempotent.
|
|
|
|
## Automated tests
|
|
|
|
- Unit/property tests cover path normalization, boundaries, and reconciliation.
|
|
- Integration tests move, copy, replace, remove, and rescan fixture assets, asserting
|
|
stable IDs and exact durable states after restart.
|
|
|
|
## Dependencies
|
|
|
|
- US01-02
|