lightcraft/crates
Brandon Thomas 759d3c7f8a M1.3: import (recursive folders, content-hash duplicates, add vs copy)
- engine::import: expand files/folders recursively (sorted; hidden entries
  and the library folder skipped), skip known paths, probe + hash in
  parallel (std:🧵:scope), skip duplicates by content hash (against
  the library and within the batch), add in place or copy into
  <library>/Originals/YYYY/YYYY-MM-DD/ with unique names; one undoable op.
- library.import {paths, mode: add|copy, album?} returns
  {imported, duplicates[{path, existing, reason}], failed, scanned}.
- probe_bytes records the content hash (SipHash-1-3 128) on every photo.
- system clock for import/edit times on native (Session::with_system_clock).
- app: command-line folders are expanded by the engine (re-importing the
  same folder is a no-op); example gen_photos writes procedural test JPEGs
  (never committed).
- Measured (200 procedural 2000 px JPEGs, M-series): import 2.25 s; reopen:
  library load 1.7 ms, control ready 0.12 s, first thumbnail 0.17 s,
  visible grid drawn 0.48 s (thumbnails from the disk cache).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 00:04:07 -04:00
..
catalog M1.4: crash-safe catalog persistence (op log + snapshot) 2026-09-30 23:40:40 -04:00
codecs M1.1: codecs MPF preview thumbnail test 2026-09-30 12:27:09 -04:00
color M0.1/M0.2: workspace, xtask (layers/wasm/ci/stats), geom, color, raster 2026-09-30 10:04:12 -04:00
develop M0.6: engine (Session, ~75 commands: library/photo/album/develop/crop/masks/spots/presets/versions/history/queries; undo via inverse ops; interactions; render jobs; demo library) 2026-09-30 11:33:29 -04:00
engine M1.3: import (recursive folders, content-hash duplicates, add vs copy) 2026-10-01 00:04:07 -04:00
geom M0.1/M0.2: workspace, xtask (layers/wasm/ci/stats), geom, color, raster 2026-09-30 10:04:12 -04:00
meta M3.1: lightcraft-meta EXIF/XMP/IPTC 2026-09-30 11:08:42 -04:00
pipeline fmt: rustfmt crates/pipeline/src/finish.rs (main was not fmt-clean; needed for cargo xtask ci) 2026-09-30 23:40:40 -04:00
preview M1.5: thumbnail/preview cache (disk + memory LRU, prioritized job pool) 2026-09-30 23:51:47 -04:00
raster M0.1/M0.2: workspace, xtask (layers/wasm/ci/stats), geom, color, raster 2026-09-30 10:04:12 -04:00
raw M3.7: Sony ARW decoding (ARW2 cRAW, uncompressed, LJ92 tiles) 2026-09-30 11:59:49 -04:00
scenes M0.3/M0.5: develop settings model + control specs + presets; procedural demo scenes 2026-09-30 11:06:57 -04:00
tiff M3.1: lightcraft-tiff reader/writer 2026-09-30 11:00:48 -04:00
ui-egui M1.5: thumbnail/preview cache (disk + memory LRU, prioritized job pool) 2026-09-30 23:51:47 -04:00