US06-04 — Plan and Execute Safe Restores #35

Closed
opened 2026-07-13 13:10:50 +02:00 by domverse · 3 comments
Owner

Source specification: delivery_backlog/stories/US06-04-restore.md

US06-04 — Plan and Execute Safe Restores

Epic: E06

As a user, I want archived assets restored to collision-free active paths so I can
recover originals without losing identity or previous decisions.

Acceptance criteria

  • Restore preflight requires the correct archive identity, matching bytes, capacity,
    safe destination, and no conflicting lease.
  • Restore copies, closes, verifies, atomically publishes, and registers an active
    occurrence while preserving asset identity and stage history.
  • Collisions never overwrite; mismatches become stale/divergent states.
  • Restore is journaled, resumable, and idempotent.

Automated tests

  • Tests cover offline media, wrong volume, normal restore, collision, changed archive
    bytes, interruption, repeated restart, and preserved decisions.

Dependencies

  • US06-03
Source specification: [delivery_backlog/stories/US06-04-restore.md](https://git.domverse-berlin.eu/domverse/photoanalyzer/src/branch/main/delivery_backlog/stories/US06-04-restore.md) # US06-04 — Plan and Execute Safe Restores Epic: [E06](https://git.domverse-berlin.eu/domverse/photoanalyzer/src/branch/main/delivery_backlog/E06-archive-lifecycle.md) As a user, I want archived assets restored to collision-free active paths so I can recover originals without losing identity or previous decisions. ## Acceptance criteria - Restore preflight requires the correct archive identity, matching bytes, capacity, safe destination, and no conflicting lease. - Restore copies, closes, verifies, atomically publishes, and registers an active occurrence while preserving asset identity and stage history. - Collisions never overwrite; mismatches become stale/divergent states. - Restore is journaled, resumable, and idempotent. ## Automated tests - Tests cover offline media, wrong volume, normal restore, collision, changed archive bytes, interruption, repeated restart, and preserved decisions. ## Dependencies - US06-03
domverse added this to the E06 — Archive Lifecycle milestone 2026-07-13 13:10:50 +02:00
domverse added the type/featurearea/backendpriority/criticalarea/filesystem labels 2026-07-13 13:10:50 +02:00
domverse added a new dependency 2026-07-13 13:11:29 +02:00
domverse added a new dependency 2026-07-13 13:11:30 +02:00
domverse added a new dependency 2026-07-13 13:11:31 +02:00
domverse added this to the Photo Analyzer Delivery project 2026-07-13 13:19:47 +02:00
domverse added the status/backlog label 2026-07-13 13:52:54 +02:00
domverse added status/in-progress and removed status/backlog labels 2026-08-16 19:22:34 +02:00
domverse self-assigned this 2026-08-16 19:22:34 +02:00
Author
Owner

Claimed for implementation on branch us/US06-04-plan-and-execute-safe-restores.

Claimed for implementation on branch `us/US06-04-plan-and-execute-safe-restores`.
domverse added status/review and removed status/in-progress labels 2026-08-16 19:49:01 +02:00
Author
Owner

Submitted for review: #80

Tests passed:

  • work_item/scripts/python -m unittest discover -s work_item/tests -v
  • work_item/scripts/python -m pytest tests -q
  • work_item/scripts/python -m pytest tests/integration/test_restore.py -q
Submitted for review: https://git.domverse-berlin.eu/domverse/photoanalyzer/pulls/80 Tests passed: - `work_item/scripts/python -m unittest discover -s work_item/tests -v` - `work_item/scripts/python -m pytest tests -q` - `work_item/scripts/python -m pytest tests/integration/test_restore.py -q`
domverse added status/done and removed status/review labels 2026-08-16 19:49:24 +02:00
Author
Owner

Completed and merged via PR #80.

Completed and merged via PR #80.
domverse moved this to Done in Photo Analyzer Delivery on 2026-08-16 20:00:12 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: domverse/photoanalyzer#35