Implement export execution for both export modes #30
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Spec section 12.1 defines two export modes with different safety properties. This issue
covers the export execution pipeline itself — selecting the set, copying files, and
driving the run as a background job.
Scope
Export execution for
approved_onlyandinclude_unapprovedmodes.Implementation notes
approved_only: only photos with approved human date decisions. Unresolved, disputed,and blocked-duplicate photos are excluded.
include_unapproved: additionally exports unresolved photos intoundated/, withoutEXIF dating metadata. Unapproved photos must never receive a synthesized date — that is
precisely the failure mode this mode is designed to avoid.
must never be touched. Any code path that opens an original for writing is a bug.
JobType.exportbackground job — a large collection export is long-running andmust not occupy a request.
manifest recording what was actually written. A partial export that is indistinguishable
from a complete one is the worst outcome here.
strategy chosen at pre-flight.
Done when
References
docs/circa-spec.mdsections 12.1, 6.6, 9.4backend/app/models/models.py(JobType.export)Depends on: export pre-flight checks, #2 (worker runtime).