mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-25 10:37:11 -06:00
Threads the Vec<Region> that lightcraft-meta already reads from XMP (MWG-RS) through to the screen, so it's no longer inert: - catalog::Meta gains a `regions` field (catalog now depends on lightcraft-meta, which doesn't depend back on catalog, so no cycle). - crates/engine/src/files.rs (meta_of) and src/sidecar.rs (parse_sidecar / merge_into) populate it for both embedded-XMP and external-sidecar photos, mirroring how `keywords` is already handled. - ui-egui's loupe view (panels/detail.rs) draws each region as a rectangle over the photo via the existing CanvasMap, color-coded by kind (Face/Pet/other) with its name label if present, right alongside the existing info overlay. Read-only, no new interaction. New end-to-end test (regions_from_sidecar_are_read_on_import) covers a region written to a sidecar reaching Photo.meta.regions through real import, not just the parser. cargo xtask ci green (fmt, clippy -D warnings, test, parity, layers, assets, wasm). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>