github storytold/lightcraft v0.5.0
LightCraft v0.5.0

5 hours ago

What's Changed

  • Integrate community fixes, batch 1 (18 PRs + follow-ups) by @bflatastic in #349
  • LR-IMP-FORMATS: RW2 format 8: decode each 2×2 cell column by column by @radialmonster in #255
  • Fix Nikon NEF CropArea and embedded preview colour space by @Hanmo123 in #257
  • Correct global Tint direction (compatibility review) by @Hanmo123 in #258
  • Web: prune the thumbnail cache to the configured budget (#245) by @itsmunzir in #267
  • Issue #180: ICC profiles carry a fixed header date, so exports are byte-identical by @wstock in #268
  • Issue #182: library.select and id queries reject a photo id that is not in the library by @wstock in #269
  • LR-IMP-FORMATS: ORF colour-filter layout from the file's Exif CFAPattern by @marek-hubar in #277
  • Preserve embedded preview aspect ratios by @stano-bustor in #280
  • Issue #166: snapshot --script exits non-zero when a scripted request fails by @wstock in #284
  • Issue #157: colour-range mask tolerance narrowed so a sample stops at its own colour by @wstock in #285
  • Issues #181, #183: app.export refuses unknown params and bad values; watermark keys documented and range-checked by @wstock in #287
  • Issues #164, #169: --memory sessions write nothing — no ui.json, no settings folder by @wstock in #288
  • Issue #266: filmstrip labels cut file names on characters, not bytes by @wstock in #289
  • Issue #187: the filmstrip highlights every selected photo, not only the active one by @wstock in #292
  • TIFF: invert WhiteIsZero once, and decode 1-, 2- and 4-bit samples by @Issuenate in #300
  • LR-EXP-WATERMARK: shape Japanese vertical watermark glyphs by @midasdf in #311
  • Fix Windows Explorer reveal path and platform file manager labels (#272) by @peiyan0 in #324
  • macOS menu: single-key shortcuts reach egui (E, C, ⇧P, ratings…) by @xak47d in #261
  • Integrate community PRs, batch 2 (14 PRs + follow-ups; stacked on #349) by @bflatastic in #350
  • RW2/RWL: apply the distortion correction Panasonic and Leica cameras record in the file by @radialmonster in #262
  • LR-PROF-CAMERACOLOR: fit the camera look away from edges when a lens-corrected JPEG misaligns (#232) by @radialmonster in #263
  • Desktop: write log records to a rotating log file as well as standard error by @switch87 in #286
  • macOS DMG: branded window background and icon layout by @XusBadia in #297
  • Sidebar: Folders section — explore the library by the folders photos were imported from by @nledford in #307
  • Improve library culling shortcuts and color label feedback by @Hanmo123 in #308
  • Crop: stop at image edge, lock aspect on every handle, visible lock + custom ratio (#295) by @nledford in #312
  • Add trackpad image zoom and pan with stable cursors by @sebastianpfluegelmeier in #313
  • Select All selection visuals and re-importing deleted photos (#298) by @nledford in #325
  • engine, ui: support imported LUT profiles in profile dropdown and browser (#328) by @peiyan0 in #333
  • Issue #168: the desktop app and CLI log warnings to stderr; RUST_LOG works by @DWAA1660 in #340
  • Import: Shift-click checks or unchecks a range of photos in the review (#338) by @MarekSpodBiedry in #347
  • Fetch: opt-in bearer token, validated file specs, borrowed FileSpec, download_url by @voshart in #259
  • Integrate community PRs, batch 3: German + Russian UI, Fujifilm compressed RAF, raw fixes (stacked on #350) by @bflatastic in #363
  • Added Russian language by @wondarkus in #264
  • Decode Fujifilm compressed RAFs and add guarded camera colour support by @sebastianpfluegelmeier in #282
  • Issue #234: Windows opens links (Map button) in the browser, not File Explorer by @MarekSpodBiedry in #339
  • LR-IMP-FORMATS: NEF lossy type 2 curve of version 0x44 0x40 spans a quarter of the sample range by @radialmonster in #358
  • M16: Add German interface localization by @marceldenzer in #265
  • LR-IMP-CAMERA-COVERAGE: read Canon ColorData stored as bytes, so PowerShot and EOS M CR2s get their as-shot white balance by @radialmonster in #356
  • Fix #322: type an exact value into a slider by @bflatastic in #352
  • Fix #316: the section eye switches Light, Color and Detail off, and can be clicked by @bflatastic in #353
  • Fix #341: By Date and Keywords rows show their photos from All Photos by @bflatastic in #354
  • AI masks: the worker stops counting a job as pending before it replies by @bflatastic in #365
  • Fix #293: undo and redo show the photo they change by @bflatastic in #364
  • Fix #319: release builds pin craft-fonts with Noto Sans CJK SC (includes #203) by @bflatastic in #361
  • Docs: allow Noto CJK (via craft-fonts) for Chinese text by @echelon in #203
  • Fix #171: a library that can't be locked opens with a warning the user sees by @bflatastic in #369
  • Part of #260: a desktop start that fails says why, in a message box naming the log by @bflatastic in #370
  • Integrate #279 (Canon CR3 decoding) and #362 (file dialog filters) by @bflatastic in #375
  • M11.1: add CR3 decoding and measured Canon lens correction by @wrgdbtry in #279
  • Fix #372: masking tile labels and long mask names stay inside their boxes by @bflatastic in #379
  • Fix #366: the SAM 3 dialog without a download location shows how to install by hand by @bflatastic in #381
  • Fix #371: Spanish interface by @bflatastic in #382
  • Part of #372: painted-text layout tests from #376 by @bflatastic in #383
  • Integrate #373 (keymap editor), #218 (Lightroom catalog import), #367 (parallel import copies), #344 (import file types) by @bflatastic in #389
  • Import Lightroom Classic catalogs natively by @bogusyogi in #218
  • Integrate part of #374 (bounded folder walks, launch imports off the UI thread) and #385, #386, #387 by @bflatastic in #394
  • LRC-LIB-LIBFOLDERS: a chosen folder that follows a move keeps its names' case and the platform's separators by @radialmonster in #385
  • M11.4: the X-T20 corpus RAF is fitted since the away-from-edges retry by @radialmonster in #386
  • LRC-LIB-LIBFOLDERS: the sidebar rename test builds its folder ids with forward slashes on Windows by @radialmonster in #387
  • Integrate #391 and #393 (undecodable raws import as preview only), with a work budget for the JPEG scan by @bflatastic in #398
  • LR-IMP-FORMATS: TIFF raws with a thumbnail-only IFD0 import as preview only, not as a tiny image by @radialmonster in #391
  • LR-IMP-FORMATS: raws we cannot decode import as preview only when any usable JPEG is embedded by @radialmonster in #393
  • Header-only import probes (part of #367), PSD RLE allocation bounds, and #397 (CR3 C-RAW clipped highlights) by @bflatastic in #401
  • LR-IMP-FORMATS: CR3 C-RAW samples that overshoot the bit depth are clamped, not rejected by @radialmonster in #397
  • Fix #310 (CR2/PEF starting look) and integrate #402 (menus stay below the menu bar) by @bflatastic in #405
  • Fix #189: in-window menus and submenus stay below the menu bar by @ragtux in #402
  • Fix #374: troubleshooting for the NVIDIA shader-cache startup hang by @bflatastic in #409
  • Integrate #407 (file dialogs off the UI thread) and #408 (macOS top-bar drag and zoom) by @bflatastic in #413
  • Fix #191: commands' file dialogs run off the UI thread by @ragtux in #407
  • Top bar: drag to move and double-click to zoom the window (macOS) by @nledford in #408
  • Integrate #351 (sharp zoomed Detail view, #323) with follow-ups by @bflatastic in #419
  • Sharp zoomed Detail view: render at the drawn size and render the visible window at the zoom scale (#323) by @nledford in #351
  • Integrate #403, #411, #412, #414, #415, #416 by @bflatastic in #424
  • Part of #260: Help ▸ Open Log Folder shows the log file in the file manager by @ragtux in #403
  • M16: use paintable separators in localized UI text by @midasdf in #411
  • M16: keep grapheme clusters intact in vertical watermarks by @midasdf in #412
  • PSD: as_chunks in the palette and 16/32-bit plane loops (clippy 1.98) by @Exalted5373 in #414
  • LR-IMP-FORMATS: no overflow deciding whether to scale a full-size JPEG decode by @Exalted5373 in #415
  • LR-IMP-PROFILES: XMP preset import fixes (bookkeeping, LensProfileEnable, channel curves) by @Exalted5373 in #416
  • Integrate #429, #426, #422, #395, #172, #173, #174, #335, #427 by @echelon in #439
  • Faces: model manifests, an ONNX probe, and Settings ▸ Faces (no runtime yet) by @voshart in #172
  • Faces: YuNet face detection and one-click model downloads (nothing bundled) by @voshart in #173
  • Faces: recognition in pure Rust, People view, and the Settings > Faces model manager by @voshart in #174
  • LR-IMP-FORMATS: HEIC/HEIF decode behind the optional heif feature by @hemna in #335
  • LR-BEHAV-HEADLESS: keep snapshots on the CPU and bound viewport dimensions by @sanyamsingh001 in #395
  • Web: the window wire test allows the CPU/GPU difference by @Exalted5373 in #426
  • Format support from #327: JPEG XL DNG, gain table map (not rendered), semantic mattes, BaselineSharpness, camera-space WB by @Exalted5373 in #427
  • LR-IMP-FORMATS: 12-bit raws packed in 32-bit little-endian words (Coolpix NRW, FinePix S1 / X-A10 / SL1000) and the NRW black level by @radialmonster in #429
  • MENU-BAR: pointing at another menu title switches the open menu by @radialmonster in #422
  • Integrate #423, #359 by @echelon in #440
  • feat: run SAM3 masks on a remote Metal worker by @joshuaswarren in #359
  • Albums tree: matching tree view, create inside folders, drag to move and order by @nledford in #423
  • AI RAW denoise with opt-in models and pure-Rust CPU/GPU inference by @voshart in #384
  • CI: restore green FreeBSD builds by @echelon in #445
  • Integrate #453, #470, #482, #492, #433, #465 by @echelon in #511
  • LR-IMP-FORMATS: CR3 photos render in the aspect ratio set in the camera by @radialmonster in #433
  • LR-IMP-FORMATS: read plain packed 12-bit PEF strips tagged as PackBits (older Pentax and Samsung GX-1L) by @radialmonster in #453
  • M11.1: decode EOS R7 C-RAW (odd-height CRX QP map) by @cookingwithsimon in #465
  • LR-IMP-FORMATS: report Sony A200/A230/A350 packed ARW as unsupported (preview fallback) by @radialmonster in #482
  • LR-IMP-FORMATS: decode Canon sRAW and mRAW CR2 from their data instead of the preview by @radialmonster in #492
  • LR-IMP-FORMATS: read the PEF colour-filter layout from the Exif CFAPattern for every compression by @radialmonster in #470
  • Integrate #489, #493, #495, #494, #444, #484, #477 by @echelon in #512
  • fix(macos): prevent SIGILL crash on exit by replacing viewport close … by @onemannoplan in #444
  • Fix #226: a refused Web Locks request no longer leaves the web app loading by @MarekSpodBiedry in #477
  • LR-BEHAV-GPU: compile DX12 shaders with FXC, never a stray dxcompiler.dll (issue #471) by @HarrisXiu in #484
  • LRC-LIB-CATALOG-IMPORT: import catalog crops that have no HasCrop by @rock-meister in #489
  • LRC-LIB-CATALOG-IMPORT: carry catalog crops through the photo orientation by @rock-meister in #493
  • LRC-LIB-CATALOG-IMPORT: import straightened catalog crops as Lightroom shows them by @rock-meister in #495
  • Keep Local import headers readable in narrow panes by @QuirkyTurtle94 in #494
  • Integrate #478, #368, #460, #449, #451, #468 by @echelon in #545
  • Issue #272: Show in Explorer selects photos whose path has a space by @MarekSpodBiedry in #368
  • M6: move radial masks by dragging inside their ellipses by @Hanmo123 in #449
  • Keep selection near deleted photos instead of jumping to the first by @midasdf in #451
  • fix #425: Restore Simplified Chinese font rendering by @henu043 in #460
  • catalog: group photos without capture date under Unknown Date (#437) by @peiyan0 in #468
  • Web restore: reject originals that don't match their content hash (#227) by @MarekSpodBiedry in #478
  • Integrate #474, #448, #447, #499, #459 by @echelon in #546
  • LR-IMP-FORMATS: decode lossy JPEG XL DNG tiles completely and without clipping by @radialmonster in #447
  • LR-IMP-FORMATS: decode Hasselblad 3FR files with uncompressed raw data by @radialmonster in #448
  • LR-IMP-FORMATS: decode Samsung SRW files with uncompressed raw data by @radialmonster in #459
  • LR-IMP-CAMERA-COVERAGE: xtask corpus verifies the sha256 of every downloaded corpus file by @radialmonster in #474
  • LR-PROF-CAMERACOLOR: fit the starting tone curve by quantile matching (no flat steps), old fit as fallback by @radialmonster in #499
  • Integrate #464, #273 by @echelon in #553
  • Camera local tone mapping (ProfileGainTableMap) as a per-photo opt-in by @BuonBreda in #273
  • MCP: core tools, resources, export progress and cancellation by @storybored379 in #464

New Contributors

Full Changelog: v0.4.0...v0.5.0

Don't miss a new lightcraft release

NewReleases is sending notifications on new releases.