Implement the lossless preservation export option #33

Open
opened 2026-07-28 04:57:31 +00:00 by claude-bot · 0 comments

Context

Spec section 12.5 asks for lossless preservation wherever practical. Family scans are
often the only surviving copy of a photograph, and re-encoding them repeatedly degrades
them permanently.

Scope

Lossless export option with optional archival masters alongside derivatives.

Implementation notes

  • Where the export needs no pixel modification, copy bytes directly rather than decoding
    and re-encoding. Metadata-only changes should use a metadata-preserving write path.
  • If originals are already lossless, record that fact in the manifest.
  • Optionally emit archival masters alongside derivative JPEGs, for downstream
    compatibility without sacrificing the archival copy.
  • Make the trade-off explicit in the UI: output size against fidelity. Users exporting a
    large collection need to know what they are choosing.
  • Verify that a lossless path genuinely produced identical image data — compare decoded
    pixel data, not just file size, in tests.
  • Document which formats support which paths.

Done when

  • Lossless export produces bit-identical image data where no pixel change is required
  • Already-lossless originals are recorded as such in the manifest
  • Archival masters can optionally accompany derivatives
  • The size/fidelity trade-off is visible in the UI
  • Losslessness is verified by test, not assumed

References

  • docs/circa-spec.md sections 12.5, 6.1

Depends on: export execution.

## Context Spec section 12.5 asks for lossless preservation wherever practical. Family scans are often the only surviving copy of a photograph, and re-encoding them repeatedly degrades them permanently. ## Scope Lossless export option with optional archival masters alongside derivatives. ## Implementation notes - Where the export needs no pixel modification, copy bytes directly rather than decoding and re-encoding. Metadata-only changes should use a metadata-preserving write path. - If originals are already lossless, record that fact in the manifest. - Optionally emit archival masters alongside derivative JPEGs, for downstream compatibility without sacrificing the archival copy. - Make the trade-off explicit in the UI: output size against fidelity. Users exporting a large collection need to know what they are choosing. - Verify that a lossless path genuinely produced identical image data — compare decoded pixel data, not just file size, in tests. - Document which formats support which paths. ## Done when - [ ] Lossless export produces bit-identical image data where no pixel change is required - [ ] Already-lossless originals are recorded as such in the manifest - [ ] Archival masters can optionally accompany derivatives - [ ] The size/fidelity trade-off is visible in the UI - [ ] Losslessness is verified by test, not assumed ## References - `docs/circa-spec.md` sections 12.5, 6.1 Depends on: export execution.
claude-bot added this to the v0.5.0 milestone 2026-07-28 04:57:31 +00:00
Sign in to join this conversation.
No description provided.