chore: sync upstream (19 Commits) #23

Merged
alf merged 19 commits from chore/sync-upstream-20261109 into main 2026-11-09 11:08:59 +00:00
Owner

Upstream-Sync von upstream/main (19 Commits). Fast-Forward.

  • bb54c44a Command API: refuse a page index past the end, and say how many pages went (#2460)
  • f7d3b3b3 Merge pull request #2506 from dotCooCoo/chore/craft-update-1b34eba41
  • 79953b8a Updates: take craft-update from craft-libs main at 1b34eba41
  • b08d60b9 Merge pull request #2488 from dotCooCoo/chore/craft-update-updater-fixes
  • ded1e9f5 Merge pull request #2505 from Silvertree2010/fix/h14080-rtf-import-puts-the-text-of-head
  • 55729a51 Skip RTF header/footer left, right and first-page groups on import
  • a337204c Geom: step budget in Pencil fit, stripe band cap, balanced Pathfinder union (#2251)
  • 49f6b85c Merge pull request #2037 from r31lin/fix/gpu-largest-buffer
  • 076c6b1a Updates: the updater reports installing, ready, installed and failed, and installs at exit
  • b0c3f85c Merge pull request #2480 from Silvertree2010/fix/h12511-xlsx-cell-reference-parser-accep
  • 5da2393e Reject signed row numbers in XLSX cell references
  • 2e9b46c1 Merge pull request #2479 from Silvertree2010/fix/h12181-file-new-and-file-savepreset-acc
  • 8e341179 Apply review fixes
  • 4a7fc340 Clamp negative gutter in file.new and file.savePreset to 0
  • 9cf4e3a3 Merge pull request #2477 from Silvertree2010/fix/h11767-gradient-expanded-stops-does-not
Upstream-Sync von `upstream/main` (19 Commits). Fast-Forward. - bb54c44a Command API: refuse a page index past the end, and say how many pages went (#2460) - f7d3b3b3 Merge pull request #2506 from dotCooCoo/chore/craft-update-1b34eba41 - 79953b8a Updates: take craft-update from craft-libs main at 1b34eba41 - b08d60b9 Merge pull request #2488 from dotCooCoo/chore/craft-update-updater-fixes - ded1e9f5 Merge pull request #2505 from Silvertree2010/fix/h14080-rtf-import-puts-the-text-of-head - 55729a51 Skip RTF header/footer left, right and first-page groups on import - a337204c Geom: step budget in Pencil fit, stripe band cap, balanced Pathfinder union (#2251) - 49f6b85c Merge pull request #2037 from r31lin/fix/gpu-largest-buffer - 076c6b1a Updates: the updater reports installing, ready, installed and failed, and installs at exit - b0c3f85c Merge pull request #2480 from Silvertree2010/fix/h12511-xlsx-cell-reference-parser-accep - 5da2393e Reject signed row numbers in XLSX cell references - 2e9b46c1 Merge pull request #2479 from Silvertree2010/fix/h12181-file-new-and-file-savepreset-acc - 8e341179 Apply review fixes - 4a7fc340 Clamp negative gutter in file.new and file.savePreset to 0 - 9cf4e3a3 Merge pull request #2477 from Silvertree2010/fix/h11767-gradient-expanded-stops-does-not
alf added 19 commits 2026-11-09 11:08:59 +00:00
egui-wgpu doubles its vertex buffer when a frame outgrows it, and wgpu's
default largest buffer is 256 MiB. Opening a 160-page InDesign catalogue
produced a frame with 137 MB of vertices; egui-wgpu asked for a 275 MB
buffer, the device refused it and the app stopped. The device now takes
the adapter's own largest buffer, as it already did for the texture side
(2047 MiB on DirectX 12 here), and the log says both limits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- apps/designcraft/src/main.rs
Found while testing crates/color/src/gradient.rs:~101-110 (expanded_stops); the unclamped value comes from crates/idml/src/import/swatches.rs:128-129

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- crates/pdf/src/gradient_inks.rs
Clamp midpoint in Gradient::expanded_stops like sample does
Found while testing crates/engine/src/cmd/file/new.rs:179 (apply_settings: `nd.gutter = f64_or(p, "gutter", nd.gutter)`); compare crates/engine/src/cmd/layout/margins.rs:101 (`g.max(0.0)`)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- crates/engine/src/cmd/file/new.rs
Clamp negative gutter in file.new and file.savePreset to 0
Found while testing crates/textimport/src/xlsx.rs:15

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Reject signed row numbers in XLSX cell references
craft-update moves from c5a1cbfb to c7c84230 on dotCooCoo/craft-libs, a
branch that merges storytold/craft-libs#687 and #696 into craft-libs main.

The check result window shows for every status but idle and stays closed
while the startup prompt is open. At the first start after an update it
reports that the update installed or why it failed. Its Restart to Update
calls Updater::restart_to_update. The install helper now starts when the
app exits and drops the updater.
Ask the graphics device for the adapter's largest buffer
* geom: step budget in freehand fit, stripe band cap, balanced unions

* move test
Found while testing crates/textimport/src/rtf.rs:43-63 (SKIP list) and :201 (`SKIP.contains(&word.as_str())`)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Skip RTF header/footer left, right and first-page groups on import
Updates: the updater reports installing, ready, installed and failed, and installs at exit
Updates: take craft-update from craft-libs main at 1b34eba41
Command API: refuse a page index past the end, and say how many pages went (#2460)
Some checks failed
ci.yml / Command API: refuse a page index past the end, and say how many pages went (#2460) (pull_request) Failing after 0s
nix.yml / Command API: refuse a page index past the end, and say how many pages went (#2460) (pull_request) Failing after 0s
sonarcloud.yml / Command API: refuse a page index past the end, and say how many pages went (#2460) (pull_request) Failing after 0s
ci.yml / Command API: refuse a page index past the end, and say how many pages went (#2460) (push) Failing after 0s
nix.yml / Command API: refuse a page index past the end, and say how many pages went (#2460) (push) Failing after 0s
sonarcloud.yml / Command API: refuse a page index past the end, and say how many pages went (#2460) (push) Failing after 0s
bb54c44ad9
* Command API: refuse a page index past the end, and say how many pages went

layout.pages.delete answered ok for an index past the last page and deleted nothing for it, so a caller off by one removed a different range and read a success; on a 336-page book that is page 337 instead of 336. Both commands now check every index against the document and refuse it with the sentence the MCP export commands have used since #70, return how many pages they touched so a no-op and a success are told apart, and state in their params that the indices count from 0.

* Pages: count the pages a delete will remove, not the indices it was given

delete_pages refused [0, 0, 1, 2] on a four-page document as if it would leave none, because the guard measured the length of the list instead of the pages it names. Same family as the index check next to it: the count was of the wrong thing. A test in the engine pins it.

* Pages: refuse a malformed page list instead of dropping what it cannot read

Review finding: page_indices used filter_map, so a list holding a string, a fraction or nothing at all was silently shortened — the caller was told a page was handled when it never was, which is the same mistake the command now refuses one level down. Every entry must be a whole number, and pages must be a list. Tests cover all three shapes, and the new test functions carry docstrings so the coverage check has nothing to report.
alf merged commit bb54c44ad9 into main 2026-11-09 11:08:59 +00:00
alf deleted branch chore/sync-upstream-20261109 2026-11-09 11:09:00 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
iris/designcraft!23
No description provided.