storytold/lightcraft
69.7
Adequate · 7 November 2026
293.1k
lines of production code
Rust
primary language
2
measurements over time
What this system is
Behavioural changes
1 commit (0 fixes) modifying (repo-wide)
A change to existing behaviour in (repo-wide) — 1 commit, 15 files: “M0.1/M0.2: workspace, xtask (layers/wasm/ci/stats), geom, color, raster”. Also in this area: 5 commits (0 fixes) modifying crates/catalog; 35 commits (1 fix) modifying crates/pipeline.
clean-room, crates/color · low confidence · unverified
1 commit (0 fixes) modifying apps/lightcraft-web, crates/ui-egui/examples
A change to existing behaviour in apps/lightcraft-web, crates/ui-egui/examples — 1 commit, 4 files: “Preserve queued file drops across dialogs and restore Flatpak sources (\#2975)” (refs \#2975). Also in this area: 19 commits (1 fix) modifying crates/ui-egui; 36 commits (0 fixes) modifying crates/ui-egui.
crates/ui-egui/examples · low confidence · unverified
1 commit (0 fixes) modifying crates/denoise, crates/denoise-core, crates/merge
A change to existing behaviour in crates/denoise, crates/denoise-core, crates/merge — 1 commit, 7 files: “security/meta,merge,raw,tiff,denoise: bound memory sized by attacker-shaped inputs”. Also in this area: 1 commit adding/updating tests in (repo-wide).
crates/merge/tests · medium confidence · unverified
1 commit (0 fixes) modifying crates/denoise-core, crates/preview
A change to existing behaviour in crates/denoise-core, crates/preview — 1 commit, 2 files: “security: staging and probe files are created new, never written through an existing entry (\#3673)” (refs \#3673). Also in this area: 26 commits (1 fix) modifying crates/engine; 2 commits (0 fixes) modifying crates/denoise.
crates/denoise-core · medium confidence · unverified
1 commit (0 fixes) modifying crates/engine/examples, crates/engine/src/sync
A change to existing behaviour in crates/engine/examples, crates/engine/src/sync — 1 commit, 2 files: “PERF-SYNC: a Synchronize Folder scan reads off the folder's listing whether a photo and its sidecar are there”. Also in this area: 19 commits (2 fixes) modifying crates/engine/src.
crates/engine/src/sync · medium confidence · unverified
1 commit (0 fixes) modifying crates/segment
A change to existing behaviour in crates/segment — 1 commit, 2 files: “LR-MASK-OBJECTS: a SAM 3 checkpoint in Meta's original format is named as such, not as an unsupported dtype (\#3378)” (refs \#3378). Also in this area: 3 commits (1 fix) modifying crates/segment; 66 commits (10 fixes) modifying crates/engine.
(repo-wide) · low confidence · unverified
12 commits (2 fixes) modifying crates/raw
A change to existing behaviour in crates/raw — 12 commits (2 fixs), 10 files: “LR-IMP-CAMERA-COVERAGE: PEF trims masked lines a little above black, saturated lines outside masked ones, and keeps a lens-cap frame whole (\#1271)”; “ORF: black level from the main maker note for bodies without ImageProcessing; gate and bound the 0x1017/0x1018 gains (part of \#1273)”; “LR-IMP-CAMERA-COVERAGE: Nikon D90 NEFs drop their filler columns (no pink band)”; and 9 more (refs \#1271, \#1273, \#1276, \#1272, \#1275). Also in this area: 1 commit (0 fixes) modifying crates/raw; 4 commits (1 fix) modifying crates/raw; 1 commit (1 fix) fixing crates/raw.
(repo-wide) · low confidence · unverified
132 commits (12 fixes) modifying crates/engine/src
A change to existing behaviour in crates/engine/src — 132 commits (12 fixs), 41 files: “Engine: folder.label command; labels follow folder rename and move”; “LR-LIB-FOLDER: delete populated album folders with undo (\#501)”; “LR-CLOUD-SMARTPREVIEW: smart previews record the camera-look fit version and are rebuilt when it is older”; and 129 more (refs \#501, \#510, \#146, \#496, \#244, …). Also in this area: 26 commits (1 fix) modifying crates/engine; 1 commit (0 fixes) modifying crates/engine/examples, crates/engine/src/sync.
crates/engine/examples · medium confidence · unverified
2 commits (0 fixes) modifying assets/app-icon
A change to existing behaviour in assets/app-icon — 2 commits, 17 files: “app icon: lynx (owner's ArtCraft drawing), Dock/taskbar/launcher wiring, palette docs”; “docs: tidy agent, contributor and asset docs”.
assets/app-icon · medium confidence · unverified
2 commits (0 fixes) modifying crates/engine/src/crs\_masks
A change to existing behaviour in crates/engine/src/crs\_masks — 2 commits, 1 file: “refactor(lightcraft-engine): move crs\_masks.rs tests to crates/engine/src/crs\_masks/tests.rs”; “style: cargo fmt the moved test modules”.
_crates/engine/src/crs\masks · medium confidence · unverified
2 commits (0 fixes) modifying crates/engine/src/lightroom\_sqlite
A change to existing behaviour in crates/engine/src/lightroom\_sqlite — 2 commits, 1 file: “refactor(lightcraft-engine): move lightroom\_sqlite.rs tests to crates/engine/src/lightroom\_sqlite/tests.rs”; “style: cargo fmt the moved test modules”.
_crates/engine/src/lightroom\sqlite · medium confidence · unverified
2 commits (0 fixes) modifying crates/engine/src/slide\_overlay
A change to existing behaviour in crates/engine/src/slide\_overlay — 2 commits, 1 file: “refactor(lightcraft-engine): move slide\_overlay.rs tests to crates/engine/src/slide\_overlay/tests.rs”; “style: cargo fmt the moved test modules”.
_crates/engine/src/slide\overlay · medium confidence · unverified
2 commits (0 fixes) modifying crates/meta/src/focus
A change to existing behaviour in crates/meta/src/focus — 2 commits, 1 file: “refactor(lightcraft-meta): move focus.rs tests to crates/meta/src/focus/tests.rs”; “style: cargo fmt the moved test modules”.
crates/meta/src/focus · medium confidence · unverified
238 commits (8 fixes) modifying (repo-wide)
A change to existing behaviour in (repo-wide) — 238 commits (8 fixs), 17 files: “docs: README feature status (persistence, MCP libraries, export metadata/watermark)”; “LR-EDIT-OPTICS-PROFILE: apply the distortion correction Panasonic/Leica record in RW2/RWL (\#256)”; “never-crash: deny the panic lints in every crate root; GPU asserts become fail paths (\#2137) (\#2170)”; and 235 more (refs \#256, \#2137, \#2170, \#3503, \#260, …).
(repo-wide) · low confidence · unverified
3 commits (0 fixes) modifying crates/raw
A change to existing behaviour in crates/raw — 3 commits, 18 files: “CI: clean under clippy 1.99 (as\_chunks for constant chunk sizes, ? in export resize parsing)”; “Never crash: raw and tiff decoders free of panicking calls”; “M3.7: header probe agrees with decode on subsampled lossless JPEG; lossless ARW corpus samples”. Also in this area: 1 commit (0 fixes) modifying crates/merge, crates/tiff; 1 commit (1 fix) fixing crates/tiff; 4 commits (1 fix) modifying crates/tiff.
crates/tiff/src · low confidence · unverified
4 commits (0 fixes) modifying crates/codecs
A change to existing behaviour in crates/codecs — 4 commits, 13 files: “LR-IMP-FORMATS: GIF density from the first frame; mostly blank canvases capped at 4 MP”; “LR-IMP-FORMATS: a GIF with no readable first frame is refused”; “LR-IMP-FORMATS: an RLE BMP that ends early opens; a GIF's bound counts only its LZW data (\#2553)”; and 1 more (refs \#2553, \#2710). Also in this area: 1 commit (0 fixes) modifying crates/faces, crates/testkit.
crates/testkit · low confidence · unverified
4 commits (1 fix) modifying crates/engine/src/sidecar
A change to existing behaviour in crates/engine/src/sidecar — 4 commits (1 fix), 3 files: “LR-BEHAV-UNDO: keep file history consistent after failed renames”; “Windows: keep sidecar spellings on case-insensitive volumes; fix rename/sidecar tests”; “LR-BEHAV-UNDO: each rename-provenance fixture gets its own folder (\#874's tests shared one and failed when run in parallel)”; and 1 more (refs \#874, \#989). Also in this area: 1 commit (1 fix) fixing crates/engine/src/crs, crates/engine/src/sidecar; 22 commits (2 fixes) modifying crates/engine/src; 1 commit (0 fixes) modifying crates/engine/src/import, crates/engine/src/sidecar.
(repo-wide) · medium confidence · unverified
63 commits (3 fixes) modifying crates/engine
A change to existing behaviour in crates/engine — 63 commits (3 fixs), 66 files: “LR-EDIT-OPTICS-PROFILE: apply DNG WarpRectilinear2 lens corrections (Pixel DNGs, \#635)”; “LRC-SS-OVERLAYS: slideshow overlays: identity plate, rating stars, text with tokens, watermark”; “Issue \#345: folder scan in the activity stack”; and 58 more (refs \#635, \#345, \#719, \#706, \#523, …). Also in this area: 1 commit (0 fixes) modifying crates/develop, crates/geom; 3 commits (1 fix) modifying crates/geom; 1 commit (1 fix) fixing crates/geom.
(repo-wide) · low confidence · unverified
9 commits (2 fixes) modifying crates/pipeline
A change to existing behaviour in crates/pipeline — 9 commits (2 fixs), 12 files: “LR-EDIT-OPTICS-PROFILE: apply the distortion correction Panasonic/Leica record in RW2/RWL (\#256)”; “\#323: windows on the GPU; Auto Mask strokes grow the window; dab references at f32”; “\#323: windows: noise reduction and mask edge refinement follow the whole frame's size”; and 6 more (refs \#256, \#323, \#157, \#316). Also in this area: 1 commit (0 fixes) modifying crates/develop, tools; 26 commits (1 fix) modifying crates/engine; 2 commits (2 fixes) fixing crates/develop; 1 commit (1 fix) fixing crates/develop, tools.
crates/develop · low confidence · unverified
Fixes
1 commit (1 fix) fixing crates/engine/src/crs, crates/engine/src/sidecar
A fix in crates/engine/src/crs, crates/engine/src/sidecar — 1 commit (1 fix), 4 files: “test(engine): factor complex regression scenarios”. Also in this area: 42 commits (1 fix) modifying crates/engine.
crates/engine/src/crs · medium confidence · unverified
7 commits (4 fixes) fixing packaging
A fix in packaging — 7 commits (4 fixs), 13 files: “fix(installer): harden install-policy checks and packaging-lint workflow”; “test(installer): cover the compiled folder searches, resolver chains and wizard folder replay”; “Preserve queued file drops across dialogs and restore Flatpak sources (\#2975)”; and 4 more (refs \#2975). Also in this area: 3 commits (0 fixes) modifying packaging; 1 commit (0 fixes) modifying packaging; 4 commits (1 fix) modifying packaging.
packaging/windows · medium confidence · unverified
Test coverage
1 commit adding/updating tests in (repo-wide); 1 commit adding/updating tests in crates/mcp; 1 commit adding/updating tests in crates/ui-egui/src/panels/grid; 1 commit adding/updating tests in crates/ui-egui/tests; 6 commits adding/updating tests in crates/ui-egui/tests.
Written by cca.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 70.
Lenses
- Code Health 86
- Architecture 96
- Maturity 70
- Readiness 73
- Security 62
- Performance 100
Changes since last survey
- 300 commits — 261 feature/other, 39 fixes
By area
- (repo) — 140 commits
- crates/ui-egui — 40 commits
- crates/engine — 35 commits
- (root) — 13 commits
- crates/pipeline — 10 commits
- crates/catalog — 8 commits
- .github/workflows — 7 commits
- crates/raw — 7 commits
- crates/gpu — 6 commits
- crates/lensdb — 5 commits
- apps/lightcraft — 4 commits
- apps/lightcraft-web — 4 commits
- crates/meta — 3 commits
- apps/lightcraft-cli — 2 commits
- crates/raster — 2 commits
- crates/slideshow — 2 commits
- docs/gpu-pipeline.md — 2 commits
- packaging/linux — 2 commits
- crates/film — 1 commit
- crates/geocode — 1 commit
Notable commits
- fix: Fix Histogram::percentile returning black when the target truncates to 0
- fix: Fix mismatched source/destination rects in before/after zoom window renders (#3842)
- fix: LR-EDIT-OPTICS-PROFILE: prefer known crop in fixed-lens score ties
- fix: LR-EDIT-OPTICS-PROFILE: synchronize unknown-crop fix with main
- fix: LR-MASK-GEOMETRY: review fixes: guides reach the photo from off-photo ends and break at folds
- fix: LR-MASK-GEOMETRY: review fixes: kept masks stay put and turn with a synced orientation, off-photo clicks refused
- fix: LR-MASK-GEOMETRY: review fixes: old masks keep their region and frame, clicks and handles in mask coordinates
- fix: Merge PR #2421: fix(windows): add opt-in DirectComposition workaround for VRR flicker
- fix: Merge origin/main into fix/2674-stored-frame-regions
- fix: Merge origin/main into fix/2674-stored-frame-regions
- fix: Merge pull request #2600 from insideTheFlux/fix/2571-export-subfolder
- fix: Merge pull request #2659 from insideTheFlux/fix/2575-geocode-dataset-params
- fix: Merge pull request #2772 from insideTheFlux/fix/2682-render-debug-log
- fix: Merge pull request #2857 from insideTheFlux/fix/2674-stored-frame-regions
- fix: Merge pull request #3496 from insideTheFlux/fix/3468-find-similar-freeze
- fix: Merge pull request #3650 from insideTheFlux/fix/3381-title-bar
- fix: Merge pull request #3660 from eliets2/fix/issue-2249-nikon-z-400mm-f-4-5-z-tc-1-4x-lensfun-co
- fix: Merge pull request #3697 from storytold/fix/sec-lensdb-profile-copies
- fix: Merge pull request #3715 from Yeetjof/fix/survey-remove-x
- fix: Merge storytold/main into fix/2571-export-subfolder
- …and 280 more
Written by cca.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
storytold/lightcraft was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 7 November 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 8a0b91a95c30618b690374dd2db9d0684ebc9b23 — the exact code this score is about.
- Scored under rubric-2026.11.2 — the same rubric and the same method as every other entry in this index.
- Measured by Canine Code Analyzer (cca.canine.dev) using cca measure-2026.11.3+preprod-5f8314471808.