mirror of
https://github.com/storytold/lightcraft.git
synced 2026-11-01 05:57:09 -06:00
Saving a sidecar wrote each keyword's path into dc:subject. A photo keyworded Places|Italy|Rome got "Places|Italy|Rome" there instead of "Places", "Italy" and "Rome", after any change with auto-write on, even a rating. dc:subject is the flat list Lightroom, darktable, digiKam and exiftool-based tools search, so the photo stopped turning up for "Rome" in a library shared with them. keywords::to_file is the inverse of from_file: every level of every keyword goes to dc:subject, and when any keyword has levels, every keyword goes to lr:hierarchicalSubject as its path. It applies no export options (a sidecar is the photo's own record), so from_file reads the pair back as the same keywords. lr:hierarchicalSubject is now owned, so it is replaced on save and removed when the photo has no keywords, which also ends the documented limit where a keyword removed here stayed in another app's hierarchical list. Sidecars from 0.13 and older (paths in dc:subject) still read as paths and are written the new way on the next save. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>