chore: sync upstream (145 Commits) #14
No reviewers
Labels
No labels
herkunft/alpha-feedback
status
blockiert
status
zu-testen
typ
bug
typ
docs
typ
enhancement
typ
feature
typ
idea
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
iris/designcraft!14
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "chore/sync-upstream-20261030"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Upstream-Sync von
upstream/main(145 Commits). Fast-Forward.ea08e4c2UPD.1: honor app pretend versions in update checks (#2025)15d13ddeUpdate prompt shows the app icon and accent color instead of a letter (#2023)faccd431CI: workflows only call craft-common-actions at @main (#2018)baab062eMerge pull request #2021 from storytold/docs/roadmap-order-1029e7e780ecdocs: keep ROADMAP progress log newest first after batch landing34697fcbMerge pull request #1879 from PiMinusMax/inner-effects-follow-imagea1e9bea4Merge storytold/main into PR #18798636f426Merge pull request #1985 from VoiceLessQ/fix/1588-story-newlinesee50a741Merge storytold/main into PR #19853a11abcdMerge pull request #1990 from KnottyDyes/squad/discretionary-hyphen-breaks56decd96Merge storytold/main into PR #19907137006dMerge pull request #1238 from seanth/inline-objects-under-textb7e5b8f9Merge pull request #1952 from Silvertree2010/fix/h3606-tagged-text-import-accepts-a-sig7e841a07Merge pull request #1972 from VoiceLessQ/fix/1209-autoflow-parity-runaway9d9d3ab1Merge pull request #1893 from Silvertree2010/fix/h2824-xml-mapstyle-accepts-an-invalidFound while testing crates/textimport/src/tagged.rs:~93-100 (tagged_text, the `<cFont:{v}>` and `<cTypeface:{v}>` writes) Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com> Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>`place_image` stat'd and read its file for every record, so a sheet naming one image in many rows read it once per row -- up to 256 MiB each time. The audit's case is a 100,000-row CSV naming one large file: about 25 TB of I/O for one merge. A merge now carries an `ImageCache`: the bytes by resolved path, read once and shared. The asset takes the cached `Arc` rather than a copy, so the records share one buffer as well. The cache stops growing past 256 MB of distinct files, so a merge over many large images is slow rather than out of memory. Measured by counting what the engine hands the file system (`io::touched`): without the cache 50 reads for 25 records (a stat and a read each) with it 2 A note on the test, because the first one I wrote was useless: asserting on the bytes the document holds passes either way, since `add_asset` already dedupes identical content. Memory never showed this; the I/O is the bug, so the test counts reads. Audit DC-14. Its second half -- capping the pages a merge produces -- is not here: how many pages a merge may make is a product decision, and the records are the user's own data rather than something arriving from outside.A size that was given but is not one a table can have was corrected in silence: {"rows": 0} made a table with one row, -1 and 1.5 made the default four, and 10000 was capped at 500 -- so a script asking for a shape the command cannot honour got a different table and no indication of it. A size that is absent still takes the default; a size that is present and outside the range is refused, naming the key and the range. Rebased onto the post-split main: `table.insert` moved to table/structure.rs and the tests to table/sizing.rs. The helper is named `given` rather than `count`, which that module already imports from table/target.rs for the repeat count of a row or column insert.Found while testing crates/textimport/src/tagged.rs:~190 (the `n.starts_with("0x")` branch of import: `u32::from_str_radix(&n[2..], 16)`) Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com> Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>