dotCooCoo
b5c36b53aa
Merge main into feat/keyword-shortcut-keys
...
Follows main's split of menus.rs into menus/ and of the keyword tests into
keywords/tests.rs: Set Keyword Shortcut moves to menus/ui_commands.rs and
menus/run.rs, its catalog test to keywords/tests.rs, and the docs name the
moved test files.
2026-10-28 14:29:26 -07:00
Dylan M. Taylor
6774d1419f
refactor(ui-egui): replace wildcard imports with explicit lists
2026-10-28 03:24:18 +00:00
Dylan M. Taylor
5b5ddc3904
fix(engine): import denoise model and gpu names explicitly
2026-10-28 03:24:18 +00:00
Dylan M. Taylor
c9d44f7804
style(engine): expand module imports explicitly
2026-10-28 03:24:18 +00:00
Dylan M. Taylor
4d8369b091
test(engine): factor complex regression scenarios
2026-10-28 03:24:18 +00:00
Dylan M. Taylor
47839a61db
refactor(bench): dispatch specialized render modes
2026-10-28 03:24:18 +00:00
Dylan M. Taylor
9e1483388f
refactor(import): separate Lightroom collection staging
2026-10-28 03:24:18 +00:00
Dylan M. Taylor
e8f52cc07e
refactor(print): define blit rectangles
2026-10-28 03:24:18 +00:00
Dylan M. Taylor
33252920e3
refactor(denoise): model installation requests
2026-10-28 03:24:18 +00:00
Dylan M. Taylor
694b237f0a
refactor(faces): model crop and plane shift inputs
2026-10-28 03:24:18 +00:00
Dylan M. Taylor
2f42ff8944
refactor(pipeline): group pixel finish parameters
2026-10-28 03:24:18 +00:00
aiongg
07bc2008d9
Merge pull request #3045 from dotCooCoo/fix/local-skips-windows-hidden-folders
...
Local: skip offscreen folder widgets and show browsed hidden paths
2026-10-27 13:47:10 -04:00
aiongg
94ea495bdb
Merge pull request #3020 from dotCooCoo/fix/windows-hard-link-write-target
...
Originals: on Windows a hard link to an original counts as that original
2026-10-27 13:46:50 -04:00
NetterSilver and Claude Opus 5.5
3ce8dbc55b
Drop copies and libm calls from 8-bit export encoding
...
- finish_8bit/finish_deep hand back the render itself when there is no
output sharpening and no watermark. Before, every export cloned the
image (~100 MB at 24 MP) and output_sharpen built a ~290 MB float copy
of it even for SharpenFor::None, all on one thread.
- Output sharpening's box blurs run row-parallel (par_rows); each pixel
is computed as before.
- The parallel JPEG encoder converts each band's rows to YCbCr inside the
band's task instead of first filling whole-image planes (~290 MB for
4:4:4 at 24 MP, written once and read back).
- fdct_quant rounds with plain arithmetic (round_i16) instead of
f32::round, a libm call per coefficient without SSE4.1; it equals
`x.round() as i16` for all 2^32 inputs.
Output is byte-identical (pinned by encoded_bytes_are_pinned and
sharpened_pixels_are_pinned, whose hashes come from main).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-27 15:43:41 +01:00
NetterSilver and Claude Opus 5.5
30d0a37051
Add a single-photo export benchmark
...
examples/export_bench imports the files given and runs export_photo
(decode, full-size render, encode) N times, forgetting the decoded
original between runs like a batch export does, and prints the median
and minimum wall time. OPT takes export options as app.export JSON,
PHASES=1 times render and encode separately, OUT=dir writes the files
for byte comparisons between builds.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-27 15:43:41 +01:00
dotCooCoo
d826e79fa2
Skip offscreen Local rows and share hidden-folder checks
...
Reuse cached folder listings through Arc and allow tests to inject Local places.
Show browsed folders below hidden ancestors as session roots. Apply the same
hidden-entry checks to folder walks, browsing, import scanning, and Local.
2026-10-26 22:36:11 -07:00
dotCooCoo
0c7640f7d3
Reject unavailable Windows file identities in strict comparisons
...
Return an error when either file index is zero. Keep the resolved-path fallback for lenient comparisons. Test both unknown-identity orderings and distinguish identity lookup failures from known-original refusals.
Merge main at 662df66f .
2026-10-26 20:28:34 -07:00
skylar taylor-barrick
662df66f1c
Preserve queued file drops across dialogs and restore Flatpak sources ( #2975 )
2026-10-27 03:50:41 +01:00
aiongg
8d8994ec87
refactor(lightcraft-engine): split cmd/library.rs into cmd/library/
2026-10-26 21:39:56 +00:00
aiongg
ff614cbe43
refactor(lightcraft-engine): split import.rs into import/
2026-10-26 21:39:56 +00:00
aiongg
39d6a8d668
refactor(lightcraft-engine): split rename.rs into rename/
2026-10-26 21:39:55 +00:00
aiongg
8942984c35
refactor(lightcraft-engine): split denoise.rs into denoise/
2026-10-26 21:39:55 +00:00
aiongg
21304db29b
refactor(lightcraft-engine): split media.rs into media/
2026-10-26 21:08:55 +00:00
aiongg
50509093b6
refactor(lightcraft-engine): split camera_preview.rs into camera_preview/
2026-10-26 21:08:55 +00:00
aiongg
e3c594cab8
refactor(lightcraft-engine): split export.rs into export/
2026-10-26 21:08:55 +00:00
aiongg
9b197d8215
refactor(lightcraft-engine): split files.rs into files/
2026-10-26 21:08:55 +00:00
aiongg
658f3c26d5
refactor(lightcraft-engine): move denoise gpu_tests to denoise/gpu_tests.rs
2026-10-26 21:05:53 +00:00
aiongg
7707047684
refactor(lightcraft-engine): move media thumbnail_hash_tests to media/thumbnail_hash_tests.rs
2026-10-26 21:05:53 +00:00
aiongg
d151df0149
style: cargo fmt the moved test modules
2026-10-26 18:30:36 +00:00
aiongg
73adafbae0
refactor(lightcraft-engine): move tests_slide_template.rs to slide_template/tests.rs
2026-10-26 18:28:42 +00:00
aiongg
9cc8a1c765
refactor(lightcraft-engine): move tests_*.rs to tests/
2026-10-26 18:24:54 +00:00
aiongg
c579f226ab
refactor(lightcraft-engine): move print/compose.rs tests to crates/engine/src/print/compose/tests.rs
2026-10-26 18:15:58 +00:00
aiongg
e6b0b386a7
refactor(lightcraft-engine): move print/layout.rs tests to crates/engine/src/print/layout/tests.rs
2026-10-26 18:15:57 +00:00
aiongg
41064fabb5
refactor(lightcraft-engine): move crs.rs tests to crates/engine/src/crs/tests.rs
2026-10-26 18:15:57 +00:00
aiongg
a3ec3eadef
refactor(lightcraft-engine): move rename.rs tests to crates/engine/src/rename/tests.rs
2026-10-26 18:15:57 +00:00
aiongg
89083b6c77
refactor(lightcraft-engine): move camera_preview.rs tests to crates/engine/src/camera_preview/tests.rs
2026-10-26 18:15:56 +00:00
aiongg
68abc4d4ce
refactor(lightcraft-engine): move slideshow.rs tests to crates/engine/src/slideshow/tests.rs
2026-10-26 18:15:55 +00:00
aiongg
c0fe58a144
refactor(lightcraft-engine): move demo.rs tests to crates/engine/src/demo/tests.rs
2026-10-26 18:15:55 +00:00
aiongg
102fa85a9c
refactor(lightcraft-engine): move files.rs tests to crates/engine/src/files/tests.rs
2026-10-26 18:15:55 +00:00
aiongg
a70d39eacd
refactor(lightcraft-engine): move slide_overlay.rs tests to crates/engine/src/slide_overlay/tests.rs
2026-10-26 18:15:54 +00:00
aiongg
34f15b567f
refactor(lightcraft-engine): move lightroom_sqlite.rs tests to crates/engine/src/lightroom_sqlite/tests.rs
2026-10-26 18:15:53 +00:00
aiongg
698ca5a884
refactor(lightcraft-engine): move lightroom_catalog.rs tests to crates/engine/src/lightroom_catalog/tests.rs
2026-10-26 18:15:53 +00:00
aiongg
619f346e74
refactor(lightcraft-engine): move apple_photos.rs tests to crates/engine/src/apple_photos/tests.rs
2026-10-26 18:15:52 +00:00
aiongg
6cf21f552a
refactor(lightcraft-engine): move crs_masks.rs tests to crates/engine/src/crs_masks/tests.rs
2026-10-26 18:15:52 +00:00
aiongg
47adb933db
refactor(lightcraft-engine): move smart.rs tests to crates/engine/src/smart/tests.rs
2026-10-26 18:15:52 +00:00
aiongg
50116167a6
refactor(lightcraft-engine): move export.rs tests to crates/engine/src/export/tests.rs
2026-10-26 18:15:51 +00:00
aiongg
858046cc4f
refactor(lightcraft-engine): move media.rs tests to crates/engine/src/media/tests.rs
2026-10-26 18:15:50 +00:00
aiongg
728f223ee5
refactor(lightcraft-engine): move crates/engine/src/segment/mod.rs to crates/engine/src/segment.rs
2026-10-26 18:15:08 +00:00
aiongg
15030abbb5
refactor(lightcraft-engine): move crates/engine/src/print/mod.rs to crates/engine/src/print.rs
2026-10-26 18:15:08 +00:00
aiongg
1ebee97353
refactor(lightcraft-engine): move crates/engine/src/cmd/mod.rs to crates/engine/src/cmd.rs
2026-10-26 18:15:07 +00:00