Brandon Thomas
87f0abbdb0
Merge PR #1547
...
# Conflicts:
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-14 22:33:11 -04:00
Brandon Thomas
f8d1585c6f
Merge PR #1510
...
# 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
# crates/ui-egui/src/lib.rs
# docs/parity-checklist.md
2026-10-14 22:33:10 -04:00
Brandon Thomas
9562532695
Merge PR #1662
2026-10-14 22:32:55 -04:00
Brandon Thomas
31f1f559dd
Merge PR #1660
2026-10-14 22:32:54 -04:00
Brandon Thomas
43f9d51207
Merge PR #1656
...
# Conflicts:
# crates/engine/src/library.rs
# crates/engine/src/tests_library.rs
# crates/ui-egui/src/menubar.rs
# docs/parity-checklist.md
2026-10-14 22:32:53 -04:00
Brandon Thomas
65f51751a1
Merge PR #1637
2026-10-14 22:32:52 -04:00
Brandon Thomas
3698f76c40
Merge PR #1601
...
# Conflicts:
# crates/ui-egui/src/headless.rs
# crates/ui-egui/src/lib.rs
# crates/ui-egui/src/state.rs
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-14 22:32:47 -04:00
Brandon Thomas
bde5385a6f
Merge PR #1590
...
# Conflicts:
# crates/meta/src/exif.rs
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-14 22:32:44 -04:00
Brandon Thomas
18db8588b9
Merge PR #1490
...
# Conflicts:
# docs/parity-checklist.md
# docs/ui-parity.md
2026-10-14 22:32:25 -04:00
Brandon Thomas
de5ec99f61
Merge PR #1489
...
# Conflicts:
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-14 22:32:24 -04:00
Brandon Thomas
75e0a6dd2a
Merge PR #1835
2026-10-14 22:32:07 -04:00
Brandon Thomas
f03c4529c2
Merge PR #1818
...
# 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
# docs/whats-new.md
2026-10-14 22:32:01 -04:00
Brandon Thomas
5e1a951008
Merge PR #1817
2026-10-14 22:31:59 -04:00
Brandon Thomas
33c321c6fb
Merge PR #1816
...
# Conflicts:
# crates/engine/src/tests.rs
2026-10-14 22:31:58 -04:00
Brandon Thomas
bbf8fc0f0b
Merge PR #1813
2026-10-14 22:31:57 -04:00
Brandon Thomas
213b09a2e9
Merge PR #1804
2026-10-14 22:31:55 -04:00
Brandon Thomas
327e67af9e
Merge PR #1798
...
# Conflicts:
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-14 22:31:53 -04:00
Brandon Thomas
6dab4bdc1b
Merge PR #1793
2026-10-14 22:31:47 -04:00
Brandon Thomas
b476affb6b
Merge PR #1780
...
# Conflicts:
# docs/whats-new.md
2026-10-14 22:31:43 -04:00
Brandon Thomas
f815f88958
Merge PR #1772
...
# Conflicts:
# crates/engine/src/tests_xmp.rs
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-14 22:29:50 -04:00
Brandon Thomas
e2f6555220
Merge PR #1750
2026-10-14 22:29:42 -04:00
Brandon Thomas
a8f0f5d60b
Merge PR #1715
...
# Conflicts:
# docs/gaps.md
# docs/parity-checklist.md
# docs/target-app-parity.md
2026-10-14 22:29:33 -04:00
Brandon Thomas
3be25e7559
Merge PR #1686
2026-10-14 22:29:25 -04:00
Brandon Thomas
de137ef5fc
Merge PR #1311
2026-10-14 22:29:07 -04:00
Brandon Thomas and Claude Opus 5.5
da7534a2ed
Batch 36: the slideshow template test drops the cached listing after writing a file by hand (flaky when the write lands in the listing's clock tick)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-14 22:28:53 -04:00
Michael Anderson
ca6077ab81
Merge remote-tracking branch 'upstream/main' into fix/1524-faces-after-relink
...
# Conflicts:
# crates/engine/src/lib.rs
2026-10-14 21:03:02 -05:00
Brandon Thomas
b6eb559243
Merge PR #1053
...
# Conflicts:
# crates/raw/src/vendor/nef.rs
# docs/gaps.md
# docs/parity-checklist.md
# docs/raw-parity.md
# docs/whats-new.md
2026-10-14 22:01:32 -04:00
Michael Anderson
453757773d
Merge remote-tracking branch 'upstream/main' into fix/xmp-write-retry
...
# Conflicts:
# docs/parity-checklist.md
2026-10-14 20:59:59 -05:00
Brandon Thomas
d8b52d9405
Merge PR #1105
...
# Conflicts:
# ROADMAP.md
# docs/gaps.md
# docs/parity-checklist.md
# docs/raw-parity.md
2026-10-14 21:59:32 -04:00
Brandon Thomas
aba04aaf5c
Merge PR #1087
...
# Conflicts:
# ROADMAP.md
# docs/gaps.md
# docs/parity-checklist.md
# docs/raw-parity.md
# docs/raw/coverage.tsv
# docs/raw/evidence.tsv
# xtask/src/main.rs
2026-10-14 21:59:31 -04:00
Brandon Thomas
a993758693
Merge PR #1106
...
# 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
# docs/whats-new.md
2026-10-14 21:58:45 -04:00
Michael Anderson
6c5eacc839
Merge remote-tracking branch 'upstream/main' into fix/1392-browse-forgets-deleted
...
# Conflicts:
# docs/parity-checklist.md
2026-10-14 20:58:44 -05:00
Brandon Thomas
28a6d97434
Merge PR #1062
...
# Conflicts:
# docs/parity-checklist.md
2026-10-14 21:58:37 -04:00
Brandon Thomas
e0ed8c0270
Merge PR #1033
...
# Conflicts:
# docs/gaps.md
# docs/parity-checklist.md
2026-10-14 21:58:33 -04:00
Brandon Thomas
ff66d188e8
Merge PR #996
...
# 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
# docs/parity-checklist.md
2026-10-14 21:58:01 -04:00
Brandon Thomas
260a460c11
Merge PR #1019
...
# Conflicts:
# docs/gaps.md
# docs/parity-checklist.md
2026-10-14 21:57:59 -04:00
Brandon Thomas
58dc540cc0
Merge PR #1010
...
# Conflicts:
# docs/gaps.md
2026-10-14 21:57:58 -04:00
Brandon Thomas
cbf3664e4f
Merge PR #824
...
# Conflicts:
# crates/engine/src/files.rs
# docs/gaps.md
# docs/parity-checklist.md
# docs/raw-parity.md
2026-10-14 21:56:53 -04:00
Michael Anderson
88455a837c
Merge remote-tracking branch 'upstream/main' into feat/nikon-dslr-lens-names
...
# Conflicts:
# docs/parity-checklist.md
2026-10-14 20:55:26 -05:00
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
Michael Anderson
b70571448c
Merge remote-tracking branch 'upstream/main' into feat/import-on-card
...
# Conflicts:
# docs/parity-checklist.md
2026-10-14 20:53:05 -05:00
Myrarc and OpenAI Codex
cebaade144
CI-RUST195: keep strict Clippy clean on Rust 1.95
...
Move nested conditions into match guards and simplify equivalent Boolean
expressions without changing validation or short-circuit behavior. Keep
the explicit permitted Testkit dev-dependency arm in the layer checker.
Co-Authored-By: OpenAI Codex <noreply@openai.com >
2026-10-15 08:50:22 +07: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
5c5370fc9b
LR-LIB-REMOVE-ALBUM: removing a photo from an album keeps it in its folder ( fixes #1805 )
...
In an album the Delete key ran photo.delete, which moved the photo to
Recently Deleted, so it also left its folder views. It now removes the
selection from the album only (album.removePhotos), as in Lightroom; in a
smart album it changes nothing. Photo > Remove from Album shows in normal
albums with the Delete key; Photo > Delete Photo still deletes from the
library. album.removePhotos defaults to the album on screen and returns
{removed, album}.
2026-10-15 00:54:17 +02:00
Jason Baldwin
b5169e907c
LR-META-XMP: radial masks keep their inside/outside from Lightroom ( fixes #1815 )
...
crs:Flipped="true" is how Lightroom Classic writes an ordinary radial mask
(effect inside); it was read as our invert, so every imported radial applied
outside the circle. Established from Lightroom Classic 15.6's exports of
synthetic DNGs:
- MaskGroupBasedCorrections, Version 2: Flipped is the effect-inside flag;
inverting is the component's MaskInverted.
- MaskGroupBasedCorrections without Version: inside whatever Flipped says
(Lightroom rewrites both values as Flipped=true, Version=2), and its Feather
is halved, as Lightroom rescales it on that upgrade.
- Legacy CircularGradientBasedCorrections Radial Filter: outside by default,
Flipped=true (Invert Mask) is inside.
One mapping serves XMP sidecars, DNG-embedded XMP, presets and .lrcat catalog
import. LightCraft writes no crs: masks, so there is no writer to match.
2026-10-15 00:53:53 +02:00