bflatastic
a92066c47c
Merge PR #842
...
# Conflicts:
# crates/pipeline/src/spots.rs
# docs/gaps.md
# docs/parity-checklist.md
2026-10-13 12:28:56 +07:00
bflatastic
ac40fa3882
Merge PR #1195
...
# Conflicts:
# docs/gaps.md
# docs/parity-checklist.md
# docs/ui-parity.md
2026-10-13 12:28:52 +07:00
bflatastic
5f81dfcdde
Merge PR #1014
...
# Conflicts:
# crates/pipeline/src/spots.rs
# docs/gaps.md
# docs/parity-checklist.md
2026-10-13 12:28:48 +07:00
bflatastic
9b5f38039d
Merge PR #1002
...
# Conflicts:
# crates/pipeline/src/spots.rs
2026-10-13 12:28:46 +07:00
bflatastic
6690034b10
Merge PR #1067
...
# Conflicts:
# crates/ui-egui/locales/de-formats.json
# crates/ui-egui/locales/de.json
# crates/ui-egui/locales/es-formats.json
# crates/ui-egui/locales/es.json
# crates/ui-egui/locales/fr-formats.json
# crates/ui-egui/locales/fr.json
# crates/ui-egui/locales/ja-formats.json
# crates/ui-egui/locales/ja.json
# crates/ui-egui/locales/pt-br-formats.json
# crates/ui-egui/locales/pt-br.json
# crates/ui-egui/locales/ru-formats.json
# crates/ui-egui/locales/ru.json
# crates/ui-egui/locales/uk-formats.json
# crates/ui-egui/locales/uk.json
# crates/ui-egui/locales/zh-hans-formats.json
# crates/ui-egui/locales/zh-hans.json
# crates/ui-egui/locales/zh-hant-formats.json
# crates/ui-egui/locales/zh-hant.json
# docs/gaps.md
2026-10-13 12:28:42 +07:00
bflatastic
d84b295e23
Merge PR #1124
...
# Conflicts:
# crates/ui-egui/locales/de-formats.json
# crates/ui-egui/locales/de.json
# crates/ui-egui/locales/es-formats.json
# crates/ui-egui/locales/es.json
# crates/ui-egui/locales/fr-formats.json
# crates/ui-egui/locales/fr.json
# crates/ui-egui/locales/ja-formats.json
# crates/ui-egui/locales/ja.json
# crates/ui-egui/locales/pt-br-formats.json
# crates/ui-egui/locales/pt-br.json
# crates/ui-egui/locales/ru-formats.json
# crates/ui-egui/locales/ru.json
# crates/ui-egui/locales/uk-formats.json
# crates/ui-egui/locales/uk.json
# crates/ui-egui/locales/zh-hans-formats.json
# crates/ui-egui/locales/zh-hans.json
# crates/ui-egui/locales/zh-hant-formats.json
# crates/ui-egui/locales/zh-hant.json
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-13 12:28:38 +07:00
bflatastic
e0c1c415e5
Merge PR #1128
...
# Conflicts:
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-13 12:28:36 +07:00
bflatastic
1ea573ebfd
Merge PR #1152
...
# Conflicts:
# docs/parity-checklist.md
2026-10-13 12:28:33 +07:00
bflatastic
639ff976e2
Merge PR #1117
...
# Conflicts:
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-13 12:28:31 +07:00
bflatastic
ece9bd83e4
Batch 32: one tracker row per id (rows two PRs both edited), parity summary refreshed
2026-10-13 12:05:26 +07:00
bflatastic
fa3dfbbc4a
Merge PR #1238
...
# Conflicts:
# crates/pipeline/src/spots.rs
# crates/ui-egui/src/panels/edit.rs
# docs/parity-checklist.md
2026-10-13 11:06:46 +07:00
bflatastic
84d6849cf3
Merge PR #1216
...
# Conflicts:
# crates/engine/src/files.rs
# crates/ui-egui/locales/de-formats.json
# crates/ui-egui/locales/de.json
# crates/ui-egui/locales/es-formats.json
# crates/ui-egui/locales/es.json
# crates/ui-egui/locales/fr-formats.json
# crates/ui-egui/locales/fr.json
# crates/ui-egui/locales/ja-formats.json
# crates/ui-egui/locales/ja.json
# crates/ui-egui/locales/pt-br-formats.json
# crates/ui-egui/locales/pt-br.json
# crates/ui-egui/locales/ru-formats.json
# crates/ui-egui/locales/ru.json
# crates/ui-egui/locales/uk-formats.json
# crates/ui-egui/locales/uk.json
# crates/ui-egui/locales/zh-hans-formats.json
# crates/ui-egui/locales/zh-hans.json
# crates/ui-egui/locales/zh-hant-formats.json
# crates/ui-egui/locales/zh-hant.json
# docs/parity-checklist.md
2026-10-13 11:06:28 +07:00
bflatastic
ed1d641f22
Merge PR #1174
...
# Conflicts:
# crates/catalog/src/lock.rs
# crates/pipeline/src/spots.rs
# docs/parity-checklist.md
2026-10-13 11:06:26 +07:00
bflatastic
32253d862a
Merge PR #1017
...
# Conflicts:
# crates/pipeline/src/spots.rs
# docs/gaps.md
# docs/parity-checklist.md
2026-10-13 11:05:54 +07:00
bflatastic
4e78514948
Merge PR #1324
...
# Conflicts:
# docs/gaps.md
# docs/parity-checklist.md
# docs/raw-parity.md
# docs/whats-new.md
2026-10-13 11:05:53 +07:00
bflatastic
bac147a460
Merge PR #1189
...
# Conflicts:
# docs/parity-checklist.md
2026-10-13 11:05:48 +07:00
bflatastic
2181c69162
Merge PR #1151
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:05:47 +07:00
bflatastic
8df468bfc6
Merge PR #1246
...
# Conflicts:
# crates/pipeline/src/spots.rs
# docs/parity-checklist.md
2026-10-13 11:05:44 +07:00
bflatastic
8ca6a835ec
Merge PR #1411
...
# Conflicts:
# crates/ui-egui/locales/pt-br.json
# docs/whats-new.md
2026-10-13 11:05:35 +07:00
bflatastic
94808da369
Merge PR #1250
...
# Conflicts:
# crates/ui-egui/src/tests_panels.rs
2026-10-13 11:04:33 +07:00
bflatastic
edfe7c6351
Merge PR #1242
...
# Conflicts:
# crates/ui-egui/src/tests_panels.rs
# docs/parity-checklist.md
2026-10-13 11:04:32 +07:00
bflatastic
1c473ed64c
Merge PR #1361
2026-10-13 11:03:53 +07:00
bflatastic
cb8aa0b017
Merge PR #1341
2026-10-13 11:03:11 +07:00
bflatastic
d3c024e4df
Merge PR #1047
...
# Conflicts:
# crates/pipeline/src/spots.rs
# docs/gaps.md
2026-10-13 11:03:10 +07:00
bflatastic
76fd9b9ae8
Merge PR #805
...
# Conflicts:
# docs/camera-preview-colour.md
# docs/parity-checklist.md
2026-10-13 11:02:58 +07:00
bflatastic
62b1ba04d0
Merge PR #1367
2026-10-13 11:02:55 +07:00
bflatastic
c7e259b3ce
Merge PR #1297
...
# Conflicts:
# docs/parity-checklist.md
# docs/raw-parity.md
# docs/whats-new.md
2026-10-13 11:02:49 +07:00
bflatastic
bcbcf3b968
Merge PR #1357
...
# Conflicts:
# docs/parity-checklist.md
# docs/raw-parity.md
# docs/whats-new.md
2026-10-13 11:02:48 +07:00
bflatastic
695eb6acc5
Merge PR #1282
...
# Conflicts:
# docs/parity-checklist.md
2026-10-13 11:02:44 +07:00
bflatastic
5e430d057f
Merge PR #1301
2026-10-13 11:02:40 +07:00
bflatastic
9e0f00c557
Merge PR #1222
...
# Conflicts:
# docs/parity-checklist.md
2026-10-13 11:02:40 +07:00
bflatastic
18bd8fd881
Merge PR #1397
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:01:53 +07:00
bflatastic
a39567306b
Merge PR #1071
...
# Conflicts:
# docs/parity-checklist.md
2026-10-13 11:01:52 +07:00
bflatastic
14b111f6f5
Merge PR #1344
...
# Conflicts:
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-13 11:01:49 +07:00
bflatastic
ecf1236b7c
Merge PR #1150
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:01:46 +07:00
bflatastic
f28b9c46d3
Merge PR #1051
...
# Conflicts:
# crates/pipeline/src/spots.rs
# docs/gaps.md
# docs/parity-checklist.md
2026-10-13 11:01:45 +07:00
bflatastic
6aabe43386
Merge PR #1023
...
# Conflicts:
# ROADMAP.md
# crates/pipeline/src/spots.rs
# docs/gaps.md
# docs/parity-checklist.md
2026-10-13 11:01:44 +07:00
bflatastic
b9b6bf57de
Merge PR #1020
...
# Conflicts:
# docs/parity-checklist.md
2026-10-13 11:01:43 +07:00
bflatastic
64b3361125
Merge PR #1340
...
# Conflicts:
# docs/gaps.md
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-13 11:01:42 +07:00
bflatastic
44684b7950
Merge PR #1288
...
# Conflicts:
# docs/parity-checklist.md
# docs/raw-parity.md
# docs/whats-new.md
2026-10-13 11:01:41 +07:00
bflatastic
61c3042efe
Merge PR #1280
...
# Conflicts:
# docs/parity-checklist.md
# docs/raw-parity.md
# docs/whats-new.md
2026-10-13 11:01:40 +07:00
bflatastic
2fc2419fa1
Merge PR #1193
...
# Conflicts:
# docs/parity-checklist.md
2026-10-13 11:01:37 +07:00
bflatastic
1543fef701
Merge PR #1268
2026-10-13 11:01:01 +07:00
bflatastic
b56f052a59
Merge PR #1387
2026-10-13 11:00:58 +07:00
bflatastic
43799cc903
Merge PR #1296
2026-10-13 11:00:48 +07:00
bflatastic
a6369c4009
Merge PR #1264
2026-10-13 11:00:47 +07:00
Nathaniel Ledford and Claude Opus 5.5
58822f6229
LR-BEHAV-LOCALIZE: strong text is heavier in scripts whose fallback face is a variable font
...
The semibold family had a semibold Inter but, for other scripts, the same
regular craft-fonts faces as regular text, so a heading or the chosen tab
in Arabic was drawn at regular weight beside bold Latin.
A fallback face with a weight axis (today Noto Sans Arabic, 100 to 900)
is now registered a second time for the semibold family at weight 600,
through epaint's FontTweak::coords. The bytes are borrowed from the
embedded font, not copied. Faces with one fixed weight, regular and
monospace text, the order of fallbacks and Latin are unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-12 21:15:57 -04:00
Marco Arnulfo
e1b29a3fd4
LR-IMP-CAMERA-COVERAGE: Nikon D7100 NEFs develop at Lightroom's frame, so its crops line up ( fixes #1248 )
2026-10-13 02:16:52 +02:00
dev-null-undefined and Claude
f47fb86077
LR-BEHAV-GPU: say once when no GPU is found, instead of quietly rendering on the CPU
...
With GPU rendering on and no graphics adapter at all (wgpu: "no GPU adapter among …", e.g. no
Vulkan loader: a `cargo run` outside `nix develop` on NixOS), every render ran on the CPU, much
slower, and only Settings ▸ Performance, Help ▸ System Info and `perf.gpuReason` said why.
The desktop app now queues one start-up notice per session once the device has been tried
(`gpu::ready()`, never blocking): "No graphics processor found: LightCraft renders on the CPU, which
is much slower. Details in Help → System Info.", on Linux with "On NixOS, start it from `nix
develop`." (→, not ▸: no installed font paints ▸.) `panels::notices::gpu_notice` decides from the
reason: nothing when the GPU was turned off (preference, LIGHTCRAFT_GPU, LIGHTCRAFT_GPU_BACKEND=off),
only a software adapter was skipped, or it failed later. Headless sessions and tests never show it
(`app.gpu_notice` is set by the desktop app only). Translated in all nine catalogs; one README
sentence in the Nix section.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-10-13 01:58:40 +02:00
Marco Arnulfo
cd3a942376
LR-EDIT-LIGHT-CURVE-POINT: ⌥-drag moves a curve point a tenth as far, for fine adjustment ( fixes #1363 )
2026-10-13 00:47:34 +02:00