Commit Graph
898 Commits
Author SHA1 Message Date
NetterSilverandClaude Haiku 5.5 b6af19ae35 Keep multi-paragraph slide titles on one line in outline export
Found while testing crates/format/src/lib.rs:490

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 07:15:31 +02:00
skylar taylor-barrick 1b64de3499 Merge pull request #816 from albayazid/fix/outline-tables-814
Format: .txt and .md outline includes table cell text (#814)
2026-10-15 22:48:23 -06:00
skylar taylor-barrick ad6be08603 Merge pull request #798 from Silvertree2010/fix/h1435-paste-from-html-text-inside-b-st
Don't paste HTML text as bold when <b> sets font-weight:normal
2026-10-15 22:43:42 -06:00
skylar taylor-barrick e5620b538a Merge pull request #797 from Silvertree2010/fix/h1447-outline-import-deletes-leading-a
Keep leading '-', '*' and '•' text when importing outlines
2026-10-15 22:43:12 -06:00
skylar taylor-barrick f4731822c9 Merge pull request #854 from dylanmtaylor/ci/add-windows-arm64
ci: add shared Windows ARM64 and nix checks
2026-10-15 21:26:51 -06:00
Dylan M. Taylor f9af68a06f ci: add shared Windows ARM64 and nix checks 2026-10-15 20:48:37 -04:00
skylar taylor-barrick be2f10d8cb Merge pull request #822 from Silvertree2010/fix/h1632-slide-duplicate-appends-the-copy
Keep slide.duplicate copies next to their source in the section
2026-10-15 18:29:50 -06:00
skylar taylor-barrick acea4e3f14 Merge pull request #847 from Silvertree2010/fix/h1767-shape-connect-and-shape-sites-po
Reject shape ids beyond u32 in shape.connect, sites and points
2026-10-15 18:29:04 -06:00
NetterSilverandClaude Haiku 5.5 d7509e7ad6 Reject shape ids beyond u32 in shape.connect, sites and points
Found while testing crates/engine/src/cmd/shape.rs:1154 (shape_id, used by connect/sites); same pattern at crates/engine/src/cmd/points.rs:358-359 and :432-433

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 22:09:59 +02:00
NetterSilverandClaude Haiku 5.5 595d8f17c1 Keep slide.duplicate copies next to their source in the section
Found while testing crates/engine/src/cmd/slide.rs:217-220

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 16:07:07 +02:00
Sazid Al Bayazid 59d5893793 Format: .txt and .md outline includes table cell text (#814)
slides_to_outline only looked at sh.text, which regular text boxes and
placeholders carry. Tables store their text in cells inside
ShapeKind::Table, so convert to .txt or .md silently skipped every
table cell — with exit 0 and no warning.

The outline now walks into tables: each row becomes a tab-separated
line (multi-paragraph cell text is flattened with spaces). Verified
with the issue's python-pptx repro: the four cell texts appear after
the slide title and text box body.

Tests: a deck with a text box and a 2x2 table — the outline contains
all three text sources.
2026-10-15 18:53:01 +06:00
skylar taylor-barrick 0954289c62 Use the shared PDF writer and report font embedding failures (#708)
Use the pinned shared PDF writer with explicit font embedding errors, preserving app-owned rendering and current main. All seven local gates and fresh Ubuntu/FreeBSD checks passed on the exact integration tree; paired native/WASM PDF bytes, structure, text and pixels match. Original contributor commits are preserved.
2026-10-15 18:51:30 +06:00
NetterSilverandClaude Haiku 5.5 062adfe405 Don't paste HTML text as bold when <b> sets font-weight:normal
Found while testing crates/engine/src/cmd/richclip.rs:187

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 08:52:15 +00:00
NetterSilverandClaude Haiku 5.5 aa681eafad Keep leading '-', '*' and '•' text when importing outlines
Found while testing crates/format/src/lib.rs:421

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:43:29 +02:00
skylar taylor-barrick 9859da3925 Use the shared PDF writer and report font embedding failures (#708)
Use the pinned shared PDF writer with explicit font embedding errors, preserving app-owned rendering and current main. All seven local gates and fresh Ubuntu/FreeBSD checks passed on the exact integration tree; paired native/WASM PDF bytes, structure, text and pixels match. Original contributor commits are preserved.
2026-10-14 21:20:34 -06:00
skylar taylor-barrick 09c7f60567 PDFW2: integrate current main with shared PDF writing 2026-10-14 21:00:04 -06:00
Brandon Thomas 155c1cfce2 Merge PR #776 from skylartaylor: ci: add comfortable runtime limits to unbounded jobs 2026-10-14 22:42:44 -04:00
skylartaylor 6b03a3f29c ci: add comfortable runtime limits to unbounded jobs 2026-10-15 04:27:05 +02:00
Brandon ThomasandClaude Opus 5.5 a15d93acdd Fix up #747 and #772 from review: docs keep their status headers (log rows stay), no milestone renaming; the bullet test no longer saves screenshots; clippy's as_chunks in the bullet render test
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:00:48 -04:00
Brandon Thomas 561902d0b3 Merge PR #772 from hajdukste: Text: show gray list markers before typing
# Conflicts:
#	crates/render/src/tests.rs
#	crates/text/src/tests.rs
2026-10-14 21:59:44 -04:00
Brandon Thomas a74191dba4 Merge PR #747 from MMexicann: MCP: validate reply IDs and bounded response frames (#718) 2026-10-14 21:59:44 -04:00
Brandon Thomas 593fd215ff Merge PR #773 from Silvertree2010: Grow table merges to include merged areas they overlap 2026-10-14 21:59:39 -04:00
Brandon Thomas 1cba8f0f60 Merge PR #769 from switch87: Preferences: Interface size applies when the slider is let go 2026-10-14 21:59:39 -04:00
Brandon Thomas 404d303c2e Merge PR #768 from switch87: Render: a cropped picture keeps its resolution (Intersect no longer blurs it) 2026-10-14 21:59:39 -04:00
Brandon Thomas e4fd7a29cc Merge PR #760 from albayazid: Text: anchorCtr centres the drawn text block - right-aligned text stayed glued to the box edge (#736) 2026-10-14 21:59:39 -04:00
Brandon Thomas 0b870df463 Merge PR #759 from midasmatterhorn: text: a bare normAutofit draws at 100% and an edit stores the fitted scale (#724) 2026-10-14 21:59:39 -04:00
Brandon Thomas 816f256c5f Merge PR #758 from midasmatterhorn: control: a request that timed out while queued is abandoned, never run late (#719) 2026-10-14 21:59:38 -04:00
Brandon Thomas 60fa10f99f Merge PR #757 from switch87: Preferences: Cancel, Esc and the close button undo the dialog's changes (#752) 2026-10-14 21:59:38 -04:00
Brandon Thomas 82ef9642a2 Merge PR #749 from midasmatterhorn: media: walk ID3 tag chains iteratively so crafted files cannot overflow the stack 2026-10-14 21:59:38 -04:00
Brandon Thomas 672d86c0e4 Merge PR #746 from IanHollow: Add an editor screenshot to AppStream metadata 2026-10-14 21:59:38 -04:00
Brandon Thomas 54d3f19b5b Merge PR #738 from xmaks82: Fonts: falling back to the default face no longer deadlocks 2026-10-14 21:59:38 -04:00
Brandon Thomas 2c57163549 Merge PR #734 from switch87: Slide: a new slide's body goes into the layout's content placeholder 2026-10-14 21:59:38 -04:00
skylar taylor-barrick 0cbe475f13 fix(pdf): reconcile writer with notes and handout masters (PDFW)
Preserve notes and handout master export, visible text and native parallel
compression while propagating shared font errors through each export path.
Keep the dependency check accurate for native and WASM feature resolution.

PR #708.
2026-10-14 19:44:21 -06:00
NetterSilverandClaude Haiku 5.5 0222a90e5d Grow table merges to include merged areas they overlap
Found while testing crates/model/src/table.rs:224 (Table::merge)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:07:48 +00:00
hajdukste 51de1ad2cf Text (#93): show gray markers on empty list paragraphs 2026-10-14 17:58:53 -07:00
midasmatterhorn 8d3e4a630f fix(media): prevent overflow while probing ASF headers
Use checked arithmetic for ASF header-object bounds and cursor advances so hostile object sizes cannot panic. Keep a synthetic regression for the malformed header.

Addresses #750 (ASF object-size overflow).
2026-10-14 18:07:22 -06:00
Gert Pellin 8b08718b9a Preferences: Interface size applies when the slider is let go (#767)
Dragging the Interface size slider set the interface scale on every
frame, which grew or shrank the slider under the pointer and ran it to
one of its ends. Keep the value pending in the dialog while the pointer
holds the slider and apply it on release; keyboard changes still apply
at once.
2026-10-15 01:49:41 +02:00
Gert Pellin 7cda7eda1d Merge origin/main into fix/725-body-placeholder
Both sides added tests at the same place in engine tests.rs; keep both.
Document::alloc_id now returns an Option, so the #725 test unwraps it.
2026-10-15 01:39:24 +02:00
Gert Pellin 57c03d36fc Render: decode a cropped picture for the whole image's size, not its box's (#762)
A picture was decoded at the size of its box on screen. A cropped picture
shows only part of the image, magnified, so it was decoded at a fraction of
the resolution it needs and stretched back up: Merge Shapes > Intersect,
which crops the picture to the new smaller box, left it visibly blurred.
Size the decode from the rectangle the whole image occupies instead.
2026-10-15 01:28:10 +02:00
Sazid Al Bayazid 40e05abd45 Text: anchorCtr centres the drawn text block - right-aligned text stayed glued to the box edge (#736)
anchorCtr's centreing offset was computed for a block that starts at
the box's left edge and then added to lines that alignment had already
placed within the box. For a right-aligned line the two shifts
stacked: the line ended up starting at the box's centre and ran past
the right edge - on the tdf165341 fixture the sentence was cut off at
"...paragraph rig". The clamp at zero made it worse for content wider
than the box: all the overflow went to the right only.

The origin is now set so the drawn text block's own centre (min/max of
the laid-out line extents) lands on the box's centre: every alignment
stays inside the box when it fits, and overflow centres symmetrically
past both edges, as PowerPoint draws it. Empty lines carry no ink and
stay out of the block; vertical text and multi-column bodies are
unchanged (centring is unimplemented for them, as before).

Tests: right/left-aligned, trailing empty paragraph, mixed alignment,
symmetric overflow, and a no-anchorCtr control - the block's centre
equals the box's centre in every case.

Reported with a public LibreOffice test fixture (tdf165341.pptx);
verified by rendering the slide before (text cut at the right edge)
and after (whole sentence centred).
2026-10-15 04:41:37 +06:00
Gert Pellin b69613bf88 Preferences: Cancel, Esc and the close button undo the dialog's changes (#752)
The Preferences dialog applies its controls as they change (appearance,
interface size, the editing checkboxes, the comment author), and its Cancel
result was discarded, so Cancel did nothing and the window stayed open.

The dialog now remembers the settings it opened with. Cancel, Esc and the
window's close button put them back and close it; Done keeps the changes.
2026-10-14 23:58:43 +02:00
midasmatterhorn a82f691993 text: a bare normAutofit draws at 100% and an edit stores the fitted scale (#724) 2026-10-15 00:56:41 +03:00
midasmatterhorn 82ee5dec25 media: walk ID3 tag chains iteratively so crafted files cannot overflow the stack 2026-10-15 00:55:32 +03:00
midasmatterhorn 2568c55afa control: a request that timed out while queued is abandoned, never run late (#719) 2026-10-15 00:37:58 +03:00
Brandon ThomasandClaude Opus 5.5 ea904591a5 Fix flaky test: the missing-Recent test waits for the background open (#291 after #488)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 16:33:37 -04:00
Brandon Thomas afe4a408b9 Merge PR #438 integrated on land-r9: an exhausted id space refuses growth instead of duplicating ids (#407)
# Conflicts:
#	crates/engine/src/tests.rs
2026-10-14 16:25:59 -04:00
Brandon ThomasandClaude Opus 5.5 c79416be4c Fix up merged PRs: no debug_assert in blank_presentation; more exhaustion coverage
blank_presentation's debug_assert would panic in debug builds (never-crash
rule): a fresh deck that cannot fit its title slide now simply arrives
without it. The exhaustion test also covers insert.smartArt and
insert.textBox.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 16:24:26 -04:00
Brandon ThomasandClaude Opus 5.5 67e1ab6373 Merge PR #438 from albayazid: Model: an exhausted id space refuses growth instead of duplicating ids (#407)
Conflicts resolved onto main's newer shape, and the PR's policy applied to
every alloc_id/add_media/new_slide call site main has grown since: commands
answer bad(cmd, NO_ID_SPACE) (slide.reuse, insert.zoom, SmartArt, photo
album, review.accept, handout/notes masters, master placeholders,
background/artistic/compress pictures, transition sound, ink to shape,
paste special, file.new templates); reid/bring_media/renumber/regenerate
and compare::adopt/accept are fallible; outline import keeps what fit.
Tests use expect() on the now-Option results.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 16:24:26 -04:00
Mex f4ce764d1c M13.1: validate remote MCP replies (#718)
Reject unrelated, malformed, incomplete and oversized replies without replaying commands.
Reconnect before sending when unsolicited reply bytes are buffered.

Contribution on behalf of @MMexicann.
2026-10-14 22:24:15 +02:00
Brandon ThomasandClaude Opus 5.5 b1ca1230e6 Engine: text.delete and text.move are registered once (the newer docs win); a test keeps command ids unique
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 16:15:17 -04:00