What's Changed
- Opus: validate the header in Decoder::from_head (#425) by @MarekSpodBiedry in #442
- xtask: assets audit no longer panics on Unicode names and reads real paths from git (#424) by @MarekSpodBiedry in #443
- Info: keep a property draft when another field or the side menu is clicked (#422) by @MarekSpodBiedry in #445
- Engine: moving the selection to another text body settles the composition (#421) by @MarekSpodBiedry in #446
- Format scientific number formats (0.00E+00) in chart labels (#419) by @MarekSpodBiedry in #448
- UI: notes, alt text and rename drafts no longer carry over to another document (#413) by @MarekSpodBiedry in #450
- Pptx: keep the math namespace equations inherit from the slide root or a wrapper (#412) by @MarekSpodBiedry in #451
- MCP: do not resend a command whose reply was lost (#409) by @MarekSpodBiedry in #453
- Engine: a command that fails after editing puts the presentation back (#405) by @MarekSpodBiedry in #454
- Table: split and cell fill stay inside the table (#400) by @MarekSpodBiedry in #455
- Bitstream: reject bad NAL length widths, check NAL endpoints and signed Exp-Golomb limits (#397) by @MarekSpodBiedry in #456
- Matroska: stop following chapter and tag nesting past 32 levels (#396) by @MarekSpodBiedry in #457
- AV1: reject tile groups that repeat, skip or reorder tiles (#395) by @MarekSpodBiedry in #458
- Slide show: Honeycomb's hexagons cover the whole slide again (#420) by @albayazid in #460
- Copy and Cut buttons and menus put the text on the system clipboard (#431) by @Zetenypapp in #463
- Media: preserve video frames and EOF across seeks by @MMexicann in #587
- Fix keyboard navigation when Presenter View has focus by @lambertoo in #707
- Slide show: click-triggered animations, per-slide state and hit testing by @nagasakimark in #713
- pptx: write linked pictures with r:link so PowerPoint resolves external images by @midasmatterhorn in #728
- Colour menus: an Eyedropper that takes a colour from the slide (#367) by @Silvertree2010 in #436
- Slide: leading tabs in a new slide's body set the outline level (#370) by @MarekSpodBiedry in #459
- CLI: convert and run refuse output formats DeckCraft can't write (#715) by @switch87 in #716
- PPTX: .potx and .ppsx declare a template and slide show main part (#210) by @justinjohn0306 in #212
- Animations: nine PowerPoint exit effects import as themselves (#147) by @justinjohn0306 in #222
- SmartArt: text is laid out on its text rectangle (dsp:txXfrm), not in columns by @pierrevbc in #242
- fix: DeckCraft upstream issue #104 by @FabPei in #306
- macOS: end the process in on_exit so closing the window doesn't crash by @marcoarnulfo in #308
- Open: a password-protected presentation says so, and open errors show on the start screen by @marcoarnulfo in #348
- Fonts: the font scan leaves out faces with no outline tables by @dotCooCoo in #351
- Bump quick-xml to 0.41 (RUSTSEC-2026-0194, RUSTSEC-2026-0195) by @natocool2 in #356
- Fonts: a lookup finds an installed family whichever thread loads it first by @LloydNicholson in #80
- Command palette: one Export… entry that opens the dialog, no path-only duplicate (#79) by @MarekSpodBiedry in #82
- PPTX: animation rewind survives save and reopen (#77) by @MarekSpodBiedry in #83
- Export: an unknown format is an error instead of a deckcraft file by @mikl0s in #95
- Slides: going to a slide that does not exist is an error by @mikl0s in #96
- Commands: an invalid shape id is an error instead of the selection by @mikl0s in #97
- docs(readme): percent-encode middle dot in platforms badge URL by @dylanmtaylor in #98
- PPTX import: a transition without spd is 0.5 s, not the effect's default (#117) by @alexanderalber in #149
- Issue #106: zooming keeps the point under the pointer by @LloydNicholson in #156
- Charts: value axes start above zero when the values sit high, as in Office by @LloydNicholson in #157
- Ribbon: transition and animation tiles follow the dark theme (#159) by @MarekSpodBiedry in #160
- Windows: compile DX12 shaders with FXC by @itrycodinganditsbad in #176
- CLI: --help prints usage and unknown render flags are rejected (#163) by @MarekSpodBiedry in #179
- Ctrl+C then Ctrl+V pastes objects that carry no text (Fixes #182) by @Claudio911015 in #189
- Slide Size: choose Portrait or Landscape (#198) by @justinjohn0306 in #201
- Home: a Selection Pane button that works with nothing selected (#132) by @justinjohn0306 in #205
- PPTX: a lone guide keeps the name its preset uses, adj1 or adj (#214) by @justinjohn0306 in #216
- Read Markdown outlines as Markdown (#211) by @LloydNicholson in #218
- Text: draw shrink-on-overflow at the scale the file was saved with by @xmaks82 in #226
- Canvas: right click selects the shape under the pointer by @pierrevbc in #244
- Title bar: Export button next to Save by @pierrevbc in #246
- Text: exact line spacing ends at the last line's descent by @xmaks82 in #249
- Text: line spacing reduction comes off the percentage, not the spacing by @xmaks82 in #253
- Comments: threads and resolved state survive a .pptx round trip (#70) by @albayazid in #280
- ui: admit stock macOS CJK faces as interface fallbacks (#101) by @Momentum96 in #376
- render: 3-D light rigs and materials, per-side extrusion shading by @NikitkaRa in #597
- render: 3-D contours by @NikitkaRa in #600
- Animations: check effect options and accept direction words by @NikitkaRa in #620
- Shapes: star4/star5 text rectangles as the standard defines them by @NikitkaRa in #642
- Charts: percent axes for 100% stacked; source-linked axis number formats by @NikitkaRa in #659
- Startup: fall back to Wayland when DISPLAY names no X server by @NikitkaRa in #661
- Render: don't lay out table cell text that lands off the slide by @NikitkaRa in #663
- PPTX: keep table styles the file defines when no table uses them by @NikitkaRa in #694
- PPTX: normalize literal line ends in XML so runs stay put on save by @NikitkaRa in #701
- Undo: cap the history by memory as well as by steps by @NikitkaRa in #704
- PPTX: write Color Pulse emphasis as a colour change, not a scale by @NikitkaRa in #705
- MCP tools refuse an argument that is not in their schema (#371) by @NikitkaRa in #375
- Metafile: clip EMF and WMF drawing to rectangle regions by @NikitkaRa in #437
- Edit: copies remap media, connector ends, animation targets and triggers (#406) by @NikitkaRa in #475
- Render: budget shape path-gradient work on dense outlines (#404) by @NikitkaRa in #476
- Pptx: budget chart points, chart XML size, inflate work and VML lookups (#401) by @NikitkaRa in #480
- Charts: pie and doughnut data labels use the number format (#324) by @NikitkaRa in #486
- Designer: layout ideas that rearrange the current slide (#314) by @NikitkaRa in #489
- Fonts: find fonts where Linux and Flatpak keep them; add and rescan commands (#277) by @NikitkaRa in #491
- Format Shape: line compound, cap, join, arrows and sizes; lock aspect ratio by @NikitkaRa in #500
- Engine: seeded editor soak tests; tiny charts no longer blank the slide by @NikitkaRa in #502
- Text: set text transparency from Text Fill (#32) by @NikitkaRa in #504
- Transitions: choose a transition sound and play it in the show by @NikitkaRa in #505
- UI: seeded whole-window soak with memory and timing bounds by @NikitkaRa in #507
- UI: WordArt Transform gallery applies a text warp by @NikitkaRa in #511
- Shapes: Edit Points — drag, add and delete a shape's vertices by @NikitkaRa in #514
- Format: report damaged embedded media and open such files as a repaired copy by @NikitkaRa in #526
- Morph: the same text moves and resizes instead of cross-fading by @NikitkaRa in #541
- Pictures: Remove Background with a classical matte by @NikitkaRa in #550
- Animations: add 34 PowerPoint motion path presets by @NikitkaRa in #551
- Text: Bullets and Numbering dialog by @NikitkaRa in #553
- Pptx: round-trip comments, links, shows, groups and inherited placeholders by @NikitkaRa in #554
- Edit: Paste Special (destination theme, keep source, picture, text only) by @NikitkaRa in #558
- Pptx: round-trip text effects, layout, fills, bevels and connectors by @NikitkaRa in #562
- Performance baseline: deckcraft-cli bench and cargo xtask bench by @NikitkaRa in #564
- Make PDF export ~2.8× faster with byte-identical output by @NikitkaRa in #566
- Metafile: draw EMF+ only pictures by @NikitkaRa in #574
- PPTX: round-trip 3-D models and animation bounce end by @NikitkaRa in #578
- PPTX corpus: themes, masters, effects and links; keep text Mouse Over actions by @NikitkaRa in #589
- PPTX: round-trip chart trendlines by @NikitkaRa in #590
- Render 3-D extrusions: sides under turned cameras (3-D slice 1) by @NikitkaRa in #595
- Insert: a gallery of Lucide icons as stroked shapes by @NikitkaRa in #625
- Render: cap dash count so a tiny dash on a huge shape can't crash on open by @NikitkaRa in #639
- UI: Size and Position dialog sets geometry in one step by @NikitkaRa in #641
- Shapes: chevron text rectangle per presetShapeDefinitions by @NikitkaRa in #643
- Charts: draw axis titles by @NikitkaRa in #657
- Review: previous and next comment by @NikitkaRa in #672
- Export: image exports keep the whole slide; partial failures say what was written by @NikitkaRa in #681
- Media: damaged audio no longer hangs or panics by @NikitkaRa in #696
- Pptx: read and write embedded fonts by @NikitkaRa in #439
- Parsers: check hostile numeric fields before arithmetic (#426) by @NikitkaRa in #467
- Anim: group animations by sequence in one pass (#410) by @NikitkaRa in #472
- Text: bidi levels for language runs in linear time (#403) by @NikitkaRa in #477
- Render: cap RGBA conversion and bound the failed-image cache (#402) by @NikitkaRa in #478
- Recovery: unique uids, per-instance ownership, keep snapshots until replaced (#390) by @NikitkaRa in #482
- Print: choose paper size and orientation for notes and handouts by @NikitkaRa in #499
- Format Shape: shadow, glow and reflection detail controls by @NikitkaRa in #503
- Shapes: Edit Points — point types, Bézier handles, right-click menu by @NikitkaRa in #515
- Transitions: built-in sounds, Stop Previous Sound and Loop Until Next by @NikitkaRa in #516
- PPTX: owned corpus round-trip, keep notes-master header and footer by @NikitkaRa in #517
- File: six original starter decks by @NikitkaRa in #593
- Text: underline an IME composition in a table cell by @NikitkaRa in #618
- UI: Photo Album dialog inserts pictures as slides by @NikitkaRa in #647
- Format: repair degenerate slide sizes on load by @NikitkaRa in #665
- Merge Shapes: text merges as its letters, so a picture can fill them by @NikitkaRa in #678
- UI: Alt Text's decorative checkbox follows the selection by @NikitkaRa in #682
- UI: Create New Theme Colors dialog edits the theme in one step by @NikitkaRa in #683
- UI: Create New Theme Fonts dialog edits the theme in one step by @NikitkaRa in #687
- Outline: lay out only the slides in view by @NikitkaRa in #695
- Media: damaged MP4 sample tables no longer abort the app by @NikitkaRa in #699
- Comments: browser-created comments and replies get a creation timestamp (#72) by @MarekSpodBiedry in #85
- Slide show: media set to play in the click sequence starts on Next (#116) by @alexanderalber in #140
- Slides: Ctrl+A in the slide pane selects every slide (#188) by @isaac-levine in #191
- Animation Pane: advanced timeline with draggable bars by @NikitkaRa in #495
- Home: Replace Fonts dialog and font.replace command by @NikitkaRa in #512
- Design: Browse for Themes from a .thmx, .pptx or .potx file by @NikitkaRa in #530
- Table: borders, cell margins and cell text alignment by @NikitkaRa in #540
- Pictures: Picture Styles gallery and Picture Border by @NikitkaRa in #545
- Pictures: Recolor gallery and Set Transparent Color by @NikitkaRa in #547
- UI: View › New Window opens a second window by @NikitkaRa in #560
- UI: sections in the Slide Sorter by @NikitkaRa in #586
- Text: shrink on overflow gives up at once when even 10% overflows by @NikitkaRa in #651
- UI: Edit Photo Album reflows the album in one step by @NikitkaRa in #658
- Insert: Action Settings dialog and shape.action by @NikitkaRa in #557
- SmartArt: Text Pane, add and remove shapes, promote and demote by @NikitkaRa in #596
- SmartArt: 15 layouts, SmartArt Styles and Change Colors by @NikitkaRa in #606
- SmartArt: shrink text to fit, picture layouts, 3-D styles and more colours by @NikitkaRa in #610
- SmartArt: node pictures from the data model, Brick Scene camera, four more layouts by @NikitkaRa in #613
- SmartArt: six more layouts, clear Venn labels, read back older Picture Accent Process files by @NikitkaRa in #617
- SmartArt: organisation charts with assistants, segmented/multidirectional cycles, cycle matrix, segmented pyramid, pie by @NikitkaRa in #621
- SmartArt: Name and Title org chart, closer Half Circle, ten more layouts, convert to/from text and shapes by @NikitkaRa in #623
- SmartArt: Convert to SmartArt gallery on Home; Convert to Text keeps the text size by @NikitkaRa in #627
- SmartArt: layout gallery thumbnails and hover preview by @NikitkaRa in #634
- UI: Date and Time dialog inserts a format in one step by @NikitkaRa in #668
- UI: Hyperlink dialog follows the selection by @NikitkaRa in #689
- SmartArt: write the outline to .pptx as a diagram and read it back from the data model by @NikitkaRa in #601
- Notes and Presenter View: long notes scroll, presenter controls show (#221) by @justinjohn0306 in #224
- Palette: skip commands that need a value by @NikitkaRa in #440
- Show: a laser pointer that leaves no ink by @NikitkaRa in #441
- Media: keep playback with the document and the clip (#415) by @NikitkaRa in #483
- Show: render the next slide in the background while the current one rests (#240) by @NikitkaRa in #490
- Pictures: Artistic Effects — apply, change, remove and keep in PPTX by @NikitkaRa in #518
- Format: bound total embedded media when opening a .deckcraft by @NikitkaRa in #528
- PPTX: keep add-in tags on the presentation, slides and shapes by @NikitkaRa in #531
- Pptx: round-trip tables, charts, animation, media, sections and masters by @NikitkaRa in #533
- PPTX: keep custom XML, the sensitivity label and custom properties by @NikitkaRa in #535
- Add the Handout Master view (stacked on #533) by @NikitkaRa in #572
- Add the Notes Master view (stacked on #572 / #533) by @NikitkaRa in #573
- Notes pages and PDF handouts follow their masters (stacked on #573) by @NikitkaRa in #577
- Notes Master slide preview; master header/footer text keeps its formatting (stacked on #577) by @NikitkaRa in #580
- PDF master header/footer text wraps and keeps mixed formatting (stacked on #580) by @NikitkaRa in #583
- Notes Page view draws master text wrapped (stacked on #583) by @NikitkaRa in #592
- Show: See All Slides and zoom by @NikitkaRa in #649
- Presenter view: pause and reset the timer, and notes size by @NikitkaRa in #656
- Show: play a custom show by @NikitkaRa in #660
- Show: show the slide number while typing it by @NikitkaRa in #664
- Show: a first animation set to With/After Previous plays when the slide appears by @NikitkaRa in #671
- View: Zoom dialog applies a percent or Fit by @NikitkaRa in #675
- Show: Show Media Controls hides the playback bar by @NikitkaRa in #679
- Export: a PNG or JPEG slide records 144 dpi at the default 2× size by @NikitkaRa in #684
- PPTX: keep the notes master's own placeholders and colour map on save by @NikitkaRa in #685
- UI: Design Effects applies a theme effect scheme by @NikitkaRa in #698
- UI: Slide Master Preserve and Title or Footers placeholders by @NikitkaRa in #703
- Text: honour spcFirstLastPara (space before the first paragraph) by @xmaks82 in #254
- CLI: say that render --slide counts from 0 (#359) by @NikitkaRa in #361
- AV1: reject duplicate film-grain scaling points; a failed job still publishes (#394) by @NikitkaRa in #481
- Video: check the whole picture store against a memory budget (#398) by @NikitkaRa in #484
- PPTX: read Office 2016 charts (waterfall, funnel, treemap…) and keep them by @NikitkaRa in #532
- UI: customizable Quick Access Toolbar by @NikitkaRa in #563
- Metafile: EMF+ arcs, convex clip paths, wrapped strings, nested metafiles by @NikitkaRa in #588
- Charts: histograms, Pareto and box and whisker; Office 2016 charts save as themselves by @NikitkaRa in #591
- Charts: multi-level treemaps and sunbursts; inclusive box quartiles by @NikitkaRa in #594
- Charts: keep and draw region map charts by @NikitkaRa in #598
- Charts: polar radar, stock high-low lines and up/down bars, combo sample by @NikitkaRa in #602
- Render: draw chart trendlines by @NikitkaRa in #603
- Metafile: EMF+ cardinal curves and region fills by @NikitkaRa in #633
- Metafile: EMF+ Clear, and the EMF+ record coverage written down by @NikitkaRa in #635
- Charts: bar widths, column/bar point fills, smoothed lines and chart text colour as the file sets them by @NikitkaRa in #638
- Charts: category axis orientation; horizontal bars list the first category at the bottom by @NikitkaRa in #640
- Charts: scatter and bubble charts get a value x axis by @NikitkaRa in #662
- Charts: logarithmic value axes by @NikitkaRa in #669
- Charts: a chart frame with no width no longer panics by @NikitkaRa in #690
- UI: Trim Media dialog follows the selection by @NikitkaRa in #691
- Title bar: on macOS the window buttons sit centred in it (#71) by @marcoarnulfo in #223
- Charts: draw waterfall, funnel, treemap and sunburst layouts by @NikitkaRa in #537
- Metafile: EMF+ images, text, gradient brushes and clipping by @NikitkaRa in #582
- Charts: value-axis minor gridlines by @NikitkaRa in #666
- CLI: render-transition refuses --t values that would share one file name (#423) by @MarekSpodBiedry in #444
- H.264: bound frame_num gap work and reject gaps the SPS forbids (#427) by @NikitkaRa in #465
- Control server: bound connections, line length, queue and socket timeouts (#418) by @NikitkaRa in #471
- Table: inserting and deleting rows and columns keeps merges consistent (#408) by @NikitkaRa in #473
- Design: Variants gallery with four colour variations of the theme by @NikitkaRa in #542
- Tables: Draw Table pencil and Table Eraser by @NikitkaRa in #544
- Review: spelling with Hunspell dictionaries, suggestions, Change and Ignore All by @NikitkaRa in #609
- Spelling: squiggles while typing, Add to Dictionary, per-run languages, compounds by @NikitkaRa in #615
- Spelling: squiggles in table cells and speaker notes; UI-thread checking on the web by @NikitkaRa in #626
- PPTX: shape text anchors at the top when the file gives no anchor; write ctr for centred shapes by @NikitkaRa in #654
- PDF: map each glyph to its shaping cluster's text in ToUnicode (#164) by @MarekSpodBiedry in #178
- Text: AutoCorrect options, case rules and your own entries by @NikitkaRa in #521
- Spelling: notes right-click menu, Review > Language (Do Not Check Spelling), repeated words by @NikitkaRa in #632
- Mark the current transition effect option (#365) by @NikitkaRa in #369
- Media: a failed or stalled audio output hands the clock back to wall time (#417) by @NikitkaRa in #468
- Web: keep a picked file on the document and slide that asked for it by @NikitkaRa in #479
- Draw: Ink to Shape converts pen strokes into shapes by @NikitkaRa in #539
- UI: preview slide animations on the editor canvas by @NikitkaRa in #571
- Startup: survive damaged settings, font folders, recovery folders and small texture limits by @NikitkaRa in #644
- Canvas: a trackpad swipe turns the page by @NikitkaRa in #648
- UI: keep every texture within the GPU max texture side by @NikitkaRa in #652
- Show: presenter view keeps a portrait Next slide inside its column by @NikitkaRa in #655
- Canvas: a two-finger twist rotates the selection by @NikitkaRa in #674
- Clipboard: rich text and pictures for Pages and Keynote by @NikitkaRa in #702
- A tabbed slide body is an outline, and --help exits (#360) by @NikitkaRa in #368
- UI: Format Shape fill transparency follows the selection by @NikitkaRa in #697
- Shapes: smooth a rectangle's corners into a squircle (#286) by @NikitkaRa in #492
- Format Shape: picture or texture fill options by @NikitkaRa in #506
- UI: WordArt adjust handles drag a text warp by @NikitkaRa in #519
- Review: compare with a revised copy and accept its slides by @NikitkaRa in #525
- UI: Grid Options sets spacing, snap and the on-screen grid by @NikitkaRa in #536
- Text: Find and Replace across slides, tables and notes by @NikitkaRa in #556
- View: indent and tab markers on the ruler by @NikitkaRa in #567
- Text: Tabs dialog and the ruler's tab selector (stacked on #567) by @NikitkaRa in #569
- UI: Font dialog sets character formatting in one step by @NikitkaRa in #630
- UI: Paragraph dialog sets alignment, indents and spacing by @NikitkaRa in #637
- Review: Thesaurus pane with a built-in English word list by @NikitkaRa in #549
- View: movable drawing guides saved with the presentation by @NikitkaRa in #559
- Charts: error bars by @NikitkaRa in #673
- Draw: pen pressure scales ink width by @NikitkaRa in #611
- Format: never save a .deckcraft that cannot be reopened over a NaN by @NikitkaRa in #670
- Notes: speaker notes show their formatting and keep it when edited by @Mathiasko in #168
- Pictures: Change Picture replaces the selected picture (#115) by @justinjohn0306 in #204
- Tables: caret in the edited cell, click-to-place, drag borders to resize by @pierrevbc in #230
- Canvas: drag the frame of a text box being edited to move it by @pierrevbc in #243
- fix(cli): render refuses an unknown option instead of writing it as a file (#235) by @RCShoemaker in #258
- Start screen: a missing Recent file is marked, its error shows, and entries can be removed (#172) by @albayazid in #291
- deckcraft-cli help explains the CLI to an agent by @hoblin in #303
- Review: the Language dialog marks the selected text with the language you pick by @marcoarnulfo in #345
- File: save through a unique, exclusively created temporary file (#391) by @MarekSpodBiedry in #466
- UI: keep editor slides on the Retina pixel grid by @NikitkaRa in #522
- UI: Format Background picture fill sets transparency and tiling by @NikitkaRa in #692
- Export: animated GIF of the deck (Export… dialog, CLI, MCP) (#171) by @Mathiasko in #177
- Text: typing goes on after Tab in a text box (#78) by @alexanderalber in #139
- Charts: a missing varyColors varies single-series bar colours by point (#143) by @MarekSpodBiedry in #151
- MCP: confine file access with --automation-read-root and --automation-write-root by @isaac-levine in #247
- Text: the caret shows on dark slides and in empty placeholders by @xc4pr in #321
- Morph: align an outline morph once per transition, not every frame by @alexanderalber in #67
- Export: PNG images (all slides) in the browser downloads every slide (#64) by @MarekSpodBiedry in #87
- Paste: Ctrl+V pastes an image-only clipboard as a picture (#53) by @MarekSpodBiedry in #88
- Morph: text boxes without a partner fade in place instead of moving (#119) by @alexanderalber in #136
- Morph: a picture cropped differently on the next slide morphs its crop (#118) by @alexanderalber in #137
- Charts: a single-series chart without an explicit title shows the series name as its automatic title (#142) by @MarekSpodBiedry in #150
- PPTX: SmartArt and OLE objects we can't draw keep their parts on save (#203) by @justinjohn0306 in #209
- Bidi: auto-detect RTL paragraph direction when typing Kurdish, Arabic and Hebrew by @Hevarh1 in #169
- Render: an unfilled shape's glow follows its line by @xmaks82 in #225
- UI: open presentations in the background with a progress window (#350) by @NikitkaRa in #488
- Format Shape: 3-D Format and 3-D Rotation controls by @NikitkaRa in #508
- Pictures: compress pictures to a target resolution by @NikitkaRa in #513
- Insert: Summary, Section and Slide Zoom with Return to Zoom by @NikitkaRa in #520
- Charts: keep the embedded workbook when a chart is saved unchanged (#335) by @NikitkaRa in #355
- Slides: reuse slides from another presentation by @NikitkaRa in #509
- Model: an exhausted id space refuses growth instead of duplicating ids (#407) by @albayazid in #438
- media: check the ASF object walk's arithmetic so hostile sizes cannot panic by @midasmatterhorn in #748
- Preferences: Cancel, Esc and the close button undo the dialog's changes (#752) by @switch87 in #757
- control: a request that timed out while queued is abandoned, never run late (#719) by @midasmatterhorn in #758
- text: a bare normAutofit draws at 100% and an edit stores the fitted scale (#724) by @midasmatterhorn in #759
- Render: a cropped picture keeps its resolution (Intersect no longer blurs it) by @switch87 in #768
- Preferences: Interface size applies when the slider is let go by @switch87 in #769
- Text: show gray list markers before typing by @hajdukste in #772
- Grow table merges to include merged areas they overlap by @Silvertree2010 in #773
- Slide: a new slide's body goes into the layout's content placeholder by @switch87 in #734
- Fonts: falling back to the default face no longer deadlocks by @xmaks82 in #738
- Add an editor screenshot to AppStream metadata by @IanHollow in #746
- MCP: validate reply IDs and bounded response frames (#718) by @MMexicann in #747
- media: walk ID3 tag chains iteratively so crafted files cannot overflow the stack by @midasmatterhorn in #749
- Text: anchorCtr centres the drawn text block - right-aligned text stayed glued to the box edge (#736) by @albayazid in #760
- ci: add comfortable runtime limits to unbounded jobs by @skylartaylor in #776
- Use the shared PDF writer and report font embedding failures by @skylartaylor in #708
- Reject shape ids beyond u32 in shape.connect, sites and points by @Silvertree2010 in #847
- Keep slide.duplicate copies next to their source in the section by @Silvertree2010 in #822
- ci: add shared Windows ARM64 and nix checks by @dylanmtaylor in #854
- Keep leading '-', '*' and '•' text when importing outlines by @Silvertree2010 in #797
- Don't paste HTML text as bold when sets font-weight:normal by @Silvertree2010 in #798
- Format: .txt and .md outline includes table cell text (#814) by @albayazid in #816
- Clamp huge index in table.insertRowBelow/insertColumnRight by @Silvertree2010 in #866
- Close the control port on the first line that isn't a request by @skylartaylor in #939
- PPTX: preserve separate click steps in trigger sequences by @MMexicann in #849
- Contributors: add Marco Arnulfo by @marcoarnulfo in #857
- Make edit.cut a no-op when only a text caret is set by @Silvertree2010 in #920
- Fix add overflow panic in table.columnWidth for a huge column index by @Silvertree2010 in #922
New Contributors
- @albayazid made their first contribution in #460
- @Zetenypapp made their first contribution in #463
- @MMexicann made their first contribution in #587
- @lambertoo made their first contribution in #707
- @nagasakimark made their first contribution in #713
- @midasmatterhorn made their first contribution in #728
- @Silvertree2010 made their first contribution in #436
- @justinjohn0306 made their first contribution in #212
- @pierrevbc made their first contribution in #242
- @FabPei made their first contribution in #306
- @marcoarnulfo made their first contribution in #308
- @dotCooCoo made their first contribution in #351
- @natocool2 made their first contribution in #356
- @mikl0s made their first contribution in #95
- @itrycodinganditsbad made their first contribution in #176
- @Claudio911015 made their first contribution in #189
- @xmaks82 made their first contribution in #226
- @Momentum96 made their first contribution in #376
- @NikitkaRa made their first contribution in #597
- @isaac-levine made their first contribution in #191
- @Mathiasko made their first contribution in #168
- @RCShoemaker made their first contribution in #258
- @hoblin made their first contribution in #303
- @xc4pr made their first contribution in #321
- @Hevarh1 made their first contribution in #169
- @hajdukste made their first contribution in #772
- @IanHollow made their first contribution in #746
- @skylartaylor made their first contribution in #776
Full Changelog: v0.7.0...v0.8.0