mcp-v0.15.2
Now I have enough information to write the release notes. Let me compile them based on the commits, changes, and voice guide:
What's New
- Document Host β Headless structured document runtime for invoking operations and exporting .docx files without the visual editor.
Fixes
- Image rendering inside textbox β Images now display correctly within textbox shapes.
- Toolbar with mixed fonts β Shows blank instead of falling back to Arial when multiple fonts are selected.
- Font picker dropdown β Opens on input click instead of requiring double-click.
- CJK wrapping after numeric runs β Line breaking now works correctly in long-word scenarios.
- Heading style conflicts β Localized Word styles now resolve correctly to inherit from built-in style definitions.
- Nested structured document tags β SDTs now render when nested inside other SDTs.
- Tracked changes in editing mode β Direct typing stays plain text instead of being marked as a change.
- Tracked rewrite corruption β Large single tracked mutations now use coarse whole-range rewrites to prevent artifact anchors in projected edits.
Improvements
- Table border fidelity β Compound borders (double, triple, thinThick variants) now render with measured band widths matching Word; interior gridlines paint continuously.
- Border conflict resolution β Shared cell edges resolve by weight, style, and color per ECMA-376 spec.
- Table styles β Base shading from table styles surfaces as the wholeTable conditional layer; conditional regions resolve correctly across gridSpan and vMerge.
- Percent-width tables β Tables now honor authored grid proportions instead of content-sizing; total width and column splits match Word exactly.
- Merged cell rendering β vMerge-only rows retain one-line height; interior row boundaries paint continuously without gaps.
- Outset/inset borders β Render as separate-borders bevel (raised frames and sunken cells) instead of heavy black lines.
- Document diffing β Enhanced change detection algorithms.
Breaking Changes
The following unstable Document API operations have been removed β use core insert/delete/replace operations instead:
blocks.split,blocks.merge,blocks.movelists.getState,lists.apply,lists.continue,lists.restart,lists.removetables.moveRowparagraphs.setMarkRunProps