Commit Graph
1971 Commits
Author SHA1 Message Date
aiongg b38bb32185 Merge PR #3386: Never crash: strip byte counts near u64::MAX don't overflow their sum in ORF, SRW, ARW and PEF
docs/whats-new.md: both entries under 2026-10-30
2026-10-31 02:10:25 +00:00
aiongg 1d10bc70e1 Merge PR #3321: LR-IMP-FORMATS: decode compressed RAF 13–17 % faster with a buffered bit reader 2026-10-31 02:10:18 +00:00
aiongg acf0f6b938 Merge PR #2698: LR-IMP-FORMATS: AHD blends its candidates where noise alone would pick one, no maze in noisy raws (#2094)
docs/whats-new.md: both entries kept
2026-10-31 02:10:17 +00:00
aiongg b54f299e55 Merge PR #3398: Never crash: a photo renders at most 64 red eye corrections (#2556)
docs/whats-new.md: both entries under 2026-10-30
2026-10-31 02:10:08 +00:00
aiongg f6b9c3ee8f Merge PR #3331: LR-VIEW-HISTOGRAM: the histogram's clipping buttons read in every theme
docs/parity-checklist.md: header from main with this PR's date and text; Histogram row gets this PR's clause; revision rows both kept
docs/whats-new.md: both entries, newest first
2026-10-31 02:09:58 +00:00
aiongg d68af705a0 Merge PR #2981: Issue #2819: the histogram stays SDR when HDR is switched off
crates/ui-egui/src/panels/edit/histogram.rs: live_hdr_histogram added above main's histogram() (now in edit/histogram.rs, pub(crate))
docs/parity-checklist.md: main's Histogram row with this PR's HDR-off clause
2026-10-31 02:09:32 +00:00
aiongg d83f0ee617 Merge PR #2741: LR-VIEW-HISTOGRAM: the histogram stays in view while the Edit panel's sliders scroll (#2679)
docs/parity-checklist.md: header line from main (newer date)
2026-10-31 02:08:35 +00:00
aiongg 1b32dab094 Merge PR #999: Alt/Option-drag previews for clipping and sharpening (#937)
Conflicts resolved:
- crates/engine/src/media.rs: main split it; the render and display-profile hunks are ported into media/render.rs
- crates/ui-egui/src/lib.rs, panels/detail.rs: main split them; alt_held is set in app/frame.rs, view_overlay and overlay_supports_window ported (panels/detail/window.rs)
- crates/ui-egui/src/tests_alt_preview.rs moved to tests/alt_preview.rs
- crates/pipeline/src/finish.rs, local.rs: main's code kept, sharpen_mask_weight and texture_sigma applied to it
- docs: both sides kept; summary counts from main (regenerated later)
2026-10-31 02:08:19 +00:00
x-labb abdc26c854 Issue #2819: the histogram stays SDR when HDR is switched off
The small HDR render of the last HDR drag is kept in Renderer. With HDR
switched off, dragging a slider still read it as the live histogram, so the
panel flipped back to the HDR layout. Read it only while an HDR edit is being
dragged. The LR-VIEW-HISTOGRAM row says so.
2026-10-30 21:03:42 +01:00
Brandon Thomas cfdf63c6e4 Merge PR #2917
# Conflicts:
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-30 15:24:59 -04:00
Brandon Thomas 13711ace2b Merge PR #2155 2026-10-30 15:24:41 -04:00
Brandon Thomas 7e8bf5cd9e Merge PR #2831 2026-10-30 15:24:41 -04:00
Brandon Thomas ddbc218ad1 Merge PR #3213
# Conflicts:
#	docs/parity-checklist.md
2026-10-30 15:24:40 -04:00
Bruno-Alumn be6e462db4 Cap red eye corrections at 64 per photo (#2556)
Every output pixel goes through every eye, and nothing limited the list:
a sidecar, preset or agent with 100,000 eyes made one preview take hours.
The render resolves the first MAX_RED_EYES and redeye.add refuses more,
as Point Color does with MAX_POINT_COLORS.
2026-10-30 16:17:56 +01:00
Bruno-Alumn 1c906ea3db Never crash: strip byte counts near u64::MAX don't overflow their sum in ORF, SRW, ARW and PEF
The TIFF reader accepts LONG8 (type 16) StripByteCounts in classic
TIFF, so a file can declare strips of u64::MAX and 1 bytes. The ORF,
SRW, ARW and PEF decoders added the strip lengths with
Iterator::sum::<u64>(), which panics on overflow in debug builds. They
now add them with a saturating fold, as raw/src/lib.rs already does,
so such a file is refused or read as far as its data go.

The tests rewrite a synthetic file of each decoder into two strips
with LONG8 counts [u64::MAX, 1] (vendor::tests::huge_strip_counts);
PEF is checked for the Huffman-coded and the uncompressed path.
2026-10-30 13:37:16 +01:00
Nathaniel Ledford bd00b6a818 LR-VIEW-HISTOGRAM: the clipping buttons' tile and chevron come from the theme and stand 3:1 in every theme 2026-10-29 13:40:14 -04:00
Christian BramandClaude Opus 5.5 42e54b5bb0 LR-IMP-FORMATS: decode compressed RAF 13-17 % faster with a buffered bit reader
The Fujifilm entropy reader read each unary prefix one bit at a time and refilled
its accumulator a byte at a time. It now keeps up to 64 bits buffered and counts a
prefix's zeros with leading_zeros, failing exactly where reading bit by bit would
(escape limit, end of stream). A property test checks it against reading bit by bit.

Sensor arrays are unchanged bit for bit: the 17 reference arrays of
corpus_fujifilm_compressed_samples, plus decode checksums of 20 X-Trans CMOS 4 files.
Decode on an Apple M2: X-S10 lossless 265 -> 226 ms, X-H2 448 -> 378 ms,
GFX 100 762 -> 644 ms (docs/raf-compression.md).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 16:36:40 +01:00
radialmonsterandClaude Opus 5.5 6188590675 Docs: link gap 8 and roadmap priority 7 to lens profile issue #329
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014ti8KemZbjE2ZgHgV1q1BM
2026-10-28 13:58:49 -04:00
Nathaniel Ledford e60b7d1787 MENU-EDIT-SELECTNONE: Edit lists Select Only Active Photo and Paste Settings from Previous with their kin, and the native Edit menu keeps single separators 2026-10-27 22:50:05 -04:00
Nathaniel Ledford 4f6f4c4ee8 MENU-FILE-CLOSE: the page says saving at quit can fail 2026-10-27 19:53:43 -04:00
Nathaniel Ledford e472ffd6a4 MENU-FILE-CLOSE: document that closing the window quits the app 2026-10-27 18:29:56 -04:00
Jeremy 5dea67e348 docs(installer): say that an upgrade reuses the recorded folder even if it was deleted
The restore actions use the recorded folder without checking that it still
exists, so an upgrade creates it again rather than using the default folder.
2026-10-27 21:13:30 +00:00
Bruno-Alumn 9f7d4bcc14 Merge remote-tracking branch 'upstream/main' into HEAD
# Conflicts:
#	crates/ui-egui/src/panels/edit.rs
#	docs/parity-checklist.md
2026-10-27 16:15:50 +01:00
Jeremy 51ecbfece8 docs(installer): note that the 32-bit all-users folder is Program Files (x86); tidy wording 2026-10-27 12:25:19 +00:00
Jeremy 3d40cf08e7 docs(installer): describe the per-user default install location and scope 2026-10-27 12:09:03 +00:00
strebdom 64a16f378c Merge upstream main into fix/ahd-soft-choice; RENDER_CACHE_VERSION 71 (main took 70) 2026-10-27 07:37:57 +01:00
aiongg 69048937d0 docs: update source paths after the layout moves 2026-10-26 21:39:56 +00:00
softwaregames1andClaude Opus 5.5 22b963f262 Merge storytold/lightcraft main into LR-FILT-SEARCH-META
Conflict only in the docs/parity-checklist.md "Last updated" line: upstream's
line kept, with the LR-FILT-SEARCH-META entry added in front.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SqKgSkHi5MfTQFrZvDKBjm
Co-authored-by: softwaregames1 <167585946+softwaregames1@users.noreply.github.com>
2026-10-26 12:25:52 +00:00
aiongg 21a53cf61f Merge title-bar-movable (lightcraft#2930) into docking-adoption; every craft-libs crate at craft-libs main 1e6f127 2026-10-26 02:20:20 +00:00
aiongg 1952d4fd3c Merge upstream main into docking-adoption 2026-10-26 02:18:38 +00:00
aiongg 003779ce51 Merge upstream main into title-bar-movable; craft-window at craft-libs main 1e6f127 2026-10-26 02:18:22 +00:00
Dylan M. Taylor 8020cd081c showcase: check the file is readable without an empty with-block (#3001) 2026-10-25 21:13:45 -04:00
Michael Anderson ab3f6af82a Merge remote-tracking branch 'origin/main' into fix/2119-erf-mef-strip-length
# Conflicts:
#	crates/raw/src/vendor/mef.rs
2026-10-25 19:20:01 -05:00
aiongg 672baaea46 Merge lightcraft#2913 (egui 0.37) into docking-adoption; craft-ui and craft-docpath at craft-libs main a091680 2026-10-25 17:36:59 +00:00
aiongg c01d4c7074 Merge lightcraft#2913 (egui 0.37) into title-bar-movable; craft-window at craft-libs main a091680 2026-10-25 17:19:47 +00:00
aiongg d4cfd2e6d5 LR-BEHAV-TITLEBAR: the checklist row follows craft-window's title_bar 2026-10-25 17:07:16 +00:00
skylar taylor-barrick c627ce7210 egui-037: preserve modal input ownership and packaged font notices 2026-10-25 13:14:34 +01:00
Claude 8fe7198dbd LR-FILT-SEARCH-META: >= and <= in fielded search tokens
`rating:>=3`, `iso:<=400`, `f:>=2.8` read the `=` as part of the number, the
parse failed, and the token silently matched no photo. Parse the two-character
operators first and compare inclusively; `>`, `<`, `=` and bare numbers are
unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SqKgSkHi5MfTQFrZvDKBjm
2026-10-25 08:47:10 +00:00
skylartaylor e7144adc1f M0.37: reconcile current LightCraft main and qualify the migration 2026-10-25 07:47:22 +01:00
aiongg 7291abdc14 Merge upstream main into docking-adoption 2026-10-25 05:55:03 +00:00
aiongg 31ec62cd03 Info panel Target Photo edits, Add Keywords cursor request and Fixed keys follow-ups (#2889)
* LR-PREF-SHORTCUTS: the shortcuts panel's Fixed keys ignore keys saved for unknown commands

* KEYC-METADATA: an Add Keywords request the Keywords panel can't take in time expires

* LR-META-INFO: Target Photo saves an Info edit to the photo it shows
2026-10-25 00:58:10 -04:00
aiongg c3feda15c0 LR-META-INFO: the Info panel shows Selected Photos by default; gaps.md lists its change notes once 2026-10-25 03:36:14 +00:00
aiongg e339afc263 Merge PR #2810: LR-META-INFO: the Info panel can show metadata for the selected photos 2026-10-25 02:25:16 +00:00
aiongg 6e5e958639 Merge PR #2792: LRC-DEV-VIEWOPTIONS: View Options can turn off the loupe's "Rendering…" message 2026-10-25 02:24:50 +00:00
aiongg 17a3b80702 Merge PR #2790: LRC-DEV-VIEWOPTIONS: the info overlay can show briefly when the photo changes 2026-10-25 02:24:29 +00:00
aiongg 77196373a9 Merge PR #2870: KEYC-METADATA: Cmd+K / Ctrl+K puts the cursor in the Add keyword box 2026-10-25 02:24:29 +00: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 387ad02b79 Merge PR #2832: LR-PREF-SHORTCUTS: a declared shortcut yields to a key the saved keymap gives another command 2026-10-25 02:23:22 +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
aiongg 5c46163e66 Merge PR #2778: LRC-PRINT-TEMPLATES: print templates export to a file and import from one 2026-10-25 02:23:20 +00:00