Commit Graph
170 Commits
Author SHA1 Message Date
francoisgnandClaude Opus 5.5 b840f3f290 Round 3a: Edit In reports an editor that won't open in its result; doc header and history fixes
CodeRabbit on #2689 (head 0d64d9ef3):
- Edit In (#1417) returned an error when the editor failed to open although
  photo.editExternal had already added the copies to the library, so a script
  retrying on ok:false made another set each time. It now succeeds with
  `failed` set (null on success, as open_originals) and a toast saying why.
  Test edit_in_reports_an_editor_that_wont_open_without_failing fails without
  the fix.
- docs/gaps.md, docs/parity-checklist.md: one entry was listed twice on the
  Change line.
- Revision-history rows the batch added now read newest-first (gaps,
  parity-checklist, localization-parity, target-app-parity); upstream's own
  rows are left where they were.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 21:01:46 +03:00
francoisgn 309b4f1b57 Merge PR #2685 (review round 9bb072fe4)
# Conflicts:
#	docs/gaps.md
2026-10-23 18:19:48 +03:00
Claude 9bb072fe4a #2672: a stale destination window refuses Create a new library too; tests read confirm's error, not the last toast
Review follow-up on #2685. CodeRabbit: the library-switch check ran for Merge only, so a window left over from before a switch could still make a library from defaults that described the old one; it now covers both choices (new test). The Mac session: on macOS the switch's own notice can replace the error toast before the test reads it, so the stale-window tests check confirm's error directly. docs/gaps.md gap 13 updated with the parity row (CodeRabbit).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AbegtYaPuwqZ81pGfELsFK
2026-10-23 14:37:06 +00:00
francoisgnandClaude Opus 5.5 7d572918a4 Integration: tracker rows merged from each PR's own change; Frame Rate named for the thing (#1313 vs #2195)
- docs/parity-checklist.md, docs/gaps.md, docs/target-app-parity.md: rows two PRs both
  changed had been kept twice by the doc resolution. Each row is now upstream main's row
  plus every merged PR's own edit (3-way against the PR's merge base), so main's newer
  text is kept (LR-LIB-FLAG #1013, Lanczos-3 in LR-MERGE-HDR / -PANO, LR-EXP-DIM #1620,
  gaps 8 and 10) and the PRs' additions too; LR-BEHAV-LOCALE / -LOCALIZE take main's
  Georgian and #1846's Polish. `cargo xtask parity --write` refreshed the summary.
- #1313 added "Show Frame Rate", a switch; #2195 names switches for what they show
  (menubar::tests::toggles_are_named_for_the_thing_not_show): now "Frame Rate".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 23:19:10 +03:00
francoisgn 5426e5ca66 Merge PR #2072: Export: add Thai glyph fallback only (#2052, partial)
# Conflicts:
#	docs/gaps.md
#	docs/parity-checklist.md
2026-10-22 22:31:16 +03:00
francoisgn b3c5b25b9a Merge PR #2302: Gap 9: cargo xtask ci on every PR (Linux x64); ci --quick; o
# Conflicts:
#	CLAUDE.md
#	docs/gaps.md
#	docs/target-app-parity.md
2026-10-22 22:31:14 +03:00
francoisgn f2ffc34b14 Merge PR #2468: Print: Japanese photo and postcard paper sizes (L判・2L・KG・はがき
# Conflicts:
#	docs/gaps.md
#	docs/parity-checklist.md
2026-10-22 22:28:41 +03:00
francoisgn cd6bc4be6f Merge PR #2513: KEY-GRID: show the cycle shortcut in the View menu (#2500)
# Conflicts:
#	docs/parity-checklist.md
2026-10-22 22:28:41 +03:00
francoisgn b32b4383f5 Merge PR #1074: LR-VIEW-ZOOM: diagnostic overlays render zoom windows; soft
# Conflicts:
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/ui-parity.md
2026-10-22 22:28:28 +03:00
midasdf 867284656e Merge origin/main into #2468: keep main's work and the Japanese paper sizes
Both sides' revision-history rows and change lines are kept (newest first);
print_view.rs auto-merged, so main's shared context_menu call sits beside the
PR's current_paper()/paper_name() punctuation and alias fixes.

# Conflicts:
#	ROADMAP.md
#	docs/gaps.md
#	docs/parity-checklist.md
2026-10-22 23:37:29 +09:00
tylerphotosandCodex 6677edd107 KEY-GRID: reconcile grid shortcut hints with current main
Preserve upstream menu additions and progress documentation while retaining
the focused grid shortcut and native ownership fix. All eight CI gates, five
Windows regressions and native acceptance passed on this exact merged tree.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-22 07:35:20 -05:00
Alex Chambers 0cfc70b2fa Issue #2052: merge main and limit export fallback to Thai
Keep the existing Inter and CJK export order and the UI font chain.
Defer Arabic export faces until joining and bidirectional ordering exist.
Restore main's headline documents and record remaining text-layout limits.
2026-10-22 13:27:10 +02:00
tylerphotosandCodex 48e1cde8b7 KEY-GRID: show live cycle shortcut in View menus
Fixes #2500. Preserve direct menu selection and native accelerator ownership.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-21 22:32:43 -05:00
aiongg 8daa25c4c9 Merge track r2-t04 into next
# Conflicts:
#	ROADMAP.md
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/target-app-parity.md
#	docs/whats-new.md
2026-10-22 02:53:42 +00:00
aiongg 727e66babe Merge track r2-t03 into next
# Conflicts:
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/ui-parity.md
#	docs/whats-new.md
2026-10-22 02:53:00 +00:00
aiongg 3300e6dad8 Merge track r2-t01 into next
# Conflicts:
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/raw/coverage.tsv
#	docs/whats-new.md
2026-10-22 02:49:52 +00:00
aiongg d26c11a676 Merge track r2-t02 into next
# Conflicts:
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-22 02:42:47 +00:00
aiongg 70e9338085 Merge PR #1040: LR-IMP-FORMATS: decode Minolta MRW
docs/parity-checklist.md: header keeps the newer date; LR-IMP-FORMATS row keeps both sides' changes.
docs/raw-parity.md: header change note names both sides' changes.
docs/raw/coverage.tsv: merged cleanly; same rows as both sides, no duplicates (regenerated on the combined branch).
2026-10-22 02:42:05 +00:00
aiongg 1e99e2e1d9 Merge PR #2386: The Windows x64 installer is verified on Windows 11
Conflicts:
- docs/gaps.md: header keeps both changes; revision rows are the union
- docs/target-app-parity.md: revision rows are the union
2026-10-22 02:41:08 +00:00
aiongg d158d75b59 Merge PR #1917: KEYC-RATING: backslash shows and hides the Filter Bar in the grids
docs/parity-checklist.md: header and revision rows from both sides

docs/ui-parity.md: header keeps the newer dates and both change notes
2026-10-22 02:40:33 +00:00
aiongg 04b099a4f5 Merge PR #1901: LR-EDIT-OPTICS-PROFILE: apply A7CR embedded distortion for corrected full-frame raws
crates/engine/src/camera_preview.rs: LOOK_VERSION keeps both history lines and the higher value.
crates/engine/src/media.rs: RENDER_CACHE_VERSION keeps the higher value.
docs/whats-new.md: both 2026-10-14 entries under one heading.
2026-10-22 02:40:09 +00:00
aiongg c61ad57601 Merge PR #2425: LR-IMP-ADD-DIALOG: preserve album hierarchy in Import Photos
docs/parity-checklist.md: header keeps 2026-10-21 and lists both sides' change notes
2026-10-22 02:39:44 +00:00
aiongg 91c465a29c Merge PR #1165: LR-IMP-FORMATS: folder import finds Sony SR2 and SRF files
docs/parity-checklist.md: LR-IMP-FORMATS row keeps main's DNG/Hasselblad text and adds #1165's SR2/SRF phrase; revision rows are the union
docs/raw-parity.md, docs/gaps.md: revision rows are the union
2026-10-22 02:39:08 +00:00
aiongg 0068d9040b Merge PR #2295: i18n: Indonesian (id) interface language
Conflicts:
- crates/ui-egui/src/i18n.rs, crates/ui-egui/src/menus.rs: language table and commands keep sv, fi and id
- crates/ui-egui/src/panels/keyword_list.rs: code list gains id; Locale::ALL.len() is 17
- docs/localization.md: language list and note links keep every language
- docs/localization-parity.md: header keeps the newer date and both changes; links and revision rows are the union
2026-10-22 02:37:53 +00:00
Bruno-Alumn d15fc0a6ce Merge remote-tracking branch 'upstream/main' into fix/f8-right-panel
# Conflicts:
#	docs/parity-checklist.md
2026-10-21 22:42:18 +00:00
tylerphotosandCodex 4245d50f2f LR-IMP-ADD-DIALOG: reconcile album picker with integrated main (#2425)
Retain both sets of parity revision notes after the upstream integration.
Keep the hierarchical picker and deleted-destination guard unchanged.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-21 17:34:40 -05:00
midasdf b7568ef307 Print: Japanese photo and postcard paper sizes
Japanese photo printing and New Year cards cannot pick their paper: the Print
page setup only offers the ISO and US sizes. Add the customary papers at their
exact metric sizes, after the existing entries (whose sizes and order are
unchanged): L判 89×127 mm, 2L判 127×178, KG判 102×152, はがき 100×148,
往復はがき 148×200, 六切 203×254, 四切 254×305 and 名刺 55×91 (portrait).

Names resolve case-, space- and punctuation-insensitively, and take the
Japanese customary names as aliases (L判, Lサイズ, L-size, 2L判, KG判,
はがき/ハガキ/葉書/ポストカード, 往復はがき, 六切/6切, 四切/4切, 名刺). The
Print dialog and `print.set`/`print.get` use the same names, the labels show
the customary name with its metric size, and the PDF page size and MediaBox
follow the paper.

Tests: the layout test pins every new size to 0.1 pt, the aliases, and the
unchanged ISO/US sizes and unknown-name rejection; the Print view test checks
the labels; and an engine test exports a PDF on はがき (283.46×419.53 pt) and
L判 (252.28×359.99 pt) at 254 ppi (ten pixels per millimetre, so the MediaBox
is exact) and reads the actual page size, plus the customary name through
print.set.

Docs: ROADMAP progress log + revision history and header, docs/gaps.md
(Gap 15 revision), docs/parity-checklist.md (LRC-PRINT-LAYOUT row), dated
2026-10-22; existing revision rows keep their dates.
2026-10-22 01:02:49 +09:00
aiongg c1c9f94094 Merge PR #842: Read large Lightroom catalogs by page
crates/engine/src/lightroom_catalog.rs: test helpers chained; native_catalog_rows takes #842's last_page argument, native_catalog_with_last_table_page builds on it
docs/parity-checklist.md: LRC-LIB-CATALOG-IMPORT keeps both texts
2026-10-21 14:53:52 +00:00
Bruno-Alumn 7ab5b150f3 KEYC-PANELS: F8 shows and hides the right panel
Lightroom Classic's F8 hides the right panel; F6 and F7 (filmstrip, left
panel) were bound but F8 did nothing. View > Right Panel (view.rightPanel,
F8 as a secondary key like F6 / F7) hides the right panel and shows the
same one again next time, or Edit when none was hidden. Hiding a tool
ends it, as closing its panel does.

Gap 28 listed rating [ ], flag cycling and F1 help as missing; they are
bound, so the entry now lists only filter-bar keys, Tab / Shift+Tab and F5.
2026-10-21 00:39:53 +00:00
tylerphotosandCodex 286171e2e5 LR-IMP-ADD-DIALOG: preserve import destination album hierarchy
Reuse the shared album picker in Import Photos, retaining None/New album,
editable names, album-context preselection and existing import semantics.
Keep long paths within the viewport and cover hierarchy, localization,
keyboard choices, real imports, undo and layout regressions.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-20 16:41:40 -05:00
insideTheFluxandClaude Opus 5.5 4ea9be25b2 Gap 27: the Windows x64 installer is verified on Windows 11
The released 0.9.1 x64 MSI was tested on Windows 11 Pro 24H2 (build
26100.9711) with verbose msiexec logs. A fresh install and an upgrade
from 0.8.0 into a custom folder both end on the completion page, so
#790 is fixed (by #1569). The upgrade keeps the folder, Launch starts
the app as the signed-in user, and both removals leave nothing behind.

Uninstalling from Settings -> Apps still ends without any confirmation
(#892, #931), so that stays in the gap. Hours and percentages are
unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:40:21 -07:00
Andrew FrahnandClaude Sonnet 5.5 131de8cccd Merge upstream/main into pr/overlay-windows (#1027 landed)
GPU handles(): only output-device proofs stay on the CPU; Show All Masks now renders zoom windows (upstream); proof-boundary tolerance in the GPU equivalence test; device-profile draft test.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 10:57:07 +11:00
Andrew FrahnandClaude Sonnet 5.5 5e1bac1264 Merge upstream/main into pr/longtail-raws
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 09:58:17 +11:00
Matthew James SivakandClaude Opus 5.5 5690afe51a Gap 9: cargo xtask ci on every PR (Linux x64); ci --quick; one local ci at a time
- .github/workflows/ci.yml: the full `cargo xtask ci` on every pull request and push to main
  (Linux x64, craft-fonts, rust-cache for dependencies), so it becomes the merge gate.
- `cargo xtask ci --quick [--base REF]`: fmt, clippy, the changed packages' tests, layers and
  assets, plus heif / parity / wasm when the changes touch them, measured against the merge base
  with origin/main (xtask/src/ci_quick.rs). Workspace-wide files test everything.
- A machine-wide lock (xtask/src/ci_lock.rs): a second `ci`, from another worktree, waits and
  names the run it waits for. LIGHTCRAFT_CI_SLOTS=N, LIGHTCRAFT_CI_LOCK=off|<dir>.
- README, CLAUDE.md quality gate, gaps.md gap 9, target-app-parity.md stability note.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 10:59:30 +02:00
Reva Doni AprilioandClaude Opus 5.5 61402815b5 docs: gaps header for gap 21; Indonesian parity counts messages only
Address review: gaps.md's header and history record the 2026-10-19 gap 21
change, and the Indonesian parity row counts the 2,555 catalog messages,
with the 69 command labels noted separately.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 13:26:32 +07:00
Reva Doni AprilioandClaude Opus 5.5 822c6ed101 docs: Indonesian in the key-languages tables and the localization headline numbers
Address review: the twelve-key-languages row for Indonesian still read 0%
while the shipped table listed it, and ROADMAP repeated it under Also
shipped. Indonesian is a key language, so it moves to its row (100% but
What's New) and out of the other-languages table (back to 4). Localization
mean of the 12 key languages ~55% -> ~64%, 8 of 12 present; the new-script
estimate drops Indonesian (135-239 h); the full-target weighted sum moves
61.2% -> 61.5% (still ~61%).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 13:07:58 +07:00
Marco Arnulfo d5de74f6cd KEYC-RATING: backslash shows and hides the Filter Bar in the grids 2026-10-18 19:05:05 +02:00
Brandon Thomas 4b6db59ade Merge PR #1903: LRC-PRINT-PAGE: Page Options print page numbers, page info and crop marks (gap 15)
# Conflicts:
#	docs/gaps.md
#	docs/parity-checklist.md
2026-10-18 09:22:40 -04:00
Yorgos S. 863adcac6f X-Trans CMOS 4 bodies take the X-T3's spectral matrices
An X-T30 RAF shot in Acros embeds a black-and-white camera JPEG, so the
per-file look fits only the tone curve, and the colour came from the
neutral "camera RGB ~ sRGB" fallback: a grey sky and muted colours. The
raw decode (lossless compressed) was correct.

Add a hand-kept SAME_SENSOR alias list next to the generated
rawtoaces-data table: the 26.1 MP X-Trans CMOS 4 bodies (X-T30, X-T30 II,
X-Pro3, X100V, X-S10, X-E4) use the X-T3's measured matrices, and their
white balance reads in Kelvin through them.
2026-10-18 11:46:07 +02:00
FredApps 08e3893731 LR-798: refresh file-backed catalog against main 2026-10-15 22:44:43 +02:00
Marco Arnulfo 79d726f856 LRC-PRINT-PAGE: Page Options print page numbers, page info and crop marks (gap 15)
The Print dialog's Page section gets Lightroom's Page Options for Single Image
and Contact Sheet: the page number at the bottom right, the print settings line
(sharpening, profile, resolution) at the bottom left, and crop marks at the
corners of each photo. They are `print.set {page: {pageNumbers, pageInfo,
cropMarks}}`, saved with templates, drawn in the preview and composed into the
PDF; marks and text turn white on a dark page.
2026-10-15 15:38:03 +02:00
Alex ChambersandClaude Opus 5.5 1be3b3d743 LR-EDIT-OPTICS-PROFILE: apply A7CR embedded distortion for corrected full-frame raws
Use the corrected-radius table convention for full-frame Bayer ILCE-7CR files with distortion Auto or forced Auto. Preserve Off files, unvalidated modes and the existing ILCE-7RM4A conversion.

Add mapping, setting, scope, padding, orientation, resizing and DNG checks. Record camera-JPEG geometry and color measurements, including the remaining wide-end edge residual. Refresh stored lens data with LOOK_VERSION 11 and rendered results with RENDER_CACHE_VERSION 68.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:21:19 +02:00
Alex ChambersandCodex 484215f009 LR-IMP-FORMATS: discover Sony SR2 and SRF files in folders
Reuse the engine's import extensions in MCP and CLI discovery. Add
recursive, case-insensitive discovery tests and record that DSC-F828
SRF import remains preview-only.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-15 10:15:53 +02:00
Brandon ThomasandClaude Opus 5.5 b17483a3ce Batch 40: tracker rows that earlier batches' doc merges dropped are back
Batches 36's doc conflicts kept main's side of rows both sides had touched; for some, main had not changed the row,
so the PR's update was lost. Restored: LR-VIEW-FILMSTRIP (#1482), KEYC-COMPARE (#1491 + #1555), LR-IMP-LOCAL
(#1547 + #1820), LR-LIB-STACK (#1556), gaps 28 (#1555), 2 (#1029) and 23 (#1038), ROADMAP UI/UX (#1038). The
raw-parity by-maker and by-use tables are re-measured with coverage.py (545 verified, ~94% / ~85%).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 03:45:00 -04:00
Brandon Thomas 5e9f7f1a65 Merge PR #1027 (rebased)
# Conflicts:
#	ROADMAP.md
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/target-app-parity.md
2026-10-15 03:40:37 -04:00
Brandon ThomasandClaude Opus 5.5 1d7699056e Merge PR #1027
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 03:36:18 -04:00
Brandon Thomas 76881c977e Merge PR #1327 (rebased)
# Conflicts:
#	ROADMAP.md
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/target-app-parity.md
2026-10-15 00:53:22 -04:00
Brandon Thomas b3012745d5 Merge PR #1215 (rebased)
# Conflicts:
#	docs/gaps.md
#	docs/parity-checklist.md
2026-10-15 00:52:31 -04:00
Brandon Thomas 8b73a2ec2f Merge PR #1138 (rebased)
# Conflicts:
#	docs/gaps.md
2026-10-15 00:52:30 -04:00
Brandon Thomas f27ca795c7 Merge PR #1327
# Conflicts:
#	ROADMAP.md
#	crates/raw/tests/corpus.rs
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/raw-parity.md
#	docs/raw/coverage.tsv
#	docs/raw/evidence.tsv
#	docs/target-app-parity.md
2026-10-15 00:44:42 -04:00