A data line such as `nan 0 0` starts with a letter and was skipped as an
unknown keyword, so a file with enough other entries still parsed.
(CodeRabbit review on #2540.)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
UPDATE_APP (native builds; craft-update is a native-only dependency) carries our 128 px icon and accent (#f2a516, its colour in ArtCraft Launcher). The updater, the self-update
helper and craft-update's startup prompt all get them through crate::UPDATE_APP; the
prompt draws the icon, the accent and "by ArtCraft" (craft-update's default developer).
craft-update is pinned to storytold/craft-libs main at 1065653e7 (#434).
Clippy fixes for Rust 1.99 in untouched code (same logic):
- crates/engine/src/cmd/export.rs
- crates/ui-egui/src/dialogs/rules_editor/rules_move.rs
- crates/ui-egui/src/panels/detail.rs
The existing synthetic lossy RGB fixture tiles are re-declared grey by a
header edit (colour space RGB to Grey, dropping the 6-bit primaries field
a grey encoding does not carry, per the ColourEncoding bundle). Their XYB
frame data is unchanged, so they decode as one grey plane whose rendered
channels differ. The test checks decode against the gradient's BT.2100
luminance in the linear and sRGB curves.
Refs #275
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014ti8KemZbjE2ZgHgV1q1BM
Lightroom Classic's HDR and panorama merges of monochrome raws store a
one-plane LinearRaw image as lossy (XYB) JPEG XL tiles whose codestream
declares a grey colour encoding (16-bit float with a linear curve, or
16-bit integer with the sRGB curve). Those were refused as "lossy JPEG XL
tile with a single colour plane", so the files opened preview-only.
A lossy grey tile is still coded as three XYB channels. It is now
restored like the RGB case: jxl-oxide renders linear sRGB (never the
declared encoding, which would clip), the single plane is the luminance
(CIE Y, D65) of that, then the declared transfer curve is applied.
One plane must be declared grey and three RGB; HDR curves, other white
points and intensity targets above 255 stay unsupported.
RENDER_CACHE_VERSION 70 -> 71: files that showed their embedded preview
before render from raw data now, under the same content key.
Refs #275
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014ti8KemZbjE2ZgHgV1q1BM
main denies cognitive complexity above 30: ok_label (now with the Export count), slideshow_export_body and contact_sheet_body each split out one part (the fixed labels, the summary line and the size rows). No behavior change.
The unsupported AI Denoise model dialog only closes, but its button said Install or Accept & Download; it now says Close, like the face model dialog. The export guide no longer bolds Export, which is not the label: the button names the photo count (Export 3 Photos).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Auto-Stack and Capture Time confirms reused the translation keys of a
noun ("Stack") and a field label ("Change"), so other languages showed
"Stapel" or "変更方法" on the button. They now have their own keys,
"Create Stacks" and "Change Time", in all 13 catalogs. Rename Keyword
says "Merge Keywords" when the new name already exists, as Rename
Person does. The Polish rename help says the file name changes.
The confirm label match is exhaustive now (no unreachable "OK" arm).
User guides, the Apple Photos note and the parity rows no longer tell
people to press OK in Export.
Tests read the text painted inside button:dialogOk, reach the plural
Export label, cover Auto-Stack and Slideshow Export plurals, Rename
Person, smart album Save, and check the German translation of the
verbs.
Co-Authored-By: Claude <noreply@anthropic.com>
The confirm button was "OK" in every dialog that had no special case:
New Album, Rename Photos, Auto-Stack, Capture Time, Export and more.
It now says what it does: Create, Rename, Stack, Change, Cull, Copy,
Paste, Export N Photos, and a verb per one-field prompt command.
"OK" stays only for a prompt opened with a command that has no verb.
The automation id button:dialogOk is unchanged.
Rename Photos' help text pointed at the Tags button without saying
what it does; it now says it lists template placeholders, and that
each file is renamed on disk with its XMP sidecar. Contact Sheet,
Auto-Stack and Slideshow Export said "1 photos" / "1 stacks"; their
nouns now agree with the count. All 13 catalogs updated.
Co-Authored-By: Claude <noreply@anthropic.com>