Brandon Thomas
418f6255be
Merge PR #1543
...
# Conflicts:
# crates/engine/src/export.rs
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-14 01:40:03 -04:00
Brandon Thomas
9085eb4b23
Merge PR #1653
...
# Conflicts:
# docs/parity-checklist.md
2026-10-14 01:39:50 -04:00
Brandon Thomas
694ce5b42b
Merge PR #1537
...
# Conflicts:
# docs/gaps.md
2026-10-14 01:39:50 -04:00
Brandon Thomas
aa0f9a5666
Merge PR #1536
...
# Conflicts:
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-14 01:39:49 -04:00
Brandon Thomas
cc7179c560
Merge PR #1667
...
# Conflicts:
# docs/whats-new.md
2026-10-14 01:39:03 -04:00
Brandon Thomas
4fe0466942
Merge PR #1666
...
# Conflicts:
# docs/whats-new.md
2026-10-14 01:39:02 -04:00
Brandon Thomas
93bd81a480
Merge PR #1557
...
# Conflicts:
# docs/whats-new.md
2026-10-14 01:38:57 -04:00
Brandon Thomas
1dd41b1872
Merge PR #1550
...
# Conflicts:
# docs/whats-new.md
2026-10-14 01:38:56 -04:00
Brandon Thomas
deb7831083
Merge PR #1542
...
# Conflicts:
# docs/whats-new.md
2026-10-14 01:38:53 -04:00
Brandon Thomas
992e67188b
Merge PR #1539
...
# Conflicts:
# docs/whats-new.md
2026-10-14 01:38:51 -04:00
Brandon Thomas
07f73c44da
Merge PR #1443
...
# Conflicts:
# crates/engine/src/files.rs
# docs/raw-preview-reads.md
# docs/whats-new.md
2026-10-14 01:29:30 -04:00
Brandon Thomas
b4d5b47617
Merge PR #1453 (rebased onto main)
2026-10-14 01:27:32 -04:00
skybluu
bcfda31678
Merge current main into DNG identity fix
2026-10-13 21:34:33 -05:00
skybluu
83a89ff271
Merge current main into source build guidance
2026-10-13 21:31:07 -05:00
skybluu
f12cf65ab7
LR-BUILD: document command-local low-memory release overrides ( #1196 )
2026-10-13 21:19:28 -05:00
skybluu
ce607d5a49
LR-LIB-CONVERT: avoid duplicated DNG camera make ( #840 )
2026-10-13 21:13:51 -05:00
eliets2
3ad5eadab2
LR-REM-HEAL: checkpoint zero-feather spot edge correction
...
Treat a zero-width feather transition as a hard edge so exact-radius pixels remain unchanged, including at zero opacity. Add actual image regressions for all spot modes, image corners and two clone output sizes.
Validation: both new regressions failed on the original implementation and pass here. Formatting, workspace Clippy, HEIF and a generated-photo app smoke test pass. The unfiltered workspace gate remains blocked by the existing all-masks overlay test tracked by #1599 ; later parity, layers, assets and WASM stages are pending. This is a source checkpoint, not a green release candidate.
Contributor: @eliets2
2026-10-14 00:51:56 +03:00
Brandon Thomas
93f8ee7c0d
Merge PR #1427
...
# Conflicts:
# crates/ui-egui/src/lib.rs
# docs/parity-checklist.md
2026-10-13 11:52:07 -04:00
Brandon Thomas
cd59698798
Merge PR #1583
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:49:24 -04:00
Brandon Thomas
3f9b3b20cb
Merge PR #1579
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:49:22 -04:00
Brandon Thomas
9f8a17277e
Merge PR #1574
2026-10-13 11:49:20 -04:00
Brandon Thomas
642662d90f
Merge PR #1570
...
# Conflicts:
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-13 11:49:17 -04:00
Brandon Thomas
2294329b0c
Merge PR #1565
...
# Conflicts:
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-13 11:49:15 -04:00
Brandon Thomas
7627b2b2b8
Merge PR #1563
...
# Conflicts:
# docs/parity-checklist.md
2026-10-13 11:49:14 -04:00
Brandon Thomas
5ece09aa6c
Merge PR #1562
2026-10-13 11:49:13 -04:00
Brandon Thomas
2fd0530beb
Merge PR #1561
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:49:13 -04:00
Brandon Thomas
8bcbcd918b
Merge PR #1560
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:49:12 -04:00
Brandon Thomas
6b00656df8
Merge PR #1559
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:49:11 -04:00
Brandon Thomas
2341132b35
Merge PR #1558
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:49:11 -04:00
Brandon Thomas
c6b2686ba0
Merge PR #1410
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:49:05 -04:00
Brandon Thomas
02bdad38d2
Merge PR #1439
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:48:58 -04:00
Brandon Thomas
6d124d701b
Merge PR #1451
2026-10-13 11:48:38 -04:00
Brandon Thomas
f0493fa11b
Merge PR #1419
2026-10-13 11:48:36 -04:00
Brandon Thomas
836bc449f0
Merge PR #1454
2026-10-13 11:48:35 -04:00
Brandon Thomas
03b6c8a95d
Merge PR #1423
2026-10-13 11:48:34 -04:00
Michael Anderson
853a92e2de
LR-EDIT-OPTICS-PROFILE: Apply Nikon's in-file distortion correction for the Z 6II and Z f
...
Read the polynomial, zoom and optical center offset from NikonNEFInfo.
2026-10-13 10:47:57 -05:00
Michael Anderson
271bc41842
Never crash: Repair damaged catalog snapshots on open
...
Fix ids, stacks, album folders and counters that don't agree, and stop album trees at 64 deep.
2026-10-13 10:46:47 -05:00
Michael Anderson
4a07254e06
Never crash: Read the edge pixel for bilinear samples outside the picture
...
Infinite coordinates from a zero-size crop overflowed the sampler.
2026-10-13 10:46:42 -05:00
Michael Anderson
f753778f45
Never crash: Fix blur overflow and hangs on sliver crops
...
Cap the sigma at twice the picture's long side and square the box width in i64.
2026-10-13 10:46:37 -05:00
Michael Anderson
4c088c3284
Never crash: Give the loupe a finite aspect for a zero-size crop
...
Count each side as at least one pixel.
2026-10-13 10:46:33 -05:00
Michael Anderson
b43b7169aa
Never crash: Limit how much a preset zip can unpack
...
Cap entries at 256 MB and the archive at 1 GB, and check the offsets.
2026-10-13 10:46:28 -05:00
Michael Anderson
307843b2ad
Never crash: Fix defringe radius overflow for amounts past the sliders
...
Treat the amount as the slider's end and keep the radius within the picture.
2026-10-13 10:46:23 -05:00
Michael Anderson
e1860067a6
Never crash: Render demo scenes at most at their own size
...
A damaged width asked for a buffer size that overflowed.
2026-10-13 10:46:18 -05:00
Michael Anderson
911d7df321
Never crash: Fix panic dragging a tone curve point between close neighbours
...
Keep the point midway when there's no room, and keep curve points sorted.
2026-10-13 10:46:13 -05:00
Michael Anderson
27d1e9b04d
Never crash: Cap enlarged exports at 512 MP and check memory first
...
A huge enlargement failed to allocate and took the app down.
2026-10-13 10:45:39 -05:00
Michael Anderson
337f02b4dc
Never crash: Fix export size panic for very long strips
...
Apply the 1 px and 65535 px bounds in turn instead of clamping between bounds that can cross.
2026-10-13 10:45:34 -05:00
Michael Anderson
cef6f2d4b8
Never crash: Fix demosaic panic on a NaN black level
...
Read non-finite DNG black levels as 0 and map non-finite normalized samples to black.
2026-10-13 10:45:18 -05:00
Michael Anderson
d5cba8b3dc
xtask parity: Fail when docs/gaps.md lists a gap more than once
...
Also remove the duplicate rows for gaps 10, 22 and 23.
2026-10-13 10:45:11 -05:00
Michael Anderson
65dbba9ecd
LRC-LIB-CATALOG-IMPORT: Open catalogs whose tables are all still in the WAL
...
Accept schema format 0 in the main header and check page 1 again after the WAL overlay.
2026-10-13 10:45:06 -05:00
Nathaniel Ledford and Claude Opus 5.5
2783e5de9b
PERF-IMPORT: a scan, an import and a sidecar write no longer make a table of the whole library first
...
Setting up Synchronize Folder, an import review or an import made a table
of every photo in the library on the session's thread before the first
file was looked at, and naming one photo's sidecar worked out who owns
every shared sidecar name in the library. In a library of 3.5 million
photos (`scan_setup_bench`, release, a folder of 500): 5.8 s before a
Synchronize scan, 2.6 s before an import review, 1.7 s before an import,
2.4 s for each sidecar written.
- A scan keeps the library as it is (photos are shared, not copied) and
looks up the files it finds (`library_files`) and the contents it probes
(`library_hashes`) on its own thread.
- An import looks the library up with its first files
(`ImportJob::look_up_library`), from the library and the options as they
were when it was set up.
- The owners of shared sidecar names are worked out for the photos asked
about (`StemOwners::among`): all five callers name only those photos.
- Synchronize Folder names its photos' sidecars in the scan, after it has
seen that the folder is there.
Now 0.9 s, 0.05 s, 0.05 s and under 1 s. What is found, and how sidecars
are named, is unchanged: the tests hold the owners against the table of
the whole library as it was made before, and the key made without
allocating against the key, for every string of up to six of the
characters that decide it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-13 10:52:56 -04:00