mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-26 19:17:02 -06:00
- crates/engine/src/sidecar.rs: <stem>.xmp (default) or <file>.xmp next to originals with rating,
label, title, caption, copyright, creator, keywords, capture time/GPS, pick flag + full develop
settings in lc:settings; atomic writes; read on import (sidecar wins for metadata, edits restored)
and via photo.readMetadataFromFile (one undo step); raw/DNG embedded XMP used without a sidecar.
- Commands: photo.saveMetadataToFile (Cmd+S), photo.readMetadataFromFile, library.xmpPreferences
{autoWrite, naming}, library.toggleAutoWriteXmp; prefs persisted in the library's prefs.json.
Auto-write rewrites sidecars after each committed change (not mid-drag; undo/redo too).
- crates/engine/src/crs.rs: crs: develop fields (PV2012 light, WB abs/incremental, presence, HSL,
B&W mix, parametric + point curves, colour grading, sharpening, NR, vignette, grain, optics,
geometry, crop) → partial settings; documented in docs/xmp-interop.md.
- meta: write_xmp_lc for extra lc: properties; crs namespace canonicalised on read (never written).
- Tests: packet round trip, crs mapping with hand-written snippets, save → delete library →
re-import restores edits, auto-write + prefs persistence, foreign sidecar, DNG-embedded XMP.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>