Brandon Thomas
0bef63b6eb
Merge PR #974
...
# Conflicts:
# crates/engine/src/cmd/mod.rs
# crates/ui-egui/locales/de-formats.json
# crates/ui-egui/locales/de.json
# crates/ui-egui/locales/es-formats.json
# crates/ui-egui/locales/es.json
# crates/ui-egui/locales/fr-formats.json
# crates/ui-egui/locales/fr.json
# crates/ui-egui/locales/ja-formats.json
# crates/ui-egui/locales/ja.json
# crates/ui-egui/locales/pt-br-formats.json
# crates/ui-egui/locales/pt-br.json
# crates/ui-egui/locales/ru-formats.json
# crates/ui-egui/locales/ru.json
# crates/ui-egui/locales/uk-formats.json
# crates/ui-egui/locales/uk.json
# crates/ui-egui/locales/zh-hans-formats.json
# crates/ui-egui/locales/zh-hans.json
# crates/ui-egui/locales/zh-hant-formats.json
# crates/ui-egui/locales/zh-hant.json
# docs/mcp.md
# docs/parity-checklist.md
2026-10-14 21:55:01 -04:00
Brandon Thomas
8735468e81
Merge PR #966
...
# Conflicts:
# crates/engine/src/tests.rs
2026-10-14 21:54:57 -04:00
Brandon Thomas
e78e165594
Merge PR #929
2026-10-14 21:54:54 -04:00
Brandon Thomas
d837ab1455
Merge PR #912
...
# Conflicts:
# crates/ui-egui/locales/de-formats.json
# crates/ui-egui/locales/es-formats.json
# crates/ui-egui/locales/fr-formats.json
# crates/ui-egui/locales/ja-formats.json
# crates/ui-egui/locales/pt-br-formats.json
# crates/ui-egui/locales/ru-formats.json
# crates/ui-egui/locales/uk-formats.json
# crates/ui-egui/locales/zh-hans-formats.json
# crates/ui-egui/locales/zh-hant-formats.json
2026-10-14 21:54:53 -04:00
Brandon Thomas
6ce8d5a571
Merge PR #904
...
# Conflicts:
# crates/ui-egui/locales/ru.json
2026-10-14 21:54:51 -04:00
Brandon Thomas
618b4c723a
Merge PR #821
...
# Conflicts:
# crates/ui-egui/locales/de.json
# crates/ui-egui/locales/es.json
# crates/ui-egui/locales/fr.json
# crates/ui-egui/locales/ja.json
# crates/ui-egui/locales/pt-br.json
# crates/ui-egui/locales/ru.json
# crates/ui-egui/locales/uk.json
# crates/ui-egui/locales/zh-hans.json
# crates/ui-egui/locales/zh-hant.json
2026-10-14 21:54:47 -04:00
skylar taylor-barrick
af4c5e102c
fix(import): report and optimize Lightroom catalogs ( #1406 )
...
Task: LRC-LIB-CATALOG-IMPORT
Count offline records, Local promotions and virtual copies correctly. Keep destination, warnings and errors in a persistent import result, with Show in Library clearing filters. Preserve library-switch ownership, reimport identities, existing edits and one-step undo.
Avoid repeated missing-original probes and unnecessary staged-photo, catalog-operation and develop-patch copies. Preserve upstream phased progress and typed cancellation. Address Astra review findings with regression coverage.
Validated the combined main tree with all eight cargo xtask ci gates (3,462 passing test executions; zero failures), fresh 30k import/persistence/metadata checks, duplicate-free same-session and reopened reimports, and visually inspected headless screenshots. Historical performance comparisons apply to the f730805d production changes before main integration; native Windows import/GUI acceptance remains unqualified.
Generated with Codex.
2026-10-15 03:44:15 +02:00
Jason Baldwin
3aa6b3ba31
Merge slideshow-templates into slideshow-export (origin/main: batch 35)
...
# Conflicts:
# docs/parity-checklist.md
2026-10-14 14:42:03 +02:00
Jason Baldwin
5f3bdbcb73
Merge slideshow-titles into slideshow-templates (origin/main: batch 35)
...
# Conflicts:
# docs/parity-checklist.md
2026-10-14 14:39:47 +02:00
Jason Baldwin
7919c1471d
Merge slideshow-overlays into slideshow-titles (origin/main: batch 35)
...
# Conflicts:
# docs/parity-checklist.md
2026-10-14 14:37:20 +02:00
Jason Baldwin
f776d98167
Merge slideshow-composer into slideshow-overlays (origin/main: batch 35)
...
# Conflicts:
# docs/parity-checklist.md
2026-10-14 14:35:02 +02:00
Jason Baldwin
b60c74a6d7
Merge slideshow-playback into slideshow-composer (origin/main: batch 35)
...
# Conflicts:
# crates/engine/src/import.rs
# crates/engine/src/media.rs
# docs/parity-checklist.md
2026-10-14 14:31:53 +02:00
Jason Baldwin
3aaadd1456
Merge origin/main into slideshow-playback (batch 35: tracker summary refreshed, slideshow rows kept)
2026-10-14 14:29:54 +02:00
Val Enfys and Claude Opus 5.5
f29a340fa6
LR-IMP-FORMATS: recheck stale preview-only raws when a library opens ( #662 )
...
A raw imported while its format couldn't be decoded kept preview_only until a
manual Reload, so new decoders in a release never reached existing photos.
When a library opens in another app version, its preview-only photos whose
stamp differs are probed again in the background and get exactly what Reload
from Disk gives them (shared reload_ops): a file that decodes now loses the
flag, one that still doesn't gets the current reason and a fresh stamp. The
result is one journaled system batch, not an undo step; develop settings and
history are kept. Unreadable files are left for next time, photos changed
while probing are skipped, and a result for a library closed meanwhile is
dropped. A toast says how many raws now develop from their raw data.
- engine: cmd/recheck.rs (stale / probe / apply) and
library.recheckPreviewOnly {all?} -> {checked, updated, cleared}; refused
without file access, where every probe would clear every flag
- desktop: recheck::tick once per library generation, through tasks::spawn
("Checking raw files" in the activity stack)
- the preview-only notice (Edit, Info) gains a Reload from Disk button
- strings translated in all nine catalogs; docs/mcp.md and the parity row
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 08:19:43 +01:00
Val Enfys and Claude Opus 5.5
5773533e23
LR-IMP-FORMATS: preview-only photos record the app version that decided it ( #662 )
...
Catalog format v9 adds Photo.preview_checked and Op::SetContent.preview_checked:
the app version (CARGO_PKG_VERSION) whose decoder set preview_only, empty when
it isn't set. Import and content_op (Reload, Relink) stamp it; undo swaps it
back. Catalogs from before v9 read an empty stamp, so their preview-only photos
count as stale (Photo::preview_only_stale) and will be rechecked once.
The version guard test now also accepts a format version that only adds fields.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 08:19:17 +01:00
Brandon Thomas and Claude Opus 5.5
180d400cdd
Batch 35: one header line per tracker doc, one 2026-10-13 section in What's New, parity summary refreshed, rustfmt after merges
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 01:59:55 -04:00
Brandon Thomas
48b9a5e21f
Merge PR #1132
...
# Conflicts:
# crates/engine/src/lightroom_job.rs
2026-10-14 01:40:32 -04:00
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
aa0f9a5666
Merge PR #1536
...
# Conflicts:
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-14 01:39:49 -04:00
Brandon Thomas
e783f705dc
Merge PR #1483
2026-10-14 01:39:00 -04:00
Brandon Thomas
1dd41b1872
Merge PR #1550
...
# Conflicts:
# docs/whats-new.md
2026-10-14 01:38:56 -04:00
Brandon Thomas
4d0e11651a
Merge PR #1546
...
# Conflicts:
# crates/engine/src/tests.rs
2026-10-14 01:38:55 -04:00
Brandon Thomas
deb7831083
Merge PR #1542
...
# Conflicts:
# docs/whats-new.md
2026-10-14 01:38:53 -04:00
Brandon Thomas
1c65549d10
Merge PR #1533
...
# Conflicts:
# crates/engine/src/tests.rs
2026-10-14 01:38:48 -04:00
Brandon Thomas and Claude Opus 5.5
9b7d2e6ae2
Batch 35: #1443 's face-tile test passes the preview edge #1410 added
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 01:34:10 -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
ce3fad5a77
Merge PR #1567
...
# Conflicts:
# crates/engine/src/tests.rs
2026-10-13 11:52:01 -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
2294329b0c
Merge PR #1565
...
# Conflicts:
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-13 11:49:15 -04:00
Brandon Thomas
5ece09aa6c
Merge PR #1562
2026-10-13 11:49:13 -04:00
Brandon Thomas
6b00656df8
Merge PR #1559
...
# 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
03b6c8a95d
Merge PR #1423
2026-10-13 11:48:34 -04: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
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
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
57487875b5
Never crash: Cap the spot radius so huge spot sizes render ( #1519 )
...
Sidecar spot sizes aren't limited to the slider range. Count at most two long edges.
2026-10-13 10:45:50 -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
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
Michael Anderson
e9d36451e6
Never crash: Fix overflow in mask.move with a huge delta
...
Saturate index + delta so any delta just moves the mask to the top or bottom.
2026-10-13 10:44:46 -05:00
Jason Baldwin
bc9d8a21b5
Merge slideshow-templates into slideshow-export (origin/main: batches 32–33)
2026-10-13 17:03:26 +02:00
Jason Baldwin
d747c9e0f6
Merge slideshow-titles into slideshow-templates (origin/main: batches 32–33)
2026-10-13 17:01:24 +02:00
Jason Baldwin
f30e4af838
Merge slideshow-overlays into slideshow-titles (origin/main: batches 32–33)
2026-10-13 16:59:34 +02:00
Jason Baldwin
ba9262a4a0
Merge slideshow-composer into slideshow-overlays (origin/main: batches 32–33)
2026-10-13 16:57:38 +02:00
Jason Baldwin
a021ad2c56
Merge slideshow-playback into slideshow-composer (origin/main: batches 32–33)
2026-10-13 16:55:11 +02:00