Commit Graph
1811 Commits
Author SHA1 Message Date
francoisgnandClaude Opus 5.5 103ffb07ee Integration: one 2026-10-21 section in What's New (#2506 and #2502 each opened one)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 14:07:03 +03:00
francoisgn 7680e38add Merge upstream/main (0.13.0, incl. #2494 as merged) 2026-10-23 12:47:10 +03:00
Dylan M. Taylor beb044bf35 Merge pull request #2494 from storytold/sonar-fix/path-cmd-hardening
security: validate CLI paths/args in dev tools (SonarCloud S2083/S8707/S8705)
2026-10-22 19:27:49 -04:00
Dylan M. Taylor ac2d7623e3 security: tighten readable/regular file checks in CLI tools 2026-10-22 19:18:41 -04: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 997a13591a Merge PR #1603: LRC-LIB-KEYWORDS: the Keyword List marks a keyword that has
# Conflicts:
#	crates/ui-egui/locales/id-formats.json
#	crates/ui-egui/locales/pl-formats.json
#	crates/ui-egui/locales/sv-formats.json
#	docs/parity-checklist.md
2026-10-22 22:31:23 +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 35eb26f6d4 Merge PR #1644: fix(gpu): no popup when renderer falls back from DX12 at pro 2026-10-22 22:31:16 +03:00
francoisgn dee97e5ff9 Merge PR #1499: Fix graphic watermark aspect/orientation and HDR JPEG file-s
# Conflicts:
#	docs/parity-checklist.md
2026-10-22 22:31:16 +03:00
francoisgn 5b4c0e79c2 Merge PR #1976: GUM-3201: Reduce guided-filter coefficient allocations 2026-10-22 22:31:15 +03:00
francoisgn ef0e27a140 Merge PR #2494: security: validate CLI paths/args in dev tools (SonarCloud S 2026-10-22 22:31:14 +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 7710af915a Merge PR #1878: LR-MERGE-HDR: click the merge preview to zoom in, drag to pa
# Conflicts:
#	docs/parity-checklist.md
2026-10-22 22:31:04 +03:00
francoisgn 6ed7741f6f Merge PR #2502: LRC-LIB-IMPORT: month names in date templates (%B January, %
# Conflicts:
#	docs/whats-new.md
2026-10-22 22:31:04 +03:00
francoisgn 1938bc3845 Merge PR #2422: PERF-SMART: count every smart album once per pass, not once
# Conflicts:
#	docs/whats-new.md
2026-10-22 22:31:03 +03:00
francoisgn 007047a3bb Merge PR #2205: LR-IMP-DRAGDROP: files dragged over the window show what a d
# Conflicts:
#	crates/ui-egui/locales/cs.json
#	crates/ui-egui/locales/de.json
#	crates/ui-egui/locales/es.json
#	crates/ui-egui/locales/fi.json
#	crates/ui-egui/locales/fr.json
#	crates/ui-egui/locales/id.json
#	crates/ui-egui/locales/it.json
#	crates/ui-egui/locales/ja.json
#	crates/ui-egui/locales/ka.json
#	crates/ui-egui/locales/pl.json
#	crates/ui-egui/locales/pt-br.json
#	crates/ui-egui/locales/ru.json
#	crates/ui-egui/locales/sv.json
#	crates/ui-egui/locales/uk.json
#	crates/ui-egui/locales/vi.json
#	crates/ui-egui/locales/zh-hans.json
#	crates/ui-egui/locales/zh-hant.json
#	crates/ui-egui/src/state.rs
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-22 22:30:24 +03:00
francoisgn e297b9ab7a Merge PR #1846: i18n(pl): finish the format messages, counts right for every
# Conflicts:
#	crates/ui-egui/locales/pl-formats.json
#	docs/localization-parity.md
#	docs/localization.md
#	docs/parity-checklist.md
2026-10-22 22:30:06 +03:00
francoisgn 77f313a0f2 Merge PR #2506: Edit Capture Time leaves a capture time it can't fully read
# Conflicts:
#	crates/ui-egui/src/lib.rs
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-22 22:29:19 +03:00
francoisgn 927e071873 Merge PR #2453: Web: the page title names the open photo and unsaved changes
# Conflicts:
#	docs/web.md
2026-10-22 22:28:50 +03:00
francoisgn cbedf7b5b1 Merge PR #2455: Web: lightcraft.command refuses params that aren't a JSON ob 2026-10-22 22:28:42 +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 a52a709ef5 Merge PR #2279: LR-LIB-CULL: adjustable burst gap and similarity in Assisted
# Conflicts:
#	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 1bbea3346f Merge PR #2345: feat(shortcuts): Lock Aspect Ratio as a listed row on A 2026-10-22 22:28:40 +03:00
francoisgn 4e75723da5 Merge PR #2327: #2312: culling goes on from a photo rated out of the view
# Conflicts:
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-22 22:28:40 +03:00
francoisgn be5735abf4 Merge PR #2501: LR-VIEW-INFOOVERLAY: the info overlay clears the macOS windo 2026-10-22 22:28:40 +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
francoisgn 3e273e9fbb Merge PR #1922: LR-VIEW-ZOOM: a middle-button drag pans the photo whatever t
# Conflicts:
#	docs/parity-checklist.md
2026-10-22 22:27:59 +03:00
francoisgn 878f49cac6 Merge PR #1979: LR-EDIT-COLOR-GRADING: a wheel drag holds the pointer and pu
# Conflicts:
#	crates/ui-egui/src/lib.rs
2026-10-22 22:27:59 +03:00
francoisgn 5bbf12dfcd Merge PR #1914: LR-BEHAV-DIALOGS: optionally close a dialog by clicking outs 2026-10-22 22:27:50 +03:00
francoisgn e08255a825 Merge PR #1313: Help ▸ Debug ▸ Show Frame Rate: a frame-rate display for wat 2026-10-22 22:27:50 +03:00
francoisgn 86c650f840 Merge PR #2195: MENU-BAR: menu switches are named for what they show, and no
# Conflicts:
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-22 22:27:50 +03:00
francoisgn 1489f47384 Merge PR #2077: LR-BEHAV-BG-TASKS: one progress bar, spinner and busy button
# Conflicts:
#	crates/ui-egui/src/lib.rs
#	docs/whats-new.md
2026-10-22 22:27:49 +03:00
francoisgn a05bc77ce0 Merge PR #2076: LR-LIB-RATING: one shared star rating for every rating on sc
# Conflicts:
#	docs/whats-new.md
2026-10-22 22:27:34 +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
mahmatias d1ccdc4775 docs(parity): LR-CROP-ASPECT notes crop.lockAspect as its own A row 2026-10-22 10:05:28 -03: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
Nathaniel Ledford 2525613e3e LR-PREF-GENERAL: the slide preview stays above the Slideshow page while the templates are browsed 2026-10-22 08:26:54 -04:00
Nathaniel Ledford 193d294822 LRC-LIB-KEYWORDS: a blank line sets the new What's New heading apart 2026-10-22 07:29:52 -04:00
Nathaniel Ledford d431579f52 LRC-LIB-KEYWORDS: the checklist's dot-indicator sentence stands outside the "Not yet" list 2026-10-22 07:28:31 -04: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
Nathaniel LedfordandClaude Opus 5.5 c2145d176e LRC-LIB-KEYWORDS: the Keyword List marks a keyword that has an applied keyword inside it
With `Places|Italy|Rome` on the selected photos, the boxes of `Places`
and `Italy` were empty: a folded keyword gave no sign that something in
it was applied.

A keyword whose own box is empty now carries a dot in it when the
selection has a keyword inside it, at any depth, and the box's tooltip
names what is inside ("Inside: Rome, Venice", four by name, then a
count). The tick and the dash stay about the keyword itself and come
first: a keyword the photos have themselves shows that, not the dot. A
click on the box does what it did.

What is inside each keyword is worked out with the ticks, once per
selection (`Ticks::inside`), not per row and frame.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 07:08:40 -04:00
Nathaniel LedfordandClaude Opus 5.5 5d1f9da46c LR-LIB-RATING: say which surfaces share the star row
The parity row and the What's New heading said one star rating 'everywhere', but the
Set Rating / Select By Rating menu rows and the grid context menu are separate menu
items with star text and are unchanged. Name the real scope.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 02:03:25 -04:00
Nathaniel LedfordandClaude d04633d308 LR-LIB-RATING: one shared star rating component
The bottom bar, the Info panel and the filter bar each drew their own
row of stars, and the grid badge, filmstrip badges and compare caption
had private painter loops. They now share rating::Rating (a clickable
row: hover previews, clicking the current rating clears it, read-only
and disabled states, left/right arrows on a focused star) and
rating::paint_rating / paint_star for painter-only contexts.

Existing automation ids (star:bottom:n, star:info:n, filter:starN) are
unchanged. The preset, profile and theme favourite stars use
paint_star too, so Icon::Star lives only in rating.rs.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-22 02:03:17 -04:00
Nathaniel LedfordandClaude b0f184da33 LR-BEHAV-BG-TASKS: one progress bar, spinner and busy button
Progress bars were five raw egui::ProgressBar calls with fixed widths
(240, 260, 380), one hand-drawn bar in the activity stack, and a stock
spinner; text-only waits had no sign of life. progress.rs now has
Progress (a clamped, NaN-safe fraction or a gentle sweep when unknown,
fills the layout's width, announced as a progress indicator with its
percentage and registered by id) and a vector-arc spinner. Button::busy
shows the spinner in the icon's place, keeps the width, ignores clicks
and is announced busy.

Thumbnails still being made draw a themed skeleton colour (a Tokens
field, static) in the grid, the filmstrip and Compare, instead of a
literal grey that was nearly black on the light themes.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-22 02:02:47 -04:00
Nathaniel Ledford 870106a6df MENU-BAR: the new fi, id, sv and vi catalogs carry the renamed menu entries; Parity checklist header names the rename 2026-10-22 02:01:37 -04:00
Nathaniel LedfordandClaude Opus 5.5 5b4f120e8d MENU-BAR: edit-a-photo guide names the view Detail View
Step 1 now uses the current menu label. verified stays 0.7.1 until a release
contains the renamed labels (docs/user/AGENTS.md).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 02:00:58 -04:00
Nathaniel LedfordandClaude 434da7ae68 MENU-BAR: menu switches are named for what they show, and no two commands share a name
Switches read "Show Focus Point ✓" next to "Filmstrip ✓"; now every switch
is named for the thing and the check mark says whether it is on (Focus
Point, Clipping, Photo Counts, Mask Overlay, All Mask Overlays, Mask Pins,
Layout Image). Show Original stays: it is a view, not a switch.

Names that meant two things: View ▸ Detail and the Edit section Detail
(Detail View now, like Reference View), Window ▸ Edit and the Edit menu
(Edit Panel), Compare and Compare Before and After (Before/After Side by
Side, next to Split and Top/Bottom), and Clear/Discard Preview Cache (one
command, now Discard Preview Cache everywhere). New labels in all 13
catalogs. Tests: no "Show …" switch; no two menu commands share a label or
a menu's name.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-22 02:00:54 -04:00
Nathaniel LedfordandClaude f84347a88e LR-IMP-DRAGDROP: review follow-ups
A finished scan waits for an open dialog before opening its review; drops are refused while an import runs (and, on the web, while a dialog is open); orphaned doc comment restored to builtin_label.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-22 01:58:50 -04:00
Nathaniel LedfordandClaude 266f623480 LR-IMP-DRAGDROP: show what a file drop will do and open the import review
While files are dragged over the window a veil and a card say what dropping
does (review N items, import N presets, open the face model; close the open
dialog first when one is open). Dropped photos and folders open the import
review like File > Import; Settings > Import can import them at once. A drop
while a dialog is open is refused with a toast. The web build now reports
unreadable and failed drops. Adds the control request ui.dropFiles.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-22 01:58:44 -04:00