chore: sync upstream (23 Commits) #14

Merged
alf merged 23 commits from chore/sync-upstream-20261031 into main 2026-10-31 17:13:26 +00:00
Owner

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

  • e6a5cd05 DOCX: a paragraph naming an undefined style is formatted as Normal, as in Word (#5077) (#5104)
  • 401c6c0d References: a table of contents writes its page numbers as PAGEREF fields, as Word does (#5097)
  • 8afe6bef fix: translate highlighting color tooltips (#5008)
  • 6dae5a1d Detect CSV separator from the first non-blank line (#5042)
  • 3d966e24 Treat and as empty comments in HTML import (#5040)
  • a4bcf05e Layout: a kept heading goes over with a three-line paragraph that widow control moves whole (#4991)
  • c9349771 Keytips: Alt, F shows the Backstage pages' letters; Alt, F, P and Alt, F, V print (#4960) (#4981)
  • a2f38756 Printing: the print job's PDF leaves out link annotations, so documents with links print (#4734) (#4817)
  • 54517ace Word count: each Chinese and Japanese character is a word (#4547) (#4629)
  • a2446aa3 View › Macros opens a dialog to run, delete and record macros (#4327) (#4426)
  • 028d413a #3676: page parameters saturate instead of wrapping to page one (#4289)
  • eecbb8fe Merge pull request #5035 from aiongg/docs-tidy
  • a20fd621 Merge pull request #5037 from aiongg/update-result-dialog
  • 9baacc31 updates: show check results with craft-update's CheckResultDialog
  • e8ea394f docs: tidy wording
Upstream-Sync von `upstream/main` (23 Commits). Fast-Forward. - e6a5cd05 DOCX: a paragraph naming an undefined style is formatted as Normal, as in Word (#5077) (#5104) - 401c6c0d References: a table of contents writes its page numbers as PAGEREF fields, as Word does (#5097) - 8afe6bef fix: translate highlighting color tooltips (#5008) - 6dae5a1d Detect CSV separator from the first non-blank line (#5042) - 3d966e24 Treat <!--> and <!---> as empty comments in HTML import (#5040) - a4bcf05e Layout: a kept heading goes over with a three-line paragraph that widow control moves whole (#4991) - c9349771 Keytips: Alt, F shows the Backstage pages' letters; Alt, F, P and Alt, F, V print (#4960) (#4981) - a2f38756 Printing: the print job's PDF leaves out link annotations, so documents with links print (#4734) (#4817) - 54517ace Word count: each Chinese and Japanese character is a word (#4547) (#4629) - a2446aa3 View › Macros opens a dialog to run, delete and record macros (#4327) (#4426) - 028d413a #3676: page parameters saturate instead of wrapping to page one (#4289) - eecbb8fe Merge pull request #5035 from aiongg/docs-tidy - a20fd621 Merge pull request #5037 from aiongg/update-result-dialog - 9baacc31 updates: show check results with craft-update's CheckResultDialog - e8ea394f docs: tidy wording
alf added 23 commits 2026-10-31 17:13:25 +00:00
OpenSSF Scorecard (v5.6.0, 4.0/10) flagged:
- Token-Permissions: release.yml granted contents: write at the top level.
  Now read at the top, write on the release job only (same effective access).
- Security-Policy: no SECURITY.md. Added one pointing to GitHub private
  vulnerability reporting (already enabled on the repo).
- Vulnerabilities: ctutils 0.4.3 -> 0.4.7 (RUSTSEC-2026-0385); clipboard-win
  5.4.1 -> 5.4.3 (yanked).

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* fix(flatpak): allow reading launcher version pins

* fix(flatpak): allow reading launcher version pins
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Updates: shared check-result dialog from craft-update
docs: tidy agent, contributor and asset docs
* fix(engine): saturate page parameters on 32-bit and wasm (#3676)

The file.exportPng and edit.goto paths cast a u64 page to usize and subtracted one. On 32-bit and wasm, page 2^32 truncated to 0 and the subtraction wrapped to page 1 (a debug panic).

Add p::page_index, which saturates instead of wrapping, and use it in both engine paths. The MCP render path already has the same guard on main; the new tests also pin that behavior.

Regression tests cover the helper, Go To, PNG export and the MCP render path.

* fix(engine): guard caret.set page cast too (#3676)

caret.set takes a 0-based page; pg as usize truncated on 32-bit and wasm and could select page 0. Use the same checked conversion and add a regression test.

---------

Co-authored-by: Brandon Thomas <echelon@gmail.com>
* View › Macros opens a dialog to run, delete and record macros (#4327)

* Docs: date the Macros dialog row and bump the ui-parity status line (#4327)

---------

Co-authored-by: Brandon Thomas <echelon@gmail.com>
count_words split only on whitespace, so unspaced Chinese or Japanese
text counted as one word per run. Word counts each Han ideograph and
kana as a word; Hangul (spaced) still counts by tokens. Fixes the status
bar, the Word Count dialog and NUMWORDS, which all use count_words.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
* #4734: the print job's PDF leaves out link annotations

craft-print refuses to fit a page with annotations to the paper ("flatten page annotations
before using shrink-to-fit"), and the desktop app always prints with ShrinkToFit, so any
document with a hyperlink or a TOC (its entries are links) failed to print. Links print
nothing; `PdfOptions::links` (default on) lets the print job leave them out. Exported PDFs
keep them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* #4734: review — the print note is in every desktop column; gaps and progress log

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* #4734: doc wording: the print PDF omits link annotations; hardware still to validate

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* #4734: only the printer's PDF drops links; Save these pages as PDF keeps them

Session::print_job_pdf is what ui.printSubmit sends to the spooler, without
link annotations; Session::print_pdf (file.printPdf) keeps them again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
* Keytips: Alt, F shows the Backstage pages' letters; Alt, F, P and Alt, F, V print (#4960)

Keytips ended as soon as File opened the Backstage, so Alt, F, P and
Word's older Alt, F, V (Print Preview) did nothing. Alt, F now badges the
side menu with Word's letters (Home H, New N, Open O, Info I, Save S,
Save As A, Print P, Export E, Close C, Options T), and V opens the Print
page too, as it does in Word. A page picked this way acts as a click on
it does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Keytips: closing the Backstage ends its page letters (#4960)

The Backstage closed by its back chevron or a mouse Save while Alt, F's
badges showed left keytips waiting for a page letter. The next key was
eaten instead of typed, and picked a page with the Backstage gone: C
closed the document and S saved it. Keytips now end with the Backstage.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Keytips: keep the doc comment on works_without_document; ui-parity and ROADMAP rows (#4960)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
Keep with next asked for two lines of the paragraph after a kept heading under widow/orphan
control. A three-line paragraph cannot split at all there (two lines and a widow, or an orphan
and two), so it moved over whole and left the heading alone at the foot of the page. Word moves
the heading with it: ask for all three lines in that case.

Co-authored-by: dfgodvan <180286157+dfgodvan@users.noreply.github.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
* Treat <!--> and <!---> as empty comments in HTML import

Found while testing crates/formats/src/html/lexer.rs:70-73 (Lexer::next, `<!--` branch)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Docs: file-format-parity HTML row for empty comments (#5040)

---------

Co-authored-by: Claude Haiku 5.5 <noreply@anthropic.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
Found while testing crates/engine/src/cmd/mailings/recipients.rs:6-18 (csv_separator)

Co-authored-by: Claude Haiku 5.5 <noreply@anthropic.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
A hyperlinked TOC wrote each entry's page number as plain text inside the
link. Word writes it as a PAGEREF _Toc… \h field, so Update Field in Word
moves the number with its heading; with plain text the numbers stay what
they were when the file was saved.

Entries that link to a bookmark now end with that field (result: the page
number). Entries without a link and \n levels are unchanged. The DOCX span
test looks for the TOC's own end, the last one, since PAGEREF fields now end
inside it.

Co-authored-by: dfgodvan <180286157+dfgodvan@users.noreply.github.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
DOCX: a paragraph naming an undefined style is formatted as Normal, as in Word (#5077) (#5104)
Some checks failed
ci.yml / DOCX: a paragraph naming an undefined style is formatted as Normal, as in Word (#5077) (#5104) (push) Failing after 0s
nix.yml / DOCX: a paragraph naming an undefined style is formatted as Normal, as in Word (#5077) (#5104) (push) Failing after 0s
packaging-lint.yml / DOCX: a paragraph naming an undefined style is formatted as Normal, as in Word (#5077) (#5104) (push) Failing after 0s
sonarcloud.yml / DOCX: a paragraph naming an undefined style is formatted as Normal, as in Word (#5077) (#5104) (push) Failing after 0s
ci.yml / DOCX: a paragraph naming an undefined style is formatted as Normal, as in Word (#5077) (#5104) (pull_request) Failing after 0s
nix.yml / DOCX: a paragraph naming an undefined style is formatted as Normal, as in Word (#5077) (#5104) (pull_request) Failing after 0s
packaging-lint.yml / DOCX: a paragraph naming an undefined style is formatted as Normal, as in Word (#5077) (#5104) (pull_request) Failing after 0s
sonarcloud.yml / DOCX: a paragraph naming an undefined style is formatted as Normal, as in Word (#5077) (#5104) (pull_request) Failing after 0s
Printing / Print (macos-latest) (pull_request) Has been cancelled
Printing / Print (ubuntu-24.04) (pull_request) Has been cancelled
Printing / Print (windows-latest) (pull_request) Has been cancelled
Printing / Print (macos-latest) (push) Has been cancelled
Printing / Print (ubuntu-24.04) (push) Has been cancelled
Printing / Print (windows-latest) (push) Has been cancelled
e6a5cd05f0
A pStyle id the style sheet doesn't define gave an empty style chain, so the
paragraph got the document defaults alone. Word formats it as Normal: a Pandoc
footer naming an undefined Footer style was taller than Word's and pushed the
last paragraph of the page over.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
alf merged commit e6a5cd05f0 into main 2026-10-31 17:13:26 +00:00
alf deleted branch chore/sync-upstream-20261031 2026-10-31 17:13:26 +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/wordcraft!14
No description provided.