Files
wordcraft/docs/gaps.md
T
30993ffb3f Track Changes: moves (w:moveFrom/w:moveTo) (#400) (#404)
Moved text is tracked as a move instead of a deletion plus an insertion:
- Model: Revision::move_name links the source (a deletion revision) and
  the destination (an insertion revision) of a move; runs and paragraph
  marks keep using ins/del, so everything that hides deletions or exports
  the result treats the moved-away text like a deletion.
- DOCX: w:moveFrom / w:moveTo inside w:moveFromRangeStart/End and
  w:moveToRangeStart/End (ECMA-376 17.13.5.21-28) are read as linked moves,
  paragraph marks included; on save the ranges are written around each
  moved stretch with the move's name, author and date, moved-away text in
  w:t. A move missing an end, or whose range never ends, opens as a plain
  deletion and insertion.
- Recording: with Track Changes on, a cut of a paragraph or at least a
  sentence gets a revision of its own; pasting it right after makes both
  a move (pasted paragraph marks are tracked as inserted too).
- Accept/Reject at either end resolves both; the Reviewing Pane lists
  moveFrom/moveTo with the move name and "Moved from"/"Moved to".
- Markup: green, double strikethrough at the source and double underline
  at the destination; "Moved from"/"Moved to" balloons.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
2026-10-11 15:12:59 -04:00

15 KiB
Raw Blame History

Where WordCraft falls short of Word

Last reviewed: 2026-10-10 · Last updated: 2026-10-11 · Change: trivial (#24 narrowed: Customize Keyboard and Customize Ribbon landed; previously trivial: formatting revisions landed, #41; previously trivial: Draw Table and Eraser landed, #303; previously minor: beta distance restated: ~15 points, ~150–230 h; previously: first version; every known shortfall from the 2026-10-10 re-measure, ranked) · Target: Microsoft Word (Microsoft 365) for Mac 16.113.4

The work list. One entry per shortfall, ranked by how much it stops a Word user from switching (B = blocks beta). Each says what's missing, the evidence, who it hurts, an Opus 5.5 agent wall-clock estimate, and which parity document tracks it. Agents: pick from the top, check open PRs first (gh pr list), and update this file and the parity doc when a gap closes.

Ranked

# Gap B Evidence Impact Hours Doc
1 DOCX never tested on real-world files. No corpus of files from Word, Google Docs, LibreOffice and Pages has been opened, rendered and round-tripped and compared with Word page by page B No corpus in the repo; crates/docx/tests are synthetic fixtures; "DOCX fidelity corpus: not started" since 2026-10-06 Everyone: the files people receive are the files that break 30–50 file-format-parity.md
2 Ink and drawing canvases are dropped on open and lost on save, silently; OLE objects show only their picture B No ink or drawing-canvas (wpc) handling in crates/docx; group shapes (wpg) read and written (#267). Charts and SmartArt are drawn (#292) and, with OLE objects, written back with all their parts on save (#319) Documents with diagrams drawn in Word or pen notes lose content without warning 4–8 to preserve ink and drawing canvases; 45–70 to render and edit charts and SmartArt (#13) file-format-parity.md
3 Crashes and freezes in the field: startup crash on Intel UHD Graphics (#170) (lag on GPUs without a DirectX 12 driver fixed, #316), freezes (#77, #59 Thai fonts, #31 font selector), no writes without admin on Windows 11 (#218), broken shape tool (#142), images can't be moved (#82) B 62 open issues, ~15 of them crashes, hangs or data-path failures Anyone hit loses work or trust; the never-crash standard covers panics, not hangs or GPU driver faults 20–30 target-app-parity.md (Stability)
4 Pagination differs from Word: Aptos has no metric-matched substitute; legacy compatibility options ignored; no page-by-page comparison harness B layout-parity.md; typing-parity.md Known gaps Page counts and line breaks differ, which matters for forms, legal and academic work 30–50 + owner (font) layout-parity.md
5 Content controls are lost (w:sdt unwrapped). Move tracking landed (#400): w:moveFrom/w:moveTo with their named ranges round-trip, a tracked cut and paste of a paragraph or sentence records a move, either end accepts/rejects both, green double strike/underline markup and "Moved from/to" balloons; still missing: drag-and-drop moves (no text drag yet) and move options in Track Changes Options. Formatting revisions landed (#41): w:rPrChange/w:pPrChange/w:tblPrChange/w:trPrChange/w:tcPrChange/w:sectPrChange/w:numberingChange round-trip, are recorded while tracking, accepted/rejected and shown in balloons; still missing: tracked style-definition changes and table/section changes made in WordCraft B Issues #41, #400; source grep Legal and editorial review workflows; templates with form controls 5–8 file-format-parity.md
6 No native printing on desktop: File › Print opens the PDF in the system viewer, which prints (#286); no print dialog of our own (printer, copies, ranges); web prints through the browser (#209) B ui.print → apps/wordcraft/src/print.rs; issue #15 Everyone who prints 5–8 hardware-parity.md
7 Dialog depth: 35 modal dialogs vs Word's ~100 (Caption, Index, TOC options, Citation, Compare, Protect, Language, Hyphenation, Line Numbers, Envelopes, Labels, AutoCorrect, Options panes…) B Dialog enum in crates/ui-egui/src/dialogs.rs Power users reach for dialogs the ribbon alone doesn't cover 20–30 ui-parity.md
8 Proofing is English only; no language per run, no dictionaries for other languages crates/proof has one dictionary; Word ships 120 proofing tools; issues #25, #40, #100 Every non-English writer 25–45 localization-parity.md
9 Password-protected files can't be opened or saved #55; docbin detects and refuses RC4/XOR Corporate and legal users 6–10 file-format-parity.md
10 Objects: no group (#267 open), text in a freely rotated text box (free rotation and flips landed, #332; text direction, alignment and linked text boxes landed, #369; contour wrap and wrap side landed, #354), shape effects, WordArt, connectors, dragging members inside a Drawing Canvas (the canvas landed, #344) parity-checklist.md (Shape Format 6/6, Layout › Group) Newsletters, flyers, reports with diagrams 20–30 target-app-parity.md
11 Interface languages: 8 of the 12 key languages missing (hi, ar, fr, id, de, ko, vi, pt-PT); no mirrored RTL interface; ~5% of strings still English in the six translated catalogs localization-parity.md Most of the world's writers 50–80 localization-parity.md
12 Draw tab / ink: pens, pencil, highlighter, eraser, Select and Hide Ink landed (#307); missing: Lasso Select, Add Pen, Ink to Shape, Ink to Math, Ink Replay, pressure, Word's own ink (w14:contentPart/InkML) parity-checklist.md (Draw 5/11) Pen and tablet users 8–14 hardware-parity.md
13 Charts and SmartArt editing (own renderer, chart data editing, SmartArt layouts) insert.chart, insert.smartArt missing Reports and business documents 45–70 target-app-parity.md
14 .doc can't be written; metafile pictures and Word 6/95 files refused crates/docbin is read-only Users exchanging files with old Word or legacy systems 25–40 file-format-parity.md
15 References depth: sources not saved in DOCX (#169 open); no EndNote/Mendeley desktop integration Sources live only in the session (#169 open) Students and researchers 6–10 target-app-parity.md
16 Right-to-left completeness: kashida, RTL in HTML/ODT/RTF; eight older RTL bug reports to re-verify after #207 (#215, #211, #199, #66, #63, #48, #19). RTL tables and sections landed (#362) layout-parity.md Arabic, Persian, Hebrew writers 7–11 layout-parity.md
17 East Asian typography: vertical text, document grid, Asian Typography options (Phonetic Guide landed, #288; Enclose Characters landed, #297) Catalog misses para.asianTypography Chinese, Japanese and Korean documents 16–24 layout-parity.md
18 Screen-reader access to the document canvas untested AccessKit enabled; no tests Blind and low-vision users; public-sector procurement 10–15 ui-parity.md
19 RTF and ODT depth: notes, comments, revisions, sections, RTL ~1,500 lines each in crates/formats Users exchanging with LibreOffice or older tools 18–27 file-format-parity.md
20 Performance on large real-world documents unmeasured (500+ pages, many pictures) Only the 188-page sample benchmark Thesis and book authors 10–20 layout-parity.md
21 Mail merge data sources: no Outlook/Contacts, Access or database sources, no email merge; CSV, typed lists (#247) and Excel/OpenDocument spreadsheets (#334) only Select Recipients reads .csv/.tsv, .xlsx/.xlsm and .ods Office administrators 4–8 target-app-parity.md
22 Ecosystem: no VBA execution (macros preserved only), no Office add-ins, no cloud storage, no real-time co-authoring .docm keeps macros (#172) Enterprise users with macro templates; teams 40–80 + owner decisions target-app-parity.md
23 PDF Reflow (open a PDF as an editable document, Word for Windows) Users who edit PDFs they receive 30–50 file-format-parity.md
24 Default shortcuts: ~135 of Word's ~250 (#330, #339, #343; Customize Keyboard #368, Customize Ribbon and the Quick Access Toolbar #379 landed) ui-parity.md Power users 4–7 ui-parity.md
25 In-app AI assistant (Copilot-style draft, rewrite, summarize) Chat PR #178 open Users expecting Copilot 15–30 + owner (provider) target-app-parity.md
26 Minor formats: Flat OPC XML, Word 2003 XML, MHT, Works/WordPerfect Rare 20–35 file-format-parity.md
27 View windows: Side by Side, Synchronous Scrolling, Arrange All, Switch Windows parity-checklist.md (View 25/29) Comparing documents 3–5 ui-parity.md
28 Dictate tools.dictate missing Dictation users 8–15 + owner (speech model) hardware-parity.md
29 Equations: ink equations #191 notes; long display equations wrap at operators (#326) Maths-heavy documents 2–3 layout-parity.md

Beta needs #1–#7 (~150–230 h with the stability and layout work they imply): they are the blocking gaps, and closing them lifts file formats, layout, stability and UI enough to take the full number from ~60% to ~75%. Everything else is depth on the way to full parity.

By kind

The same gaps grouped the way the parity documents are, for agents working in one area.

  • Feature gaps: #2 (preserve), #5, #10, #12, #13, #15, #17, #21, #25, #27, #28, #29; Clipboard pane, Manage Styles, Group (open PRs exist for the first three — review and merge before re-implementing). Paste Special, Advanced Find, Column Selection, Style Inspector, custom table styles, and Draw Table and Eraser (#303) landed on 2026-10-10.
  • UI/UX gaps: #7, #18, #24; crop handles on the canvas (rotation handle landed, #332); table column drag on the ruler (#49, #217); context menus for objects and tables; Linux title bar theming (#78).
  • File-format gaps: #1, #2, #5, #9, #14, #19, #23, #26; embedded fonts; glossary/building blocks.
  • Hardware gaps: #6, #12, #28; scanner/Continuity Camera insert; KDE soft text (#140).
  • Localization gaps: #8, #11, #16, #17; native-speaker review of every catalog (human).
  • Stability and performance gaps: #3, #20.

Revision history

Date Change Summary
2026-10-11 trivial Move tracking landed (#400); gap #5 narrowed to content controls, 5–8 h
2026-10-11 trivial #4: note options per section (below text, end of section, restart each section/page) and the Footnote and Endnote dialog (#385)
2026-10-11 trivial #10: Shape Format › Text: text direction, align text and linked text boxes (#369)
2026-10-11 trivial #16: right-to-left tables (w:bidiVisual) and sections (w:bidi) laid out mirrored, with table.rtl and layout.sectionRtl (#362)
2026-10-11 trivial #4: columns balance before a continuous section break (#350)
2026-10-11 trivial #21: Excel (.xlsx/.xlsm) and OpenDocument (.ods) spreadsheets as recipient lists (#334); hours 6–10 → 4–8
2026-10-11 trivial Insert › Icons landed (#309); removed from the objects gap
2026-10-11 trivial #24 narrowed: Customize Ribbon and Quick Access Toolbar customization landed (#379); the default shortcuts remain
2026-10-11 trivial #24 narrowed: Customize Keyboard landed (#368); Customize Ribbon and the Quick Access Toolbar remain
2026-10-11 trivial #24: Word's field keys (Alt+F9, Shift+F9, Ctrl+Shift+F9, Ctrl+F11, Ctrl+Shift+F11, F11, Shift+F11) (#339)
2026-10-10 trivial #24: 125 of ~250 keyboard shortcuts after #330
2026-10-11 trivial Collapsed duplicate rows left by parallel merges
2026-10-11 trivial All 12 bibliography styles landed (#383); removed from References depth
2026-10-11 trivial Formatting revisions landed (#41); gap #5 narrowed to move tracking and content controls, 8–12 h
2026-10-10 trivial Draw Table and Eraser landed (#303); removed from the feature-gap list
2026-10-10 trivial Tabs and Borders and Shading dialogs landed (#320); removed from the dialog-depth list
2026-10-10 trivial Columns, Symbol and Field dialogs landed (#321); removed from the dialog-depth list
2026-10-10 trivial #2 narrowed: charts and SmartArt drawn (#292), and with OLE objects kept on save (#319); group shapes landed (#267); ink and drawing canvases remain
2026-10-10 trivial #4: a document's own footnote separators and continuation notice are drawn and kept on save (#352)
2026-10-10 trivial #4: long footnotes continue onto the next page (#352)
2026-10-10 trivial Define New Multilevel List and Track Changes Options dialogs landed (#328); removed from the dialog-depth list
2026-10-11 trivial Enclose Characters landed (#297); removed from the East Asian typography gap
2026-10-11 trivial Phonetic Guide (ruby) landed (#288): gap 17 narrowed
2026-10-10 trivial #10: wrap side (both sides, left, right, largest) for Square, Tight and Through objects (#354)
2026-10-10 trivial #10: Tight and Through wrapping follow the object's outline (#354)
2026-10-10 trivial #10: free rotation and flips for pictures, shapes and text boxes, with a rotation handle (#332); text boxes rotate their frame; their text stays upright
2026-10-10 trivial #10: Drawing Canvas landed (#344); in-canvas dragging of members remains
2026-10-10 trivial #29: long display equations wrap across lines (#326)
2026-10-10 trivial #3: Windows lag on GPUs without a DirectX 12 driver fixed with an OpenGL fallback (#316)
2026-10-10 trivial #6: desktop File › Print opens the system PDF viewer (#286)
2026-10-10 trivial Table Properties dialog landed (#44); removed from the dialog-depth list
2026-10-10 trivial Merged main: landed features removed from the feature-gap list
2026-10-10 minor Beta note restated: full number back to the additive ~60% (method aligned with the standard, no new evidence)
2026-10-10 major First version, from the full re-measure: 29 ranked gaps with evidence, impact and hours
2026-10-10 trivial #307: Draw tab pens, eraser and Hide Ink landed; ink gap narrowed