Commit Graph
1417 Commits
Author SHA1 Message Date
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 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
NetterSilverandClaude 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
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
dotCooCoo 545ed92d6a Originals: refuse a screenshot target whose file identity cannot be read
On Windows the identity check opens both files to read the volume serial
number and file index. When that open failed (another process holds the
file without sharing it, or the file cannot be read), the hard link was
treated as an ordinary file. The screenshot target check now refuses the
target in that case. A missing original is still not a match, and other
callers of same_file keep the current comparison.
2026-10-26 07:16:41 -07:00
Brain Wang c7961df10b Camera profile: Sony ILCE-7RM5 (α7R V) (#3022)
* Camera profile: Sony ILCE-7RM5 (α7R V)

* Camera profile: register the bundled ILCE-7RM5 profile

* Camera profile: attribution for the ILCE-7RM5 profile

* Camera profile: list ILCE-7RM5 among the built-in profiles in the README

* Camera profile: list ILCE-7RM5 in the Simplified Chinese README

* Camera profile: list ILCE-7RM5 in the Traditional Chinese README

* Camera profile: ILCE-7RM5 calibration set used the Standard creative style only
2026-10-25 22:04:19 -04:00
skylartaylor e7144adc1f M0.37: reconcile current LightCraft main and qualify the migration 2026-10-25 07:47:22 +01:00
aiongg 122859d269 Merge PR #2846: KEYC-METADATA: Alt+0 / Alt+Shift+0 go to the next / previous keyword set 2026-10-25 02:24:03 +00:00
aiongg eb9ef0a40e Merge PR #2824: KEYC-METADATA: Cmd+Alt+Shift+C / V copy and paste metadata 2026-10-25 02:23:21 +00:00