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
Brandon Thomas
d71e7d11c1
Merge PR #1429
...
# Conflicts:
# crates/ui-egui/src/panels/left.rs
2026-10-13 11:52:08 -04: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
ce3fad5a77
Merge PR #1567
...
# Conflicts:
# crates/engine/src/tests.rs
2026-10-13 11:52:01 -04:00
Brandon Thomas
f478b000de
Merge PR #1580
2026-10-13 11:51:51 -04:00
Brandon Thomas
cd59698798
Merge PR #1583
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:49:24 -04:00
Brandon Thomas
e067581ff3
Merge PR #1581
2026-10-13 11:49:23 -04:00
Brandon Thomas
3f9b3b20cb
Merge PR #1579
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:49:22 -04:00
Brandon Thomas
3b848a2093
Merge PR #1578
2026-10-13 11:49:21 -04:00
Brandon Thomas
13c32ef1bb
Merge PR #1577
2026-10-13 11:49:21 -04:00
Brandon Thomas
05dc7374d8
Merge PR #1576
2026-10-13 11:49:20 -04:00
Brandon Thomas
9f8a17277e
Merge PR #1574
2026-10-13 11:49:20 -04:00
Brandon Thomas
0a2b2afb2e
Merge PR #1573
2026-10-13 11:49:19 -04:00
Brandon Thomas
2ddc147f60
Merge PR #1572
2026-10-13 11:49:18 -04:00
Brandon Thomas
7942df9dd4
Merge PR #1571
2026-10-13 11:49:18 -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
f62be0925c
Merge PR #1569
2026-10-13 11:49:16 -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
d823d155b2
Merge PR #1421
2026-10-13 11:48:37 -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
ac1eaf1d68
Merge PR #1452
2026-10-13 11:48:34 -04:00
Brandon Thomas
03b6c8a95d
Merge PR #1423
2026-10-13 11:48:34 -04:00
Brandon Thomas
cd5f16d5ac
Merge PR #1445
2026-10-13 11:48:33 -04:00
Brandon Thomas
840733f760
Merge PR #1434
2026-10-13 11:48:32 -04:00
Brandon Thomas
7505017ea3
Merge PR #1432
2026-10-13 11:48:32 -04:00
Brandon Thomas
481272c1a3
Merge PR #1456
2026-10-13 11:48:31 -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
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 <[email protected] >
2026-10-13 10:52:56 -04:00
MarekSpodBiedry
3946688f49
Reject RAW TIFFs with missing or undecodable image chunks ( #1513 )
2026-10-13 16:38:39 +02:00
MarekSpodBiedry
d77d1a4650
MCP: do not resend a request whose reply was lost, report an unknown outcome ( #1526 )
2026-10-13 16:37:38 +02:00
MarekSpodBiedry
82da463f56
Refuse Open/New Library while an import is running ( #1509 )
2026-10-13 16:37:30 +02:00
MarekSpodBiedry
935fabeb18
Preview disk cache: ignore symlinked shard directories ( #1504 )
2026-10-13 16:36:39 +02:00
MarekSpodBiedry
f865aa28c3
Reject a LeakyRelu alpha that is not a single float instead of reading it as 0 ( #1530 )
2026-10-13 16:36:37 +02:00