mirror of
https://github.com/storytold/deckcraft.git
synced 2026-10-24 10:37:03 -06:00
# Conflicts: # crates/engine/src/cmd/review.rs # crates/engine/src/tests.rs # crates/ui-egui/src/dialogs.rs # crates/ui-egui/src/panes.rs
515 lines
48 KiB
Markdown
515 lines
48 KiB
Markdown
# Where DeckCraft falls short of PowerPoint
|
||
|
||
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-13 · **Change:** minor (interactive-deck clicks in the slide show; previous: minor (3-D bevel, camera and face lighting rendered; previous: minor, IME composition and CJK interface text landed, #101; previous: minor, core-workflow alpha gate added; stage stays alpha; before that: major, first itemized gap list; full re-measure against PowerPoint for Mac 16.113.4 and the open GitHub issues)) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-13 · **Change:** minor (gap 3 shrinks to media options and rewind: comment threads round-trip now, #70; 3-D bevel, camera and face lighting rendered; previous: minor, IME composition and CJK interface text landed, #101; previous: minor, core-workflow alpha gate added; stage stays alpha; before that: major, first itemized gap list; full re-measure against PowerPoint for Mac 16.113.4 and the open GitHub issues) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-13 · **Change:** minor (EMF/WMF rectangle clip regions; previous: minor, 3-D bevel, camera and face lighting rendered) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-13 · **Change:** minor (embedded fonts are read, written and drawn, except MicroType Express subsets; previous: minor, 3-D bevel, camera and face lighting rendered; previous: minor, IME composition and CJK interface text landed, #101) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-13 · **Change:** minor (WordArt Transform gallery applies a text warp; previous: minor, 3-D bevel, camera and face lighting rendered; previous: minor, IME composition and CJK interface text landed, #101) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-13 · **Last updated:** 2026-10-13 · **Change:** minor (owned PPTX corpus round-trip; notes-master header and footer kept; previous: minor, 3-D bevel, camera and face lighting rendered) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-13 · **Last updated:** 2026-10-13 · **Change:** minor (owned PPTX corpus for comments, links, custom shows, groups and inherited placeholders; paragraph defaults and action sounds kept; previous: minor, 3-D bevel, camera and face lighting rendered) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-13 · **Last updated:** 2026-10-13 · **Change:** minor (owned PPTX corpus for text effects, body layout, theme effects, fills, bevels and connectors; run effect lists and bevel presets kept; previous: minor, 3-D bevel, camera and face lighting rendered) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-14 · **Last updated:** 2026-10-14 · **Change:** minor (owned corpus `corpus_media.rs`: 3-D model parts and animation bounce end round-trip; the real-deck corpus and #70/#74/#77 stay open) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-14 · **Last updated:** 2026-10-14 · **Change:** minor (chart trendlines round-trip; previous: minor, 3-D bevel, camera and face lighting rendered; IME composition and CJK interface text landed, #101; core-workflow alpha gate added; stage stays alpha; full re-measure against PowerPoint for Mac 16.113.4 and the open GitHub issues) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-14 · **Last updated:** 2026-10-14 · **Change:** minor (Insert › Icons places a Lucide stroke set; 3-D models and stock content remain; previous: minor, 3-D bevel, camera and face lighting rendered) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-14 · **Last updated:** 2026-10-14 · **Change:** minor (Size and Position dialog; previous: minor, 3-D bevel, camera and face lighting) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-14 · **Change:** minor (six original starter decks on File › New; previous: minor, 3-D bevel, camera and face lighting rendered; previous: minor, IME composition and CJK interface text landed, #101) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-14 · **Last updated:** 2026-10-14 · **Change:** minor (IME composition in a table cell is underlined; previous: minor, 3-D bevel, camera and face lighting rendered; previous: minor, IME composition and CJK interface text landed, #101) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-14 · **Last updated:** 2026-10-14 · **Change:** trivial (Photo Album is one of 28 dialogs; Font, Bullets, Find, Replace Fonts, Action Settings, Print and Insert Object remain; previous: minor, 3-D bevel, camera and face lighting) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-14 · **Last updated:** 2026-10-14 · **Change:** trivial (Edit Photo Album reuses the Photo Album dialog, still 28; Font, Bullets, Find, Replace Fonts, Action Settings, Print and Insert Object remain; previous: trivial, Photo Album counted) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-14 · **Last updated:** 2026-10-14 · **Change:** minor (Create New Theme Colors; dialogs 27 → 28; previous: 3-D bevel, camera and face lighting) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-14 · **Last updated:** 2026-10-14 · **Change:** minor (Create New Theme Fonts; dialogs 27 → 28; previous: 3-D bevel, camera and face lighting) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-14 · **Last updated:** 2026-10-14 · **Change:** minor (Date and Time dialog; 28 dialogs; previous: 3-D bevel, camera and face lighting) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-13 · **Last updated:** 2026-10-13 · **Change:** minor (owned PPTX corpus for more deck kinds; handout-master text kept; previous: minor, 3-D bevel, camera and face lighting rendered) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-13 · **Change:** minor (laser pointer in the slide show; previous: minor, 3-D bevel, camera and face lighting rendered) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-13 · **Change:** trivial (command palette no longer offers Export without a path, #79; previous: minor, 3-D bevel, camera and face lighting rendered) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-14 · **Last updated:** 2026-10-14 · **Change:** minor (Design ▸ Effects; checklist row stays P so breadth stays 79%; previous: 3-D bevel, camera and face lighting rendered) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-14 · **Last updated:** 2026-10-14 · **Change:** minor (Slide Master Preserve and Title/Footers placeholders; checklist letters unchanged, breadth stays 79%, dialogs stay 27; previous: 3-D bevel, camera and face lighting rendered) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-14 · **Last updated:** 2026-10-14 · **Change:** minor (chart trendlines are drawn; previous: minor, chart trendlines round-trip; 3-D bevel, camera and face lighting rendered; IME composition and CJK interface text landed, #101; core-workflow alpha gate added; stage stays alpha; full re-measure against PowerPoint for Mac 16.113.4 and the open GitHub issues) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-13 · **Last updated:** 2026-10-13 · **Change:** minor (animation preview plays on the editor canvas; previous: minor, 3-D bevel, camera and face lighting rendered) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-14 · **Last updated:** 2026-10-14 · **Change:** minor (a two-finger twist rotates the selection; previous: minor, 3-D bevel, camera and face lighting rendered) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-14 · **Last updated:** 2026-10-14 · **Change:** minor (a trackpad swipe turns the page in the editor and the show; pinch-zoom remains; previous: minor, 3-D bevel, camera and face lighting rendered) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-14 · **Last updated:** 2026-10-14 · **Change:** minor (Font dialog; previous: minor, 3-D bevel, camera and face lighting rendered) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-14 · **Last updated:** 2026-10-14 · **Change:** minor (Paragraph dialog; previous: minor, Font dialog) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-13 · **Last updated:** 2026-10-13 · **Change:** minor (Grid Options dialog; previous: minor, 3-D bevel, camera and face lighting rendered; previous: minor, IME composition and CJK interface text landed, #101) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-13 · **Change:** minor (WordArt adjust handles drag; previous: minor, 3-D bevel, camera and face lighting rendered; previous: minor, IME composition and CJK interface text landed, #101) · **Target:** Microsoft PowerPoint for Mac 16.113 (Microsoft 365)
|
||
|
||
Every known shortfall, one entry each, ranked by how much it stops someone who presents with
|
||
PowerPoint from switching. This is the work list: pick from the top. Numbers are summarized in
|
||
[target-app-parity.md](target-app-parity.md); the feature-by-feature scores are in
|
||
[parity-checklist.md](parity-checklist.md). Hours are Opus 5.5 agent wall-clock hours including
|
||
tests (calibration in [target-app-parity.md](target-app-parity.md#calibration-how-the-hours-were-derived)).
|
||
`B` marks a gap that blocks **beta**. None blocks **alpha**: all six core workflows pass the
|
||
[alpha gate](roadmap.md#alpha-gate-powerpoints-core-workflows).
|
||
|
||
When a gap closes, delete its entry, update the parity doc it points to, and add a line to the
|
||
revision history.
|
||
|
||
## Ranked: the top 15
|
||
|
||
| # | Gap | Category | Beta | Hours | Doc |
|
||
|---|---|---|:-:|---|---|
|
||
| 1 | PPTX corpus is only decks we author (no PowerPoint reference renders) | File format | B | 20–35 | [file-format-parity.md](file-format-parity.md) |
|
||
| 2 | Data loss and crashes on common paths (#60, #40, #59) | Stability | B | 6–12 | this file |
|
||
| 3 | PPTX round trip drops media options and rewind (#74, #77) | File format | B | 2–4 | [file-format-parity.md](file-format-parity.md) |
|
||
| 4 | SVG pictures don't render (EMF/WMF do) | File format | B | 6–12 | [file-format-parity.md](file-format-parity.md) |
|
||
| 3 | PPTX round trip drops comment threads, media options, rewind (#70, #74, #77) | File format | B | 3–6 | [file-format-parity.md](file-format-parity.md) |
|
||
| 4 | SVG pictures don't render (EMF/WMF do) | File format | B | 4–8 | [file-format-parity.md](file-format-parity.md) |
|
||
| 5 | No localization: English only | Localization | B (infra + 5 languages) | 55–90 | [localization-parity.md](localization-parity.md) |
|
||
| 6 | No printing | Feature | B | 5–8 | [file-format-parity.md](file-format-parity.md) |
|
||
| 7 | Fonts: only Regular, Bold and Italic faces (#69) | Feature | B | 3–5 | [ui-parity.md](ui-parity.md) |
|
||
| 8 | Image paste fails on Windows and Linux (#53) | Feature | B | 2–4 | [ui-parity.md](ui-parity.md) |
|
||
| 9 | Presenter view isn't placed on the second display | Hardware | B | 3–5 | [slideshow-parity.md](slideshow-parity.md) |
|
||
| 10 | Animation Pane: thin preview (timeline done); 64 of ~190 effects | Feature | B (pane) | 8–14 | [animation-parity.md](animation-parity.md) |
|
||
| 10 | Animation Pane: no timeline; preview is the whole slide, not from the selected effect; 64 of ~190 effects | Feature | B (pane) | 10–16 | [animation-parity.md](animation-parity.md) |
|
||
| 11 | Charts: data grid editing, elements, `chartex` types | Feature | B (data, elements) | 12–20 | [parity-checklist.md](parity-checklist.md) |
|
||
| 12 | Format Shape pane thinner than PowerPoint's | UI/UX | B | 6–10 | [ui-parity.md](ui-parity.md) |
|
||
| 13 | No native macOS menu bar | UI/UX | B | 3–5 | [ui-parity.md](ui-parity.md) |
|
||
| 14 | PDF export rasterizes slide artwork | File format | B | 5–8 | [file-format-parity.md](file-format-parity.md) |
|
||
| 15 | Slides rasterize on the CPU; no performance baseline | Performance / hardware | | 15–30 | [hardware-parity.md](hardware-parity.md) |
|
||
|
||
## Stability
|
||
|
||
### Close discards an edited presentation without asking (#60)
|
||
- **Evidence:** issue #60; quitting prompts, `file.close` doesn't. PR #75 is open.
|
||
- **Impact:** silent data loss on a common path. The worst kind of bug for a presentation app.
|
||
- **Estimate:** 0.5–1 h (land and test #75). **Beta blocker.**
|
||
|
||
### Startup crashes on some Windows GPUs (#40, #59)
|
||
- **Evidence:** #59 (Intel UHD, access violation in `igvk64.dll` during Vulkan enumeration), #40
|
||
(WordCraft, GridCraft and DeckCraft all fail on one Windows 11 PC). The DX12 default (#16) fixed
|
||
AMD's `atio6axx.dll` crash only.
|
||
- **Impact:** the app never opens for those users.
|
||
- **Estimate:** 4–8 h (backend probing outside the process or a safe-mode fallback, a software
|
||
renderer path). Needs a tester with the hardware. **Beta blocker.**
|
||
|
||
### Soak testing is engine-only
|
||
- **Evidence:** `crates/engine/src/soak_tests.rs` runs seeded random command sequences over a
|
||
~100-slide deck (validity, selection, undo/redo exactness, bounded undo, save/reopen in both
|
||
formats every 100 steps); `DECKCRAFT_SOAK_STEPS` runs it long. It found a chart `clamp` panic
|
||
that blanked whole slides. Still missing: UI-level (kittest) soak, memory and timing budgets.
|
||
- **Impact:** long-session crash rate is now sampled in CI; slowdowns are not measured.
|
||
- **Estimate:** 2–4 h left.
|
||
### Soak testing is new
|
||
- **Evidence:** `crates/ui-egui/src/ui_soak_tests.rs` drives the whole window with seeded random
|
||
clicks, drags, keys (plain, Ctrl, Shift), typing and scrolling over the sample deck, checking
|
||
document validity, bounded undo/journal/thumbnail/texture caches, zero caught command and
|
||
render panics (`Session::panics_caught`, `deckcraft_render::panics_caught`) and a mean frame
|
||
under 250 ms; 4 × 3000-action runs are clean. Engine-level command soak: PR #502.
|
||
- **Impact:** long-session crash rate is sampled in CI; RSS is not measured directly.
|
||
- **Estimate:** 1–2 h (RSS sampling per platform).
|
||
|
||
## File formats
|
||
|
||
Detail in [file-format-parity.md](file-format-parity.md).
|
||
|
||
### PPTX corpus is only decks we author
|
||
- **Evidence:** `crates/pptx/tests/corpus.rs` builds decks in this repo and checks open → save →
|
||
reopen (package parts and text): a talk with a table, chart, picture, link and comment, and a
|
||
notes master with a header and footer. Saving used to replace that notes master with an empty
|
||
one, so "Acme review" and "Do not circulate" disappeared; they are kept now. There is still no
|
||
larger corpus and no reference render from PowerPoint.
|
||
### PPTX has never met a corpus of real decks
|
||
- **Evidence:** PPTX tests use decks DeckCraft generates. An owned check
|
||
(`crates/pptx/tests/corpus_elements.rs`) now opens, saves and reopens comments, hyperlinks and
|
||
actions, custom shows, grouped rotated objects, and placeholders that inherit position, geometry
|
||
and text from the layout. That check found paragraph default run properties (`defRPr`, including
|
||
a link) and action sounds (the sound itself, stop-previous, and a custom show's "Show and
|
||
return") were dropped on save; they are kept now. Embedded fonts, comment threads (#70), media
|
||
options (#74) and animation rewind (#77) are still open, and there is no corpus of decks from
|
||
outside this repo. No reference renders from PowerPoint exist to compare against.
|
||
- **Evidence:** PPTX tests use decks DeckCraft generates. An owned check
|
||
(`crates/pptx/tests/corpus_style.rs`) now opens, saves and reopens text effects (gradient, outline,
|
||
shadow, glow, inner shadow, reflection and soft edge), autofit, columns, vertical and RTL text,
|
||
tab stops, line spacing, theme effects, gradient and pattern fills, 3-D bevels and connectors.
|
||
That check found a run's inner shadow, reflection and soft edge were dropped, and a bevel preset
|
||
with no kept `sp3d` was not written back; both are kept now. Comment threads (#70), media options
|
||
(#74), animation rewind (#77) and embedded fonts are still open, and there is no corpus of decks
|
||
from outside this repo. No reference renders from PowerPoint exist to compare against.
|
||
- **Evidence:** every PPTX test (`crates/pptx/tests`, 30 tests, plus `corpus_media.rs`) uses decks
|
||
DeckCraft generates; the 2026-10-07 alpha checklist already listed this as open. No reference
|
||
renders from PowerPoint exist to compare against. `corpus_media.rs` opens, saves and reopens
|
||
SmartArt and OLE kept as XML (no diagram or embedding parts; those stay with #203), audio and
|
||
video bookmarks and trims, a section holding a hidden slide, slide-number and date fields, ink
|
||
(saved as freeform lines), `.glb` 3-D models, and animation repeat, bounce end and triggers.
|
||
Playback options (#74) and rewind (#77) are still lost.
|
||
- **Evidence:** every PPTX test (`crates/pptx/tests`, 30 tests) uses decks DeckCraft generates;
|
||
- **Evidence:** every PPTX test (`crates/pptx/tests`) uses decks DeckCraft generates;
|
||
the 2026-10-07 alpha checklist already listed this as open. No reference renders from PowerPoint
|
||
exist to compare against. `crates/pptx/tests/corpus_themes.rs` starts on PowerPoint-shaped XML:
|
||
themes and two masters with their layouts, shadow/glow/soft-edge/reflection effects, and text
|
||
and shape hyperlinks and actions (text Mouse Over actions were dropped; now kept).
|
||
exist to compare against. `corpus_charts.rs` round-trips one owned slice (a combo chart with
|
||
data labels and trendlines, a merged table with diagonal borders, text columns, autofit,
|
||
vertical text and a WordArt warp). That is still a generated deck, not a corpus of real ones.
|
||
- **Evidence:** `crates/pptx/tests/corpus_kinds.rs` builds decks in this repo and checks open → save →
|
||
reopen (package parts and text): tables, charts, animations, media, sections, and several masters
|
||
and layouts. A handout master with a header, footer, date and slide number used to disappear on
|
||
save; that text is kept now. There is still no larger corpus and no reference render from PowerPoint.
|
||
- **Impact:** the main reason to switch is "open my PowerPoint decks". Fidelity on real decks
|
||
(corporate templates, SmartArt, `chartex` charts, embedded fonts, EMF) is still mostly unknown.
|
||
- **Estimate:** 20–35 h: grow the owned corpus in `storytold/photocraft-corpus` style (craftrules
|
||
`standards/test-corpora.md`), add render checks, have the owner open outputs in PowerPoint, fix
|
||
what breaks. **Beta blocker.**
|
||
|
||
### Round trip loses media playback options and animation rewind (#74, #77)
|
||
- **Evidence:** issues filed 2026-10-10 by an automated reviewer; media playback options and the
|
||
animation rewind flag aren't written back. Comment threads left with #70: the writer now emits
|
||
the `p188` modern part next to the legacy one.
|
||
- **Impact:** a deck opened and saved silently loses show behaviour.
|
||
- **Estimate:** 2–4 h. **Beta blocker.**
|
||
|
||
### SVG pictures don't render
|
||
- **Evidence:** `crates/render/src/images.rs` decodes through `image` 0.25 (PNG, JPEG, WebP, GIF,
|
||
TIFF, BMP), and EMF/WMF through `deckcraft-metafile` (ported from WordCraft: paths, fills, pens,
|
||
pattern and hatch brushes, bitmaps and text; rectangle clip regions are applied, EMF+ only
|
||
pictures play their EMF+ records).
|
||
Nothing reads SVG; PowerPoint's Insert Icons stores SVG with a PNG fallback.
|
||
- **Impact:** SVG icons show only their raster fallback, and SVG files can't be inserted.
|
||
- **Estimate:** 4–8 h (an SVG renderer through `resvg`-style crates).
|
||
|
||
### Template, slide-show and macro variants are saved as plain `.pptx`
|
||
- **Evidence:** `crates/pptx/src/write/mod.rs` always writes the
|
||
`presentationml.presentation.main+xml` content type; `.potx`/`.ppsx` open, `.pptm`/`.potm`/`.ppsm`
|
||
aren't recognised.
|
||
- **Impact:** a template saved as `.potx` isn't a template to PowerPoint; macro decks can't be
|
||
opened even to view.
|
||
- **Estimate:** 2–4 h (content types; keep `vbaProject.bin` untouched without running it).
|
||
|
||
### No legacy `.ppt`/`.pot`/`.pps` import
|
||
- **Evidence:** PowerPoint for Mac still opens and saves the 97–2003 binary formats
|
||
(`CFBundleDocumentTypes`); DeckCraft doesn't read them.
|
||
- **Impact:** archives of older decks don't open.
|
||
- **Estimate:** 20–35 h (import only, from the public [MS-PPT] spec). Owner decision whether it's
|
||
worth it.
|
||
|
||
### No OpenDocument `.odp`
|
||
- **Evidence:** PowerPoint opens and saves `.odp`.
|
||
- **Impact:** LibreOffice users and public-sector exchange.
|
||
- **Estimate:** 12–20 h (read and write the common subset).
|
||
|
||
### PDF export rasterizes slide artwork
|
||
- **Evidence:** `crates/pdf` places each slide as an image under a selectable text layer, links and
|
||
bookmarks.
|
||
- **Impact:** large PDFs; blurry when zoomed or printed.
|
||
- **Estimate:** 5–8 h (vector paths, fills and text through the PDF writer). **Beta blocker.**
|
||
|
||
### No printing
|
||
- **Evidence:** checklist row "Print" is missing; PR #66 (browser print) is open.
|
||
- **Impact:** handouts and speaker notes are printed in many workplaces.
|
||
- **Estimate:** 5–8 h (print through the PDF path and each OS's print dialog). **Beta blocker.**
|
||
|
||
### No video or animated GIF export
|
||
- **Evidence:** checklist row missing; PowerPoint exports MP4/MOV and animated GIF.
|
||
- **Impact:** sharing a talk as a video is a common request.
|
||
- **Estimate:** 10–16 h (render the timeline frame by frame; an H.264 encoder is the hard part,
|
||
FilmCraft has one to copy).
|
||
|
||
### Embedded MicroType Express font subsets aren't drawn
|
||
- **Evidence:** `p:embeddedFontLst` is read and written. A raw TrueType/OpenType face, or one inside an Embedded OpenType wrapper, is loaded and used to draw. A MicroType Express subset (`application/x-fontdata` with neither form) is kept and written back, and the text still uses a stand-in.
|
||
- **Impact:** decks that embed a MicroType subset reflow until that face is installed.
|
||
- **Estimate:** 3–5 h.
|
||
|
||
## Features
|
||
|
||
### Font weights beyond Regular, Bold and Italic (#69)
|
||
- **Evidence:** #69; the font database maps a family to four faces.
|
||
- **Impact:** Light, Medium and Semibold headings (common in modern templates) render wrong.
|
||
- **Estimate:** 3–5 h. **Beta blocker.**
|
||
|
||
### Image paste fails on Windows and Linux (#53)
|
||
- **Evidence:** #53 (v0.3.0, Fedora AppImage and Windows).
|
||
- **Impact:** copy-paste of screenshots is a core workflow.
|
||
- **Estimate:** 2–4 h. **Beta blocker.**
|
||
|
||
### Tab inside a text box ends text entry (#78)
|
||
- **Evidence:** #78.
|
||
- **Impact:** tab stops and indented lists can't be typed.
|
||
- **Estimate:** 1–2 h.
|
||
|
||
### Charts: data grid, elements and the newer chart types
|
||
- **Evidence:** checklist rows "Edit chart data" (P0, partial), "Chart elements" (partial), "Other
|
||
chart types" (partial); `chartex` parts (waterfall, funnel, treemap, sunburst, histogram, Pareto,
|
||
box & whisker) are read, drawn, inserted, edited and saved as `chartEx` (kept unchanged, else
|
||
written from the model, with a plain chart fallback). Waterfalls float and total, funnels,
|
||
treemaps (squarified, nested by level with group banners) and sunbursts (one ring per level)
|
||
have their own layouts, histograms and Paretos bin their data (count, width or Scott's rule),
|
||
and box & whisker charts use exclusive or inclusive quartiles with 1.5 IQR whiskers. Region maps are kept
|
||
(their cached geography too, also through edits) and drawn as value-coloured tiles with a
|
||
colour scale, since DeckCraft ships no map boundaries. Radar charts are drawn polar (filled
|
||
or lines), stock charts as high-low lines with close dashes or up/down bars and saved as
|
||
`c:stockChart`, and combo charts start as columns with a line. Trendlines round-trip
|
||
(`corpus_charts.rs`) and are drawn: linear, exponential, logarithmic, polynomial, power and
|
||
moving average, with forecast and the equation and R² label. A moving average is drawn with
|
||
neither label. A combo chart's secondary value axis is read (`y2_*`,
|
||
`Series.secondary_axis`) and is not written back when the chart is rebuilt.
|
||
- **Impact:** most business decks have charts; editing their data is routine.
|
||
- **Estimate:** 12–20 h. Data and elements are **beta blockers** (6–10 h).
|
||
|
||
### SmartArt editing is shallow
|
||
- **Evidence:** a SmartArt graphic keeps its outline (`Shape.diagram`) and has a Text Pane, Add
|
||
Shape, Promote, Demote, Remove and layout switching (`crates/engine/src/cmd/smartart.rs`). On
|
||
`.pptx` the outline is written as a real diagram (data, layout, quick style, colours and the
|
||
cached drawing; `crates/pptx/src/dgm.rs`), and PowerPoint diagrams read their outline from the
|
||
data model, so they get the Text Pane too. 15 layouts (bullet and block lists, five process, two cycle and
|
||
a radial, hierarchy, two pyramids, two matrices), four SmartArt Styles and Change Colors
|
||
(colourful or one accent). Still missing: DeckCraft's own layout definitions are simple (not yet
|
||
checked in PowerPoint itself); PowerPoint has ~200 layouts, picture layouts and 3-D styles; editing an
|
||
imported diagram's outline redraws it with DeckCraft's layout; a diagram with no cached drawing
|
||
isn't drawn.
|
||
- **Impact:** a PowerPoint diagram edited in DeckCraft changes look.
|
||
- **Estimate:** 6–10 h.
|
||
|
||
### Animation Pane, effect count and preview
|
||
Animations ▸ Preview and the pane's Play All play the current slide's animations on the editor
|
||
canvas (Escape or a click stops them). Still open: the advanced timeline, starting from the
|
||
selected effect, and most of the effect gallery. Detail in
|
||
[animation-parity.md](animation-parity.md). 10–16 h; the pane's timeline is a **beta blocker**.
|
||
|
||
### Interactive decks: media-action links, audio-triggered effects and click boxes
|
||
- **Evidence:** the slide show plays click-triggered animations, keeps each slide's state across
|
||
visits and ignores shapes an animation has hidden (`crates/anim/src/interact.rs`). Still open,
|
||
found by running three classroom game decks (Jeopardy-style boards, hide-and-reveal, score
|
||
counters): a click on a shape whose action is "play sound" (`ppaction://media`, 126 and 486
|
||
shapes in two decks) does nothing; triggers that start on `onStopAudio` or `begin` conditions are
|
||
not read as triggers; click boxes are the shape's bounding box (a hexagon's corners count) and do
|
||
not follow a shape that a motion path has moved; the PPTX writer turns every "on click" after the
|
||
first effect of a trigger into "after previous", so a trigger with several click steps saved from
|
||
DeckCraft plays all of them at once.
|
||
- **Impact:** games built around sound effects on buttons, or around a button that counts up with
|
||
repeated clicks, lose that part when they are saved from DeckCraft or played in it.
|
||
- **Estimate:** 4–8 h.
|
||
|
||
### Notes and Handout masters
|
||
- **Evidence:** View ▸ Handout Master and View ▸ Notes Master edit both masters (placeholders,
|
||
background, a slides-per-page preview for handouts) and PPTX keeps them. Notes pages (view and
|
||
PDF) place the slide and notes where the notes master does and print its header, date, footer
|
||
and page number in their own fonts, sizes and colours; PDF handouts print the handout master's.
|
||
Notes Master view previews the slide in its slide-image placeholder. PDF pages lay master text
|
||
out with the text engine (wrapping, mixed formatting), and the Notes Page view draws the same
|
||
layout. Left: the view draws it in the interface font (sizes, colours and weights kept).
|
||
- **Estimate:** done for beta.
|
||
|
||
### Edit points, text warp, 3-D
|
||
- **Evidence:** checklist rows "Edit points" (P1 missing), "Text warp transforms" (partial: all 40
|
||
`prstTxWarp` presets render, their adjusts round-trip, and Shape Format ▸ Text Effects ▸
|
||
Transform applies one with `format.textWarp`; still open are adjust handles, and arc/circle
|
||
placement can differ from PowerPoint by 1–3 % of the path length), "Bevel and 3-D rotation"
|
||
(partial: bevels, camera presets and rotations and face lighting render as approximations and
|
||
`scene3d`/`sp3d` round-trip as raw XML; no extrusion or side faces, only the three-point rig, and
|
||
no command or pane to apply 3-D).
|
||
- **Estimate:** 4–6 h (edit points), 1–2 h (warp adjust handles), 6–10 h (3-D extrusion,
|
||
- **Evidence:** checklist rows "Edit points" (P1 partial: Edit Points converts a shape to a freeform, vertices drag, Ctrl/Cmd-click adds or deletes; no point types or Bézier control handles), "Text warp transforms" (partial: all 40
|
||
- **Evidence:** checklist rows "Edit points" (P1 partial: Edit Points converts a shape to a freeform, vertices drag, Ctrl/Cmd-click adds or deletes, smooth/straight/corner points and Bézier handles; no Straight/Curved Segment or Open/Close Path), "Text warp transforms" (partial: all 40
|
||
`prstTxWarp` presets render and their adjusts round-trip, but there is no Transform gallery or
|
||
command to apply one, no adjust handles, and arc/circle placement can differ from PowerPoint by
|
||
1–3 % of the path length), "Bevel and 3-D rotation" (partial: bevels, camera presets and rotations and face lighting
|
||
render as approximations and `scene3d`/`sp3d` round-trip as raw XML; no extrusion or side faces,
|
||
only the three-point rig, and no command or pane to apply 3-D).
|
||
- **Estimate:** 1 h (edit points: segment types, open/close path), 2–4 h (warp gallery, command and handles), 6–10 h (3-D extrusion,
|
||
render as approximations and `scene3d`/`sp3d` round-trip as raw XML; extrusions draw their
|
||
sides under turned cameras, each lit for its own normal; the preset light rigs, rig directions and
|
||
materials shade bevels and sides approximately (fitted to PowerPoint for three-point/matte only); contours draw as a
|
||
band round the face outline (not round the extruded silhouette); no command or pane to apply 3-D).
|
||
- **Estimate:** 4–6 h (edit points), 2–4 h (warp gallery, command and handles), 1–2 h (fitting the other rigs and materials
|
||
to PowerPoint renders), plus the Format Shape page.
|
||
`prstTxWarp` presets render, their adjusts round-trip, and a selected warp shows a yellow handle
|
||
per adjust that dragging sets; still no Transform gallery or command to apply one, and arc/circle
|
||
placement can differ from PowerPoint by 1–3 % of the path length), "Bevel and 3-D rotation"
|
||
(partial: bevels, camera presets and rotations and face lighting render as approximations and
|
||
`scene3d`/`sp3d` round-trip as raw XML; no extrusion or side faces, only the three-point rig, and
|
||
no command or pane to apply 3-D).
|
||
- **Estimate:** 4–6 h (edit points), 1–2 h (Transform gallery and command), 6–10 h (3-D extrusion,
|
||
rigs and materials, Format Shape page).
|
||
|
||
### Proofing: spelling, thesaurus, AutoCorrect
|
||
- **Evidence:** `review.spelling` checks a small built-in list of frequent misspellings
|
||
(`crates/engine/src/cmd/review.rs`); no dictionaries, no thesaurus. AutoCorrect has PowerPoint's options (two initial capitals,
|
||
sentence and day capitals, caps lock, fractions, an editable replace list); no AutoFormat of
|
||
ordinals or automatic bulleted lists, no undo of a single correction.
|
||
- **Estimate:** 8–14 h (Hunspell-format dictionaries under an open licence per language).
|
||
- **Evidence:** `review.spelling` checks with Hunspell-format dictionaries the system already has
|
||
(`crates/engine/src/spell.rs`: affixes, cross products, one level of continuation, compounds,
|
||
case rules, suggestions), each run in its own language (`lang` from PPTX), with a user dictionary
|
||
for Add to Dictionary. Red squiggles on the current slide come from a worker thread, with a
|
||
context menu to correct, ignore or add; table cells and speaker notes are squiggled too, each
|
||
with a right-click menu; repeated words (`the the`) are flagged with Delete Repeated Word;
|
||
Review › Language marks the selection's proofing language or Do Not Check Spelling
|
||
(`lang`/`noProof` round-trip in PPTX). No grammar checking. The web build checks on the UI thread a few milliseconds per
|
||
frame. None ship with DeckCraft, so without one installed (always on Windows and the web) only a
|
||
short list of common misspellings is found.
|
||
Thesaurus (#549) and AutoCorrect (#521) have open PRs.
|
||
- **Estimate:** 1–2 h (bundle openly licensed dictionaries).
|
||
|
||
### Equations
|
||
- **Evidence:** checklist row missing; PR #55 (OMML editor, +10.5k lines) is open.
|
||
- **Estimate:** 3–6 h to review, land and round-trip.
|
||
|
||
### Smaller missing rows
|
||
Zoom (summary/section/slide, 6–10 h), reuse slides (2–4 h), laser pointer (1–2 h), transition
|
||
sounds (1–2 h), artistic effects (6–10 h), compress pictures (2–3 h), insert screenshot (2–3 h), record audio/screen and record slide
|
||
sounds (1–2 h), artistic effects (3–6 h for the other 15 of 22; 7 approximated and round-tripped), remove background (6–10 h; needs a model or a classical
|
||
Zoom (summary/section/slide, 6–10 h), reuse slides (2–4 h), transition
|
||
sounds (1–2 h), artistic effects (6–10 h), remove background (6–10 h; needs a model or a classical
|
||
matte), compress pictures (2–3 h), insert screenshot (2–3 h), record audio/screen and record slide
|
||
show (8–12 h), compare presentations (6–10 h), password protection (4–6 h, ECMA-376 agile
|
||
encryption), ink to shape/text (6–10 h), 3-D models and stock content (6–10 h; Insert › Icons places a Lucide stroke set).
|
||
show (8–12 h), compare presentations beyond slide-level accept (reject, per-object accept,
|
||
markers on the slide: 3–5 h), password protection (4–6 h, ECMA-376 agile
|
||
encryption), ink to shape/text (6–10 h), icons and 3-D models (8–14 h, needs an open icon set).
|
||
|
||
## UI/UX
|
||
|
||
Detail in [ui-parity.md](ui-parity.md).
|
||
|
||
- **No native macOS menu bar.** `menus::menu_tree()` exists but nothing installs it. 3–5 h. **Beta
|
||
blocker.**
|
||
- **Format Shape pane thinner than PowerPoint's** (Fill/Line/Effects/Size/Text Box pages, picture
|
||
and texture options, 3-D). 6–10 h. **Beta blocker.**
|
||
- **File tab depth** (#76 landed the Backstage): no online templates, cloud places, printer
|
||
choice, video/GIF/CD exports or document protection. 4–8 h for the parts that need no cloud.
|
||
- **Window chrome** (#71 macOS controls misaligned, #26 GNOME title bar, #41 system light/dark).
|
||
2–4 h.
|
||
- **Icon consistency across Craft apps** (#73, #56). 2–4 h; coordinate in craftrules.
|
||
- **Dialogs**: 28 dialogs vs PowerPoint's ~60 (Font, Find/Replace dialog,
|
||
- **Dialogs**: 28 dialogs vs PowerPoint's ~60 (Font, Bullets and Numbering, Find/Replace dialog,
|
||
Replace Fonts, Action Settings, Print, Insert Object…). 8–14 h.
|
||
- **Dialogs**: 28 dialogs vs PowerPoint's ~60 (Font, Bullets and Numbering, Find/Replace dialog,
|
||
Replace Fonts, Action Settings, Print, Insert Object…). Size and Position is one of the 28. 8–14 h.
|
||
- **Dialogs**: 28 dialogs vs PowerPoint's ~60 (Photo Album is one of them). Still missing Font,
|
||
- **Dialogs**: 28 dialogs vs PowerPoint's ~60 (Photo Album is one of them; Edit Photo Album reopens it). Still missing Font,
|
||
Bullets and Numbering, Find/Replace, Replace Fonts, Action Settings, Print, Insert Object…. 8–14 h.
|
||
- **Dialogs**: 28 dialogs vs PowerPoint's ~60. Create New Theme Colors (Design › Colors ›
|
||
Customize Colors…) edits the open master's twelve theme colours, not a saved library of named
|
||
schemes. Still missing: Font, Bullets and Numbering, Find/Replace dialog, Replace Fonts, Action
|
||
Settings, Print, Insert Object. 8–14 h.
|
||
- **Dialogs**: 28 dialogs vs PowerPoint's ~60. Create New Theme Fonts (Design › Fonts ›
|
||
Customize Fonts…) edits the open master's heading and body latin faces and the scheme name.
|
||
It is not a saved library of theme fonts, and it does not pick East Asian or complex-script
|
||
faces. Still missing: Font, Bullets and Numbering, Find/Replace dialog, Replace Fonts, Action
|
||
Settings, Print, Insert Object. 8–14 h.
|
||
- **Dialogs**: 28 dialogs vs PowerPoint's ~60 (Font, Bullets and Numbering, Find/Replace dialog,
|
||
Action Settings, Print, Insert Object…). 8–14 h.
|
||
- **Dialogs**: 30 dialogs vs PowerPoint's ~60 (Font, Find/Replace dialog, Replace Fonts, Print,
|
||
Insert Object…). Size and Position, Bullets and Numbering, Action Settings and Date and Time are in. 8–14 h.
|
||
- **Dialogs**: 28 dialogs vs PowerPoint's ~60. The Font dialog is in (family, size, style, underline,
|
||
colour, strikethrough, baseline, caps, character spacing, one undo step). Still missing: Bullets
|
||
and Numbering, Find/Replace, Replace Fonts, Action Settings, Print, Insert Object…. 6–12 h.
|
||
- **Dialogs**: 29 dialogs vs PowerPoint's ~60. The Font dialog and the Paragraph dialog are in
|
||
(Paragraph: alignment, first-line and hanging indents, spacing before/after, line spacing, and a
|
||
Tabs dialog, each OK one undo step). Still missing: Bullets and Numbering, Find/Replace, Replace
|
||
Fonts, Action Settings, Print, Insert Object…. 4–8 h.
|
||
- **Command palette defaults to an Export entry that fails** (#79). 0.5 h.
|
||
|
||
## Hardware
|
||
|
||
Detail in [hardware-parity.md](hardware-parity.md).
|
||
|
||
- **Presenter view isn't placed on the second display**; the show doesn't pick the projector. 3–5 h.
|
||
**Beta blocker.**
|
||
- **CPU slide rasterization** (`vello_cpu`); PowerPoint renders on the GPU. 12–20 h (vello hybrid
|
||
or wgpu path).
|
||
- **Software-only video decode**; PowerPoint uses VideoToolbox/Media Foundation. 8–14 h (copy
|
||
FilmCraft's hardware decode).
|
||
- **No pen pressure or tilt for ink**; no pinch-zoom (it does not keep the point under the pointer). A two-finger twist does rotate the selected shapes. 3–6 h.
|
||
- **No pen pressure or tilt for ink**; no pinch-zoom. A trackpad swipe turns the page when the
|
||
slide fits the window, and during the show. 2–4 h for pinch-zoom.
|
||
|
||
## Localization
|
||
|
||
Detail in [localization-parity.md](localization-parity.md).
|
||
|
||
- **English only, no string catalog** (#15, #30; Ukrainian PR #34 open). PowerPoint for Mac ships
|
||
26 languages. Infrastructure 8–14 h, then 3–16 h per language plus native review. Beta needs the
|
||
infrastructure and at least Simplified Chinese, Spanish, French, German and Japanese (~30–45 h).
|
||
- **Hangul in the interface needs an installed Korean font** (#101). craft-fonts has no Korean face
|
||
(Noto CJK is excluded by the asset policy), so the web build draws Korean file names, notes and
|
||
outline text as boxes; desktop borrows Malgun Gothic, Apple SD Gothic Neo or Noto Sans CJK.
|
||
Adding an openly licensed Korean face (e.g. Nanum Gothic, OFL) to craft-fonts: 1–2 h.
|
||
- **UI isn't mirrored for right-to-left languages.** 6–10 h.
|
||
- **Browser build draws Arabic and Hebrew as missing-glyph boxes in exports** (#81). 1–2 h.
|
||
|
||
## Performance
|
||
|
||
- **Baseline measured, not compared.** `cargo xtask bench` (and `deckcraft-cli bench FILE`) times
|
||
open, per-slide render, save, PPTX round trip and PDF export, and peak memory, against a saved
|
||
baseline; show frame rate isn't measured and there are no PowerPoint numbers to set beside it.
|
||
2–4 h.
|
||
- **Morph aligns outlines every frame** (#67, PR open). 1 h.
|
||
|
||
## Ecosystem
|
||
|
||
- **Six original starter decks; PowerPoint's large template gallery remains.** File › New and the
|
||
start screen offer Briefing, Lesson, Pitch, Field Notes, Quarterly and Evening Talk
|
||
(`file.new {template}`), each a few slides on one of our themes. Dozens of further offline
|
||
designs, and any online gallery, are still absent. 4–8 h for a larger original set (asset policy:
|
||
our own designs only).
|
||
- **No add-ins or VBA.** Out of scope by policy; MCP/CLI automation is the alternative.
|
||
|
||
## AI features
|
||
|
||
- **No Designer, Copilot, Speaker Coach, live subtitles or Translate.** All are Microsoft cloud
|
||
services; an offline rule-based Designer is in the catalogue (P2). Local models (speech-to-text
|
||
for subtitles, translation) need an owner decision on licensed models. 20–40 h.
|
||
|
||
## Revision history
|
||
|
||
| Date | Change | Summary |
|
||
|---|---|---|
|
||
| 2026-10-13 | minor | EMF/WMF rectangle clip regions (`INTERSECTCLIPRECT`, `EXCLUDECLIPRECT`, `EXTSELECTCLIPRGN`) limit later drawing. EMF+ records remain |
|
||
| 2026-10-13 | minor | Embedded fonts are read, written and drawn (TrueType, OpenType, Embedded OpenType). The gap is now MicroType Express subsets, which are kept but not drawn |
|
||
| 2026-10-13 | minor | WordArt Transform gallery: Shape Format ▸ Text Effects lists the 40 presets and No Transform; `format.textWarp` applies one (adjust handles still open) |
|
||
| 2026-10-13 | minor | Edit Points: smooth/straight/corner point types, Bézier handle dragging, right-click point menu, no selection box while editing |
|
||
| 2026-10-13 | minor | Edit Points: convert to freeform, drag, add and delete vertices (`shape.editPoints`, `shape.movePoint`, `shape.addPoint`, `shape.deletePoint`); left: point types and control handles |
|
||
| 2026-10-13 | minor | Owned PPTX corpus round-trip (parts and text). Notes-master header and footer text is kept; the corpus gap is now a larger set and PowerPoint reference renders |
|
||
| 2026-10-13 | minor | Owned PPTX corpus for comments, links and actions, custom shows, rotated groups and inherited placeholders. Paragraph `defRPr` and action sounds kept. Embedded fonts and #70/#74/#77 stay open |
|
||
| 2026-10-13 | minor | Owned PPTX corpus for text effects, body layout, theme effects, fills, bevels and connectors. A run's inner shadow, reflection and soft edge, and a bevel preset with no kept 3-D XML, are kept. #70, #74, #77 and embedded fonts stay open |
|
||
| 2026-10-13 | minor | Benchmark suite (`cargo xtask bench`, `deckcraft-cli bench`): the performance gap is now frame rate and a PowerPoint comparison |
|
||
| 2026-10-14 | minor | Owned corpus `corpus_media.rs`: 3-D model parts and animation bounce end now round-trip. The real-deck corpus and #70/#74/#77 stay open |
|
||
| 2026-10-14 | trivial | Corpus slice: themes, masters, effects and links; text Mouse Over actions round-trip |
|
||
| 2026-10-14 | trivial | A moving average trendline is drawn without an equation or an R² label |
|
||
| 2026-10-14 | minor | Chart trendlines are drawn (six types, forecast, equation and R²). The charts gap stays open for the data grid, chartex and secondary-axis export; the real-deck corpus gap stays open |
|
||
| 2026-10-14 | minor | Chart trendlines round-trip. The real-deck corpus gap stays open; secondary-axis export and drawing trendlines stay in the charts gap |
|
||
| 2026-10-14 | trivial | 3-D contours |
|
||
| 2026-10-14 | trivial | 3-D light rigs and materials; extrusion sides lit per side |
|
||
| 2026-10-14 | trivial | 3-D extrusions draw their sides under turned cameras |
|
||
| 2026-10-14 | minor | Insert › Icons places Lucide 1.56.0 stroke icons as custom shapes. The checklist row stays missing until 3-D models and stock content exist |
|
||
| 2026-10-14 | minor | Size and Position dialog landed (position, size, rotation, scale, lock aspect, one undo). The dialog gap remains Font, Bullets and Numbering, Find/Replace, Replace Fonts, Action Settings, Print, Insert Object and the rest of the ~60 |
|
||
| 2026-10-14 | minor | File › New has six original starter decks; a large template gallery is still open |
|
||
| 2026-10-14 | minor | An IME composition in a table cell is underlined in place, and the caret and candidate window sit in that cell |
|
||
| 2026-10-14 | trivial | Photo Album dialog counted (28 vs ~60). Font, Bullets, Find, Replace Fonts, Action Settings, Print and Insert Object remain |
|
||
| 2026-10-14 | trivial | Edit Photo Album reuses the Photo Album dialog (still 28 vs ~60). Font, Bullets, Find, Replace Fonts, Action Settings, Print and Insert Object remain |
|
||
| 2026-10-14 | minor | Create New Theme Colors is in (dialogs 27 → 28). Font, Bullets and Numbering, Find/Replace, Replace Fonts, Action Settings, Print and Insert Object stay open |
|
||
| 2026-10-14 | minor | Create New Theme Fonts is in (dialogs 27 → 28): heading and body latin on the open master. Font, Bullets and Numbering, Find/Replace, Replace Fonts, Action Settings, Print and Insert Object stay open |
|
||
| 2026-10-14 | minor | Insert › Date and Time dialog. Dialog count 27 → 28; Font, Bullets and Numbering, Find/Replace, Replace Fonts, Action Settings, Print and Insert Object are still missing |
|
||
| 2026-10-13 | minor | Artistic effects: 7 of 22 (blur, pencil grayscale, line drawing, film grain, cutout, glow edges, photocopy) applied, removed and round-tripped (`a14:imgLayer`) |
|
||
| 2026-10-14 | trivial | Notes Page view draws master text wrapped, as the PDF does |
|
||
| 2026-10-14 | trivial | PDF master header/footer text wraps and keeps mixed formatting |
|
||
| 2026-10-14 | trivial | Notes Master slide preview; master header/footer text keeps its formatting |
|
||
| 2026-10-14 | minor | Notes pages and PDF handouts follow the notes and handout masters |
|
||
| 2026-10-14 | minor | Notes Master view: the masters gap is now notes pages and PDF handouts following the masters |
|
||
| 2026-10-14 | minor | Handout Master view: the masters gap is now the Notes Master view and handout text in PDF |
|
||
| 2026-10-13 | minor | Owned PPTX corpus for tables, charts, animations, media, sections and masters. Handout-master text is kept; the corpus gap is now a larger set and PowerPoint reference renders |
|
||
| 2026-10-13 | minor | Laser pointer in the slide show (checklist row Partial). Highlighter, eraser and a laser driven from presenter view remain |
|
||
| 2026-10-13 | trivial | Command palette skips commands that need a value, so Export opens the dialog (#79) |
|
||
| 2026-10-14 | minor | Design ▸ Effects applies a named effect scheme. The checklist row stays P, so breadth stays 79%. Dialogs stay 27 |
|
||
| 2026-10-14 | minor | Slide Master Preserve and Title/Footers placeholders. Checklist letters unchanged (breadth stays 79%); dialogs stay 27 |
|
||
| 2026-10-13 | minor | AutoCorrect options: case rules, fractions, ellipsis, a larger built-in list and your own entries (`text.autocorrect`, Tools ▸ AutoCorrect) |
|
||
| 2026-10-14 | trivial | Notes spelling menu, Review › Language with Do Not Check Spelling, repeated words |
|
||
| 2026-10-14 | trivial | Spelling squiggles in table cells and notes, and on the web |
|
||
| 2026-10-14 | minor | Spelling squiggles while typing, Add to Dictionary, per-run languages and compounds |
|
||
| 2026-10-14 | minor | Spelling checks with installed Hunspell dictionaries and suggests corrections |
|
||
| 2026-10-13 | minor | Animation preview plays the current slide on the editor canvas; the pane gap keeps the timeline, preview from the selected effect, and the remaining effects |
|
||
| 2026-10-14 | minor | A two-finger twist rotates the selected shapes. Pinch-zoom is still open |
|
||
| 2026-10-14 | minor | A trackpad swipe (and the mouse wheel, in the show) turns the page. Pinch-zoom remains |
|
||
| 2026-10-14 | minor | Paragraph dialog sets alignment, indentation, spacing and line spacing in one step; its Tabs… button opens a standalone Tabs dialog |
|
||
| 2026-10-14 | minor | Font dialog sets typeface, size, style, underline, colour, strikethrough, baseline, caps and character spacing in one step |
|
||
| 2026-10-13 | minor | Grid Options dialog sets spacing, snap and whether gridlines and guides show; the on-screen grid follows that spacing |
|
||
| 2026-10-13 | minor | WordArt adjust handles: a selected text warp shows one yellow handle per adjust, and dragging it sets that guide value (gallery and command still open) |
|
||
| 2026-10-13 | minor | Shape, picture and table rendering checked against PowerPoint on ~150 synthetic edge-case slides; 3-D bevels, cameras and face lighting now render approximately (gap narrowed to extrusion, rigs and the 3-D pane) |
|
||
| 2026-10-13 | minor | Interactive decks: triggers, return-to-slide state and click rules landed in the slide show; the remaining pieces are one new entry under Features |
|
||
| 2026-10-12 | minor | IME composition in slide text and notes, and CJK interface text with real glyphs (#101): the IME gap is now Korean on the web and table-cell underlines |
|
||
| 2026-10-12 | minor | EMF/WMF text, pattern and hatch brushes drawn; legacy OLE and ActiveX previews shown; the SVG gap keeps only EMF clip regions |
|
||
| 2026-10-12 | minor | Text warps render (all 40 presets, adjusts round-trip); the warp gap is now the gallery, command and handles |
|
||
| 2026-10-10 | minor | Noted that no gap blocks alpha (core-workflow gate passes) |
|
||
| 2026-10-10 | major | Created: every gap from the 2026-10-10 re-measure and the 16 open GitHub issues, ranked, with beta blockers marked |
|