chore: sync upstream (206 Commits) #18
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!18
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "chore/sync-upstream-20261104"
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(206 Commits). Fast-Forward.a4017a3cFonts: bound named instances per file, index axis settings in style strings (#2215)5309d7d8Merge pull request #2291 from aiongg/integration-designcraft-20261104-1d30c2b1eMerge pull request #2271c3ea3178Merge pull request #2250b1f67ee4Merge pull request #22116c2ab93bMerge pull request #2231b46ee479pdf: placements of one media asset share one embedded file (#2266)a2cc32a8Apply review fixes3326d919Apply review fixese2c22660warichu: split long runs in one pass instead of trying every length (#2184)7faf7029fix(pdf): indexed membership in page ranges, optional content and PDF/X scans (#2207)36da81e0fix(textimport): bound xlsx data sources and make docx and hyphenation parsing linear (#2213)64c956f0fix(render): index line style groups, stop futile glyph-cache eviction, read PDF page sizes once (#2217)c4ed9b22fix: write screenshots, signing certificates and benchmark files in private temp folders (#2219)bcc74f29fix(app): log message line breaks continue the record instead of starting another (#2220)`indd` was the one git dependency taken from a branch: indd = { git = "https://github.com/storytold/indd-utils", branch = "main" } `Cargo.lock` pinned a commit, but any `cargo update` -- and `.github/dependabot.yml` runs them -- pulls whatever is on that branch into a parser of untrusted INDD files, with no review of what changed. The craft-libs dependencies beside it are all `rev = "b926b5c0..."`. Pinned to `7f3060e5bce78d21ea70e0d5eacb96edce15dfbe`, which is the commit the lock already held: the only change in `Cargo.lock` is the source string, `?branch=main` to `?rev=7f3060e5...`, so no code moves with this. Verified: `cargo check --locked -p designcraft-engine` passes, and `indd_files_go_through_the_converter_and_its_errors_are_open_errors` still passes, so the converter is the same one. Audit DC-18.The warnings composed every story once with no page. For a frame on a parent page that is wrong twice over, and I measured both: exportPdf {"pages": [2]} ["the story in frame 9: 76 character(s) do not fit and are not in the export"] Page 2 used no parent at all, so nothing of that frame was in its export to be missing -- and the warning named no page, because a parent frame has no document page of its own. It now resolves the pages that draw the parent page and reports only those: {"pages": [1]} ["page 1: 76 character(s) ... frame 9 ..."] {"pages": [2]} [] The second half is page-dependent text. A parent frame 112 pt wide holding "Continued on page <marker>" fits while the number is one digit and does not once it is two, so composing it once could not tell: {"pages": [1]} [] {"pages": [9]} [] {"pages": [10]} ["page 10: 1 character(s) ..."] {} ["pages 10, 11, 12: 1 character(s) ..."] Each page that shows the parent is composed as that page, and the pages are grouped by how much they lose, so a story still gets one line. Also from review: `story.get` now says `overset` is a UTF-8 byte offset into `text`, not a character index. A test measures the difference on French text, where the offset runs ahead of the character count.Found while testing crates/engine/src/script.rs:50-54 (parse, compact `command {json}` branch) Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com> Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>A fontFamily the app doesn't have was applied with a null result, so a script that asked for Courier Prime exported the PDF in the substitute and exited 0. The font is still applied, since documents can carry missing fonts and Find Font and preflight list them, but type.char now returns {"warnings": ["Missing font: Courier Prime (using Source Sans 3)"]}, or "Missing font style: ..." for a style the family doesn't have, in preflight's words. Other calls still return null.