Integrate upstream through 31a677fe and retain both sides of the progress
trackers. Document the import tile, preview regression tests and helpers
to address CodeRabbit's docstring coverage warning.
The slider behavior and native acceptance evidence are unchanged. The PR
contains no published user-guide edits. Human contributor: tylerphotos.
Validation: cargo xtask ci on the integrated tree before committing.
Co-Authored-By: Codex <noreply@openai.com>
Integrate upstream release 0.9.1 before submission and defer the unreleased
slider sentence from the published user guide. The final PR contains no
changes under docs/user; control and parity documentation remain included.
Contributor credit stays tylerphotos through the existing GitHub username
and matching commit author, with no custom personal-name entry.
Validation: cargo xtask ci on the integrated state; native control-channel
acceptance for slider sizes, selection, short-window layout and persistence.
Co-Authored-By: Codex <noreply@openai.com>
`cargo xtask ci` fails with the craft-fonts input supplied, which CLAUDE.md says
releases always build with:
ka in Proportional (faces: ["Noto Sans Georgian"]) lack glyphs: ✕
Two strings in ka.json use ✕ (U+2715). Noto Sans Georgian has no glyph for it
and egui's bundled fonts do not either, so a Georgian reader gets a blank where
the text describes the activity stack's stop control. Without the fonts input
those twenty tests skip, so a plain `cargo xtask ci` is green and this stayed
invisible.
The two Georgian values use × (U+00D7) instead: it reads the same at text size
and every face has it. The English keys are untouched — they are the source text
from docs/whats-new.md, and the test checks values, which is the right scope. An
English reader's font covers ✕; the problem is a translation carrying it into a
script whose face does not.
`translated_catalogs_do_not_use_missing_menu_triangles` already forbids ▸ and ▾
in locale JSON for the same reason, so ✕ joins them in one list. That matters
because ✕ is in the English source of those two strings: every language that
translates them next would hit the same failure, and a cheap test now catches it
instead of the font-dependent one.
Remember an independent 80-320 point size for import review thumbnails.
Reflow the grid without changing candidate checks, request density-aware
previews, and retain only nearby import textures and pending work.
Add control-channel access, interaction and persistence regressions, and
update the import guide, parity row and remaining loupe gap. This is the
thumbnail-size portion of #2056; pre-import loupe remains separate.
Correct Windows test portability issues exposed by the required gate:
a Unix-only import, export path comparisons and folder widget path ids.
Validation: cargo xtask ci; native control-channel acceptance including
small/large sizes, selection, short-window layout and restart persistence.
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.
Since the web zip moved from trunk to cargo xtask web (aeaf4154), packaging/web/package.sh needs the
wasm-bindgen CLI at Cargo.lock's version, and the shared release workflow installs only trunk, so
0.9.0's Web (wasm) job failed. In CI, install it first (as FilmCraft and EffectCraft do).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>