What's Changed
- Integration batch 32a: 8 reviewed contributor PRs by @echelon in #1426
- Issue #989: clippy 1.99, fill_box reads its buffer with as_chunks::<3>() (item 4) by @snofla in #997
- LR-LIB-ALBUM: "Include selected photos" option in New Album by @MarkusFriedel in #1250
- Scroll the filmstrip when the same photo is opened in another source. by @vbasky in #1253
- Import HEIC, HEIF, and NRW files from a folder. by @vbasky in #1254
- Accept a bare port for --connect. by @vbasky in #1255
- Composite straight alpha onto white in the working space. by @vbasky in #1257
- Raise the deep-zoom preview margin cap. by @vbasky in #1260
- fix(toast): draw the toast as widgets so the message can be selected by @switch87 in #1262
- Integration batch 33: main green again, 85 reviewed contributor PRs by @bflatastic in #1431
- fix(i18n): translate Photo Merge projection choices and merge toasts by @emmertex in #1270
- LR-IMP-FORMATS: CR2 white level from the active area, not the saturated masked rows above it by @marcoarnulfo in #1280
- Adds “Locate Missing Files…” to folder and disk context menus. by @csidirop in #1282
- LR-EDIT-COLOR-TEMP: Lightroom's non-linear scale for the Kelvin Temp slider (#1295) by @MarkusFriedel in #1296
- ORF: as-shot white balance from maker-note 0x1017/0x1018 on the Olympus E-10 (part of #1273) by @marcoarnulfo in #1297
- M5.6: a view slot renders one job at a time, so a drag's renders don't pile up by @mattsivak in #1302
- Nix: fix the flake at HEAD (git dependency) and load libdbus/libEGL on NixOS by @untypequicode in #1314
- LR-IMP-FORMATS: uncompressed Leaf MOS is a raw, the Hasselblad Lunar decodes as an ARW by @AlexChambers in #1324
- M-export: a resized export keeps the edge it was asked for by @marcoarnulfo in #1338
- GH-251: document controller polling and edit interactions by @sanyamsingh001 in #1341
- LR-EDIT-COLOR-TEMP: Kelvin white balance from Sony's white-balance presets by @PiMinusMax in #1344
- macOS: closing the window ends the process in on_exit, as menu Quit does by @marcoarnulfo in #1353
- CR2: as-shot white balance of the PowerShot G9 from its WBInfo preset rows (part of #1273) by @marcoarnulfo in #1357
- Before/After wipe: the line stays in the middle of the view when zoomed in by @marcoarnulfo in #1358
- LR-IMP-CAMERA-COVERAGE: Nikon D90 NEFs drop their filler columns (no pink band) by @menno-zeilstra in #1361
- LR-EDIT-LIGHT-CURVE-POINT: ⌥-drag moves a curve point a tenth as far, for fine adjustment by @marcoarnulfo in #1367
- KEY-SLIDER-TYPE: a typed slider value keeps editing after the click is released by @marcoarnulfo in #1368
- LR-IMP-CAMERA-COVERAGE: Nikon D7100 NEFs develop at Lightroom's frame, so its crops line up by @marcoarnulfo in #1387
- AI Denoise: Install from file says why a model file is refused by @marcoarnulfo in #1389
- LR-CROP-STRAIGHTEN: a crop shrunk to fit by Straighten grows back as the angle returns by @marcoarnulfo in #1394
- LR-BEHAV-LOCALIZE: strong text is heavier in scripts whose fallback face is a variable font (Arabic) by @nledford in #1397
- LR-BEHAV-GPU: say once when no GPU is found, instead of quietly rendering on the CPU by @dev-null-undefined in #1411
- M5.6: a slider drag no longer decodes the edited raw again for its filmstrip thumbnail by @dev-null-undefined in #1412
- M5.6: with a GPU, a slider drag's preview is drawn in the frame of the drag tick by @dev-null-undefined in #1413
- LR-PROF-CAMERACOLOR: ILCE-7RM6 camera-JPEG colour fit on full-frame files by @dev-null-undefined in #805
- fix(geom): reject non-finite perspective and affine transforms by @Ni-zav in #985
- Issue #989: the lock test finds true on the PATH by @nledford in #990
- LR-IMP-CAMERA-COVERAGE: Leica Q3 verified by a recorded check of 38 private DNGs by @snofla in #992
- Issue #989: odd_folders_never_fail_the_check skips non-UTF-8 names on APFS (item 3, one of eleven) by @snofla in #1003
- Issue #989: the ten sidecar repair tests also pass on a case-insensitive volume (item 3, ten of eleven) by @snofla in #1007
- LR-HDR-EXPORT: HLG HDR AVIF export and a tested SDR/HDR display decision by @emmertex in #1017
- LR-IMP-PREVIEW-READ: a CR3 or a TIFF raw's preview is read from the plan's ranges by @lzjtugjc in #1020
- LR-BEHAV-ACCESS: AccessKit tree audit test and fixes by @emmertex in #1023
- Show progress and allow cancel while a large Lightroom catalog import reads its photos by @rwoldberg in #1024
- LR-VIEW-DETAIL: the loupe says "Rendering…" while what it shows is not the render yet by @dev-null-undefined in #1032
- LR-PREF-DISPLAY: Monitor profiles: keep zoomed views sharp by @kelanna in #1036
- LR-EXP-RENDERDNG: Render to DNG export format by @emmertex in #1047
- LR-PREF-DISPLAY: on Linux, previews use the display profile from colord by @emmertex in #1051
- Windows: case-insensitive sidecar/rename fixes; Windows test and toolchain fixes by @OneSlips in #1052
- UI: targeted adjustment says how to leave it; wheel notch scrolls 100 points by @OneSlips in #1064
- Control channel: give up requests a hidden Wayland window can't answer, never run them late (#718) by @emmertex in #1070
- LR-IMP-FORMATS: EOS R6 Mark III as-shot white balance (ColorData version 66) by @josenbobby in #1071
- fix(preview): avoid double-counting overwritten thumbnail files by @Ni-zav in #1076
- feat(shortcuts): add Lightroom Classic F6/F7 panel toggles by @Ni-zav in #1078
- fix(i18n): translate masking context menu actions by @Ni-zav in #1090
- feat(curve): overlay the current histogram behind tone curves by @Ni-zav in #1091
- fix(i18n): translate library context and zoom menu labels by @Ni-zav in #1092
- fix: a folder listed twice in Local can't be collapsed (#1093) by @mattsivak in #1101
- fix: left panel slow with a large keyword list (#1011) by @mattsivak in #1114
- LR-MERGE-HDR: merges of raws without colour matrices keep their colour (#965) by @LloydNicholson in #1123
- LR-EDIT-OPTICS-PROFILE: in-camera crop modes get the frame's crop factor, not the body's by @Madcat71 in #1125
- LR-IMP-FORMATS: a float raw with NaN or infinite samples no longer panics the demosaic by @dev-null-undefined in #1139
- LR-BEHAV-BG-TASKS: a render job that panics fails instead of never answering by @dev-null-undefined in #1149
- LR-VIEW-DETAIL: the loupe says when the render behind a stand-in fails by @dev-null-undefined in #1150
- LR-VIEW-COMPARE: Compare and Reference panes say "Rendering…" as the loupe does by @dev-null-undefined in #1151
- GH-104: finish initial layout before offline frame timing by @sanyamsingh001 in #1154
- LR-EXP-PSD: Photo ▸ Edit In ▸ Open Original in Other Editor (RAW, no copy) by @ChippedW in #1174
- LR-IMP-FORMATS: DNG CFAPattern is anchored at the ActiveArea, not the sensor (#1086) by @radialmonster in #1177
- i18n(es): face recognition and AI Denoise in Spanish, style-guide fixes by @diegozpy in #1179
- fix(cli): --connect 7980 takes a bare port as loopback (#1178) by @rollroyces in #1182
- fix(i18n): translate navigation, editing, and Presets tooltips by @Ni-zav in #1186
- fix(presets): prevent Amount slider from undoing unrelated edits by @Ni-zav in #1187
- LR-EDIT-COLOR-GRADING: Cmd/Ctrl-drag keeps the saturation, Alt/Option fine-adjusts the colour wheels (#1160) by @atmikshetty in #1189
- LR-META-XMP: Read Metadata from File no longer auto-writes the sidecar it has just read by @AlexChambers in #1193
- Fix: import of metadata-less exports (Unknown Date, phantom 'already in the library', Grid Info) by @emmertex in #1216
- LR-IMP-FORMATS: transparent areas develop on white instead of black (#1212) by @marcoarnulfo in #1222
- M5.6: zoomed 64 MP raws stay decoded and on the GPU (every 1:1 pan re-decoded the raw) by @dev-null-undefined in #1235
- HDR: the HDR histogram follows slider drags live by @JordyUSA in #1238
- fix: deleting a photo asks first, also from the right-click menu (#1239) by @mattsivak in #1242
- LRC-DEV-HISTORY: History cursor — going to a step adds no step by @emmertex in #1246
- Up / Down move through the grid's rows by @emmertex in #1264
- MENU-CTX-ALBUM: Import ▸ submenu on an album opens the review with that album chosen by @MarkusFriedel in #1268
- PEF: masked rows and columns at the black level are trimmed without crop tags by @marcoarnulfo in #1288
- fix(i18n): translate Compare and Reference view captions by @emmertex in #1291
- fix(i18n): translate the curve right-click menu by @emmertex in #1292
- fix(i18n): translate Remove panel spot mode and dust toast by @emmertex in #1293
- fix(i18n): translate Keep in Local / Add to Local by @emmertex in #1294
- LR-LIB-DELETE: a file in Recently Deleted can be checked by hand in the import review by @marcoarnulfo in #1301
- LR-PROF-CAMERACOLOR: fit the camera-look toe from dark JPEG tones by @AlexChambers in #1340
- #618: profiles.list includes imported LUT profiles by @srikrishna-00 in #661
- Sort ties by file name, then id by @itrycodinganditsbad in #978
- pt-BR: translate face recognition and album sorting strings by @WladmirJunior in #982
- fix(meta): reject impossible EXIF and XMP capture dates by @Ni-zav in #984
- fix(meta): reject truncated and mismatched GPX files by @Ni-zav in #986
- Issue #989: the Export dialog height test expects the macOS row (Add to Apple Photos, 876 pt) by @snofla in #1018
- Gap 27: CPU-GPU equivalence verified on an AMD Radeon 8060S (Vulkan, Linux) by @emmertex in #1094
- CLI --import uses the engine's import extensions (#1080) by @itrycodinganditsbad in #1119
- Integration batch 32-2: 7 reviewed contributor PRs by @echelon in #1438
- smart previews: store proxies at JPEG quality 97 and version the encoding (#709) by @eliets2 in #850
- Add Ctrl+Shift+O / Cmd+Shift+O to show all mask overlay regions at once by @csy2006 in #919
- PERF-PRESETS: libraries with thousands of presets stay responsive by @OneSlips in #1056
- fix(import): exclude symlinked library folders from recursive scans by @Ni-zav in #1077
- HEIF: move the heic-rs pin from 0.1.1 to 0.1.4 by @s17sh70x2jfl031ag in #1113
- perf(gpu): LR-BEHAV-GPU: horizontal box blur reads adjacent pixels (Windows Radeon export 3.7 s → 1.9 s) by @THEtheChad in #1126
- fix(ui): explain Nikon High Efficiency NEF preview-only support by @Ni-zav in #1185
- Integration batch 35: 61 reviewed community PRs (never-crash, raw decode, imports, UI fixes) by @echelon in #1682
- Never crash: Repair damaged catalog snapshots on open by @endthestart in #1565
- Reject a LeakyRelu alpha that is not a single float instead of reading it as 0 (#1530) by @MarekSpodBiedry in #1572
- Check the SAM weight shape against the header before reading the tensor (#1529) by @MarekSpodBiedry in #1573
- MCP: do not resend a request whose reply was lost, report an unknown outcome (#1526) by @MarekSpodBiedry in #1574
- Reject RAW TIFFs with missing or undecodable image chunks (#1513) by @MarekSpodBiedry in #1577
- Preview disk cache: ignore symlinked shard directories (#1504) by @MarekSpodBiedry in #1579
- Reserve the name with an exclusive create when hard links are unavailable (#1503) by @MarekSpodBiedry in #1580
- Recheck file contents before deleting a moved original (#1500) by @MarekSpodBiedry in #1581
- PERF-IMPORT: a scan, an import and a sidecar write no longer make a table of the whole library first by @nledford in #1583
- Before/After button: Show Original () does not light it (fixes #1497) by @PiMinusMax in #1597
- fix(ui): report find-missing failures and timeouts correctly by @NavidZamanKhan in #1598
- Search: clearing the filters empties the search field too by @marcoarnulfo in #1652
- Fix zero-feather spot boundaries producing black pixels by @eliets2 in #1653
- Reject non-finite denoise inputs and tile overflow by @eliets2 in #1655
- Loupe: the filter pill sits as far from the left edge as from the top by @marcoarnulfo in #1661
- Avoid duplicated camera make in exported DNG identity by @skybluu in #1666
- Document command-local release build overrides for low-memory builders by @skybluu in #1667
- fix(ui-egui): #1046 decide on typed error kinds, not error message text by @THEtheChad in #1132
- LR-IMP-PREVIEW-READ: raw thumbnails and stand-ins decode the smallest embedded JPEG that is big enough by @dev-null-undefined in #1410
- LR-MERGE-HDR: keep the reference frame's lens corrections in HDR merges by @alvarohn in #1423
- LR-MASK-OBJECTS: open the configured model folder and preserve retry by @sanyamsingh001 in #1427
- LR-SIDEBAR-LOCAL-SYNC: Synchronize Folder in the Local folder menu by @radialmonster in #1429
- Recently Deleted shows deleted Local (browsed) photos (Fixes #1430) by @Claudio911015 in #1432
- Test: the 1:1 window is drawn with the screen's profile (#1365) by @marcoarnulfo in #1434
- Issue #1200: portable mode, a portable.txt beside the executable keeps settings in LightCraftData by @ArekatlaNishanthchowdary in #1439
- People view: faces cut from the embedded preview, not the raw (#1440) by @bitshiftza in #1443
- i18n(pt-br): fix plurals and inconsistencies, translate AI Denoise by @s17sh70x2jfl031ag in #1445
- LR-IMP-PREVIEW-READ: a raw whose embedded preview can't be read still gets a thumbnail by @marcoarnulfo in #1451
- LR-IMP-ADD-DIALOG: an import ends showing its first photo, in All Photos when the view doesn't hold it, unless another photo was chosen meanwhile by @marcoarnulfo in #1452
- LR-IMP-CAMERA-COVERAGE: verify Canon EOS RP CR3 pixel for pixel by @smposara in #1453
- LR-VIEW-COMPARE: ⌘/Ctrl- and Shift-clicks on the filmstrip select in Compare (#187 follow-up) by @wstock in #1454
- Visualize: the all-masks overlay shows the union of the masks, not the last one by @wstock in #1456
- LR-RAW-DNG: DNGs exported by earlier LightCraft versions render with the right colours again (follow-up to #1177) by @radialmonster in #1459
- LRC-LIB-CATALOG-IMPORT: an ARW6 is described from the whole file, not a partial read by @dev-null-undefined in #1477
- Raw source: no second copy of a full-size picture after the colour model by @PiMinusMax in #1483
- Never crash: Fix overflow in mask.move with a huge delta by @endthestart in #1533
- Never crash: Fix i32 overflow in the NEF and PEF Huffman predictors (#1515) by @endthestart in #1535
- LRC-LIB-CATALOG-IMPORT: Open catalogs whose tables are all still in the WAL by @endthestart in #1536
- xtask parity: Fail when docs/gaps.md lists a gap more than once by @endthestart in #1537
- Never crash: Fix demosaic panic on a NaN black level by @endthestart in #1539
- Never crash: Refuse raw data with two samples per pixel (#1511) by @endthestart in #1541
- Never crash: Fix export size panic for very long strips by @endthestart in #1542
- Never crash: Cap enlarged exports at 512 MP and check memory first by @endthestart in #1543
- Never crash: Fix overflow on a BigTIFF IFD with a huge entry count (#1516) by @endthestart in #1544
- Never crash: Cap the spot radius so huge spot sizes render (#1519) by @endthestart in #1546
- Never crash: Fix panic dragging a tone curve point between close neighbours by @endthestart in #1550
- Never crash: Render demo scenes at most at their own size by @endthestart in #1557
- Never crash: Fix defringe radius overflow for amounts past the sliders by @endthestart in #1558
- Never crash: Limit how much a preset zip can unpack by @endthestart in #1559
- Never crash: Give the loupe a finite aspect for a zero-size crop by @endthestart in #1560
- Never crash: Fix blur overflow and hangs on sliver crops by @endthestart in #1561
- Never crash: Read the edge pixel for bilinear samples outside the picture by @endthestart in #1562
- Edit: Select Only Active Photo (Cmd+Shift+D) by @eliets2 in #1563
- fix(develop): reject invalid settings groups before mutation by @NavidZamanKhan in #1567
- Packaging: confirm a successful uninstall with the completion dialog (fixes #892) by @notdezzi in #1569
- LR-EDIT-OPTICS-PROFILE: Apply Nikon's in-file distortion correction for the Z 6II, Z 8 and Z f by @endthestart in #1570
- Fetch: refuse a redirect from https to http (#1531) by @MarekSpodBiedry in #1571
- Reject PEF streams that end before the pixels do instead of decoding zero padding (#1514) by @MarekSpodBiedry in #1576
- Refuse Open/New Library while an import is running (#1509) by @MarekSpodBiedry in #1578
- M5.6: Dehaze while zoomed no longer resamples the whole original on every pan and slider step by @dev-null-undefined in #1419
- M5.7: perf harnesses for slider latency, zoom windows and photo loading (examples only) by @dev-null-undefined in #1421
New Contributors
- @snofla made their first contribution in #997
- @MarkusFriedel made their first contribution in #1250
- @marcoarnulfo made their first contribution in #1280
- @csidirop made their first contribution in #1282
- @mattsivak made their first contribution in #1302
- @untypequicode made their first contribution in #1314
- @menno-zeilstra made their first contribution in #1361
- @rwoldberg made their first contribution in #1024
- @OneSlips made their first contribution in #1052
- @josenbobby made their first contribution in #1071
- @Madcat71 made their first contribution in #1125
- @ChippedW made their first contribution in #1174
- @diegozpy made their first contribution in #1179
- @rollroyces made their first contribution in #1182
- @atmikshetty made their first contribution in #1189
- @srikrishna-00 made their first contribution in #661
- @WladmirJunior made their first contribution in #982
- @csy2006 made their first contribution in #919
- @s17sh70x2jfl031ag made their first contribution in #1113
- @endthestart made their first contribution in #1565
- @NavidZamanKhan made their first contribution in #1598
- @skybluu made their first contribution in #1666
- @alvarohn made their first contribution in #1423
- @Claudio911015 made their first contribution in #1432
- @ArekatlaNishanthchowdary made their first contribution in #1439
- @smposara made their first contribution in #1453
- @notdezzi made their first contribution in #1569
Full Changelog: v0.7.1...v0.8.0