Commit Graph
345 Commits
Author SHA1 Message Date
David Mann 496d9f3623 Merge PR #10618: Map Stylize and Pixelate action events
With our fix-up 52cc86351b on top of the author's head. Conflicts resolved item by item (Rust), docs as unions; docs/atn.md regenerated at the end.
2026-11-02 03:10:21 +01:00
David Mann 5d6041c1cd Merge PR #10628: Map selection, clipboard and layer-operation ATN events
With our fix-up 0e41091687 on top of the author's head. Conflicts resolved item by item (Rust), docs as unions; docs/atn.md regenerated at the end.
2026-11-02 02:55:08 +01:00
yoriswind 33ee38b431 Merge main and preserve the Render gap update 2026-11-01 10:22:26 -08:00
yoriswind 7e0bf9ab6c Merge main and retain both gap log updates 2026-11-01 10:04:57 -08:00
aiongg 713197635d Merge origin/main into prefs/gpu-adapter-typed-read 2026-11-01 13:16:28 +00:00
yoriswind 0a605880dd Separate disabled ATN steps from supported Render counts 2026-10-31 21:11:28 -07:00
yoriswind d55830de94 Preserve noncanonical Group F descriptor headers 2026-10-31 20:57:09 -07:00
yoriswind 815f5bdad0 Preserve measured Trace levels through playback and save 2026-10-31 20:41:15 -07:00
yoriswind ec44d1711f Map ATN selection and layer-operation events 2026-10-31 19:59:52 -07:00
yoriswind 34ba5d0122 Preserve duplicate Render descriptor keys and correct ATN docs 2026-10-31 19:56:58 -07:00
yoriswind 53098879c0 Correct ATN mapping table and current parity notes 2026-10-31 19:42:20 -07:00
David Mann c5ad3ed53b Merge PR #9274: Support editing selected color channel sets
# Conflicts:
#	docs/gaps.md
#	docs/ui-parity.md
2026-10-30 14:28:46 +01:00
David Mann b2db24400e Merge main at b1cfff9d3 into integration batch 10
Conflicts resolved as unions of both sides: codecs re-exports (PngRows + TiffBands), smart_cmds source imports
(main's source_surface_from_buffer and cache API with #8571's svg_source_image_in/convert_svg_source; main's
duplicate rendering import dropped), io flat.rs test modules (#8536's banded TIFF tests and main's PNG ones),
menus/invoke.rs (#8571's smart SVG intercept and main's layer.selectUnderCursor), state.rs (#8311's
type_box_overflow and main's type_insertion_style), the canvas_geom test keeps the is_finite guard, docs
status lines keep both change lists, i18n catalogs keep both sides' rows (hi.tsv: main's wording where both
added the same string).
2026-10-30 14:28:02 +01:00
David Mann f5ae6d5276 Merge main into pr-9274-fixup
# Conflicts:
#	crates/ui-egui/src/canvas.rs
#	crates/ui-egui/src/dialogs/adjust_editors/curves.rs
#	docs/gaps.md
#	docs/target-app-parity.md
#	docs/ui-parity.md
2026-10-30 13:16:39 +01:00
FredApps 0f120bbda1 Merge current main, reconcile streamed PNG profiles and workflow inputs 2026-10-30 06:52:05 +01:00
FredApps 29bf828ec2 Merge upstream main into reviewed performance integration
Preserve both UI parity status entries; retain all reviewed performance changes.
2026-10-29 23:35:19 +01:00
FredApps 63637c4d80 Merge current main into trimmed integration, preserving exclusions and interpolation behavior 2026-10-29 21:31:18 +01:00
David Mann a3f8ef4816 Merge PR #8536: TIFF: images over 2^30 px open, decoded a group of rows at a time into the layer (#8169)
# Conflicts:
#	docs/file-format-parity.md
2026-10-29 21:06:41 +01:00
David Mann 355831f845 Merge PR #7621: Play .atn steps that switch to another open document
# Conflicts:
#	docs/gaps.md
2026-10-29 20:04:40 +01:00
David MannandClaude Opus 5.5 fefd90d576 Merge remote-tracking branch 'fork/integration-batch-10' into HEAD
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 19:16:12 +01:00
FredApps 255ecc81d0 Remove 21 requested PR contributions from the 108-PR integration
Retain 87 PRs. Reconcile overlapping integration fixes and update testing scope.
Removed: #7153 #7742 #5493 #9282 #3455 #9172 #3139 #3967 #4783 #5453 #8347 #1991 #3345 #4042 #4305 #4883 #4890 #5090 #6621 #5870 #5939.

Combined CI pending for this source; historical portable artifact is not applicable.
2026-10-29 18:49:17 +01:00
Khawar Zamman Wani a24e155a6f Merge upstream main into large TIFF fix 2026-10-29 22:39:27 +05:30
aiongg c645d5fcc9 Merge pull request #8896 from wanikhawar/select-mask-workspace
Select and Mask: Photoshop's full-window workspace (#7069, #8148)
2026-10-29 12:15:14 -04:00
David Mann afacb057f7 Merge origin/main into pr-8571-fixup
Conflicts: svg.rs (main's bufread inflate and shared render helper, kept
with the PR's bounded raster path), psd_import.rs (the PR's vector
preview moved into main's smart_content), menus/invoke.rs (the SVG
intercept moved into main's split invoke_unguarded), rendering.rs and
the ui-egui import lists (main's explicit imports), Cargo.lock, docs
status lines (unions).
2026-10-29 16:38:24 +01:00
FredApps fd3a12dfde Merge approved PhotoCraft PR #3142: Read applied Sony RAW metadata and crop ILCE-6000 images
Port behavior and regression coverage into current modules; preserve current upstream behavior.
Integrate bounded Sony SR2 metadata decoding and ILCE-6000 image area; preserve newer bit-depth-aware camera profile application and explicit file crop precedence. Keep current parity counts and original metadata/crop tests.
2026-10-29 06:38:44 +01:00
FredApps 1daf3bc079 Merge approved PhotoCraft PR #4890: Add scrollbar visibility preferences (#3262)
Port behavior and regression coverage into current modules; preserve current upstream behavior.
Port visibility preference, choice registration, live panel style and canvas override. Keep current animated camera and toolbar exclusions. Relocate misplaced persistence regression to prefs tests; retain current parity score counts.
2026-10-29 06:09:52 +01:00
FredApps c81347aaa8 Merge approved PhotoCraft PR #5493: Import Photoshop custom shape sets into the Shapes panel
Port behavior and regression coverage into current modules; preserve current upstream behavior.
Integrated bounded atomic CSH set parsing, unique shape/group naming and native Shapes panel import with inline-data authorization guards; preserved duplicate-name, inner-hole, malformed-second-record and preferences-reload regressions. Combined independent catalog additions and retained current parity metadata.
2026-10-29 05:47:45 +01:00
jonathanwxh-cell df290aca5c Merge upstream main into PR #7621, preserving feature and current progress documentation 2026-10-29 11:05:44 +08:00
Vlad Grankovsky 94c1ddcb2f Merge origin/main into codex/multi-channel-editing
Integrate main 69b8fd9c1, retaining multi-channel selection and editing through extracted channel-panel, Move-pointer and tone-editor helpers. Adapt explicit imports and preserve progress-document histories.
2026-10-29 00:37:26 +01:00
Khawar Zamman Wani e729ead4b2 Merge origin/main into fix/6501-multi-layer-free-transform 2026-10-28 09:22:55 +05:30
Khawar Zamman Wani 0ce7991aaa Merge origin/main into fix/8169-huge-tiff-open 2026-10-28 09:22:54 +05:30
Khawar Zamman Wani 4e22d214dc Merge origin/main into select-mask-workspace 2026-10-28 09:22:54 +05:30
Khawar Zamman Wani eccc20d1b2 Merge origin/main into perf/cropped-selection-blurs 2026-10-28 09:22:52 +05:30
RickiNanoandClaude Opus 5.5 599b85a7cd Merge main into prefs/gpu-adapter-typed-read
Integration batch 9 (#9775) raised the preference count to 181 and
added its own 2026-10-27 status lines and history rows to gaps.md and
ui-parity.md. Both sides are kept: the scorecard regenerates to 11 of
181 do nothing, the branch's entries say 181 and are dated 2026-10-27,
above main's 12-of-181 rows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 22:30:17 +01:00
RickiNanoandClaude Opus 5.5 3aff459ad8 Merge main into prefs/gpu-adapter-typed-read
Picks up the export speed work (#9877) and the rest of main. Main's
prefs audit now counts 180 preferences, so the regenerated scorecard
reads 11 of 180 do nothing, and the branch's doc entries say 180 to
match; the 2026-10-25 history rows keep their 178.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 20:27:58 +01:00
David MannandClaude Opus 5.5 1992cfcb9c Integration: parity docs dated 2026-10-27 with a history row for the scorecard count
CodeRabbit on #9775: the 12-of-181 count changed today, so ui-parity.md and gaps.md get the date in their status lines and a revision-history row, as AGENTS.md asks.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-27 20:21:26 +01:00
David MannandClaude Opus 5.5 5ccb6fb723 Merge main
Conflicts with main's batch #9880:
- psd file.rs / layer.rs: #5287 (PSB by encoded size, RLE tables widened on
  promotion) against #6583's lazy reader. Main's new widening and length code
  read `.data`, which #6583 leaves empty while the bytes stay in the source;
  it now goes through `encoded()` / `encoded_len()` (also the auto-merged
  lines in `rle_widening`, `encoded_len` and `LayerRecord::write`), and the
  lazy reader sets `write_as_psb: false`. New test
  `a_lazy_psd_promotes_to_the_same_psb_as_an_eager_one`: a lazily read PSD
  writes the same PSB bytes as an eager one; it fails with a `.data` read.
- direct_select.rs / vector_ui.rs: #9321's Type Path and #6353's hidden
  Work Path both kept.
- io tests main.rs: both modules. scorecard.md regenerated (12 of 181);
  ui-parity.md and gaps.md follow it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-27 19:49:42 +01:00
RickiNanoandClaude Opus 5.5 5558e4a2d0 Merge main into prefs/gpu-adapter-typed-read
Main split crates/engine/src/prefs.rs into prefs/ and moved the
gpu_startup tests to gpu_startup/tests.rs: read_section now sits beside
read_lenient in prefs/store.rs, and the malformed-sibling assertions
moved with the tests. Doc status lines and revision rows keep both sides.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 18:32:23 +01:00
David MannandClaude Opus 5.5 199092edfd Integration: a failed favourite toggle shows as an error; preference count from the scorecard (#6526)
CodeRabbit on #9775: FontLibrary::finish wrote a failed type.font.favorite to the status bar as plain information; it now sets status_error like the other status writes. The regenerated scorecard counts 12 of 179 preferences that do nothing; ui-parity.md and gaps.md still said 178.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-27 18:18:49 +01:00
David Mann 3a689f217c Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	crates/engine/src/file_cmds.rs
#	crates/engine/src/retouch_cmds.rs
#	crates/engine/src/vector_cmds.rs
#	crates/io/src/psd_export.rs
#	crates/io/src/psd_import.rs
#	crates/io/src/smart_map.rs
#	crates/psd/src/layer.rs
#	crates/raster/src/lib.rs
#	crates/ui-egui/src/camera_raw_ui.rs
#	crates/ui-egui/src/canvas.rs
#	crates/ui-egui/src/filter_dialog.rs
#	crates/ui-egui/src/gpu_canvas.rs
#	crates/ui-egui/src/panels.rs
#	crates/ui-egui/src/retouch_ui.rs
#	crates/ui-egui/src/transform_tool.rs
#	crates/ui-egui/src/vector_ui.rs
#	docs/gaps.md
2026-10-27 14:26:26 +01:00
jonathanwxh-cell f97eb2849a Merge upstream main and resolve custom shape import conflicts
Preserve CSH import behavior, inline-data authorization policy, localization and regression tests while retaining upstream module extraction.

Local verification: formatting and independent static review passed. Parser/engine/automation/UI runtime, broader Clippy, WASM and visual gates remain incomplete locally because of resource limits. Hosted CI must establish remaining gates; this commit does not claim the PR is ready to merge.
2026-10-27 19:47:58 +08:00
jonathanwxh-cell 56ef54cf4c Merge upstream main and resolve conflicts for PR #7621
Preserve the PR's intended behavior and regressions while retaining upstream module extraction and changes. Formatting and independent static review passed.

Local verification: Runtime tests and broader Clippy/WASM/integration gates remain unverified locally because of resource limits.

Local UI verification is incomplete. Hosted CI must establish the remaining gates; this commit does not claim the PR is ready to merge.
2026-10-27 19:34:27 +08:00
Vlad Grankovsky 8ca3410a54 Merge origin/main into codex/multi-channel-editing
Integrate main 7ac7b8b10 with selection morphology and cropped feather-mask optimizations. Preserve both progress-document histories.
2026-10-27 11:31:28 +01:00
Don Omondi 285770532b Merge main into embedded vector save-back
Resolve conflicts with the engine's cmd/ module move and the per-crate
integration test binaries. Run a selected VectorCraft.app bundle directly
(identified by bundle id) and reject nested gzip in bounded SVG parsing.
2026-10-27 11:59:56 +03:00
Khawar Zamman Wani 67172a9d08 Merge origin/main into fix/6501-multi-layer-free-transform 2026-10-27 11:57:10 +05:30
Khawar Zamman Wani ec1ca061ef Merge origin/main into fix/8169-huge-tiff-open 2026-10-27 11:56:24 +05:30
Khawar Zamman Wani 26d0b9c41c Merge origin/main into select-mask-workspace 2026-10-27 11:55:36 +05:30
Khawar Zamman Wani e65f25fbeb perf(selection): crop Smooth and Feather command masks 2026-10-27 10:56:00 +05:30
David Mann 63e2c7d100 Merge PR #9031: fix(io): preserve Halftone Pattern smart filters in PSD/PSB
# Conflicts:
#	docs/file-format-parity.md
#	docs/gaps.md
2026-10-27 02:23:29 +01:00
714b8f304d Integration: the reference application's Halftone Pattern keys HlSz/ScrT (#9031)
The PR read and wrote Halftone Pattern as `Sz  ` and `Ptrn` (enum `HlfT`:
`Dt  `/`Crc `/`Ln  `). The reference application's Filter Gallery uses `HlSz`
for the size and a `ScrT` enum (`ScrD` dot, `ScrC` circle, `ScrL` line), so a
Halftone Pattern saved there still opened as an opaque filter, and one we saved
lost its size and pattern there without a warning. The tests built their fixture
with the same keys as the code, so they passed either way.

Now the keys match, a default Halftone Pattern (HlSz 1, Cntr 5, ScrD) opens as
{size 1, contrast 5, dot} (fails before this commit), and descriptors with the
old keys stay verbatim. The docs no longer claim reopen checks in the reference
application.

Co-authored-by: denstu473 <63150090+denstu473@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 02:20:49 +01:00