π Sync stable β main#2654
Conversation
) * feat(vscode-ext): add test suite and clean up extension SD-2341: Add contract tests verifying SuperDoc API surface the extension depends on, plus build verification for the extension host bundle. - Contract tests check: class export, style.css export, prototype methods (export, destroy, getHTML, EventEmitter), and constructor config options - Build test verifies esbuild can bundle extension host without errors - Fix onError β onException (callback was silently ignored) - Remove unused VS Code config settings (autoSaveDelay, enableAutoSave) - Move acquireVsCodeApi() before first debug() call (was dead code) - Remove dead 'save' message from Ctrl+S handler - Remove unnecessary currentFileData state variable - Tighten contract test regexes to match config.* patterns - Remove vscode-build pre-commit hook (CI handles this) * ci(vscode-ext): add CI workflow and test step to release - New ci-vscode-ext.yml: runs lint, typecheck, tests, and extension host build on PRs touching vscode-ext or superdoc source - Add test step to release-vscode-ext.yml before publishing * ci: tighten workflow path filters to reduce spurious runs - ci-superdoc: add apps/mcp, apps/vscode-ext, packages/react, packages/sdk, evals to paths-ignore - ci-demos, ci-docs, ci-sdk: remove pnpm-lock.yaml from path triggers (lockfile changes alone shouldn't trigger unrelated CI)
SD-2342: Expand release workflow path triggers and use patch-commit-filter so superdoc core commits trigger VS Code extension releases. - Add superdoc source paths to release-vscode-ext.yml triggers - Replace semantic-release-commit-filter with patch-commit-filter.cjs (same pattern as CLI/SDK) - @next auto-deploys to GitHub releases only (low risk) - @latest still requires manual cherry-pick to stable (human gate)
- Remove outdated "not yet on Marketplace" text - Add install command, feature list, how it works section - Match CLI/SDK README structure and brand voice
Credit balance is too low
β¦2341) (#2558) * feat(vscode-ext): enable comments bubble rendering Show Word document comments in the editor by passing comments: { visible: true } to the SuperDoc constructor. * fix(vscode-ext): allow comment and tracked change balloons to render Remove display:flex and justify-content:center from #superdoc container so SuperDoc's internal layout can allocate space for the right margin where comment bubbles and tracked change balloons appear. * docs(vscode-ext): add demo GIF and rewrite README for Marketplace Add animated demo showing AI-driven tracked changes via MCP. Rewrite README with badges, feature list, install instructions, and AI integration section. * chore(vscode-ext): add icon, homepage, and Marketplace metadata Add SuperDoc brand logo as extension icon, homepage link, bugs URL, gallery banner color, and additional keywords for discoverability. * chore(vscode-ext): remove demo GIF from git, host externally Remove demo.gif from repo to avoid bloating git history with a 6.8MB binary. Add to .gitignore and .vscodeignore. README will reference a GitHub-hosted URL once uploaded.
Upstream superdoc commits with breaking change markers triggered a v2.0.0 bump. The extension has no public API β it just bundles superdoc β so breaking changes in the engine don't warrant a major version bump for the extension. Add releaseRules to cap at minor.
β¦tion Root cause of the v2.0.0 bump: package.json has version 0.0.0 (pnpm workspace convention) but @semantic-release/npm doesn't handle this correctly β it computed the version from package.json instead of the git tag. Switch to semantic-release-pnpm which resolves versions from tags, matching superdoc and react packages.
### What's New - **Word comments** β View and add Word comments with margin bubbles directly in the editor. ### Improvements - **Marketplace presence** β README redesigned with feature list, install instructions, and AI integration guide; extension now discoverable with improved keywords and gallery banner. - **Better documentation** β Added demo GIF, clarified AI integration via MCP, and linked to enterprise licensing. - **Extension metadata** β Added SuperDoc brand icon, homepage link, and issue tracker URL for better indexing. ### Internal - **Release process** β Switched to semantic-release-pnpm for correct version resolution from git tags, preventing version mismatches from pnpm workspace conventions. - **Stability** β Capped release bumps at minor version to prevent accidental major releases from upstream breaking changes (the extension has no public API). - **Tests** β Added test infrastructure with vitest. - **Comment rendering** β Fixed layout to allow comment bubbles and tracked change balloons to render in the right margin.
VS Code Marketplace can't resolve GitHub user-attachment URLs. Add demo.gif to the repo and vsix package so it renders on the Marketplace listing page.
### Fixes - **VS Code extension** β Demo GIF now bundles locally in the extension package, rendering correctly on the VS Code Marketplace.
β¦ntent The generic docPartObj handler was missing the normalizeDocPartContent() call that the TOC handler already had, causing documents with non-TOC gallery types (page numbers, bibliographies, cover pages) containing top-level inline nodes (bookmarks, comments, permissions) to fail with "Invalid content for node type documentPartObject". Also expanded the inline node type set to include commentRangeStart, commentRangeEnd, permStart, and permEnd. SD-2357
### Fixes - **Document part object normalization** β The generic document part handler now correctly normalizes inline nodes (bookmarks, comments, permissions) in non-TOC gallery types. Documents with page numbers, bibliographies, cover pages, and other gallery types no longer fail when they contain top-level inline content.
### Fixes - **Document part object normalization** β The generic handler for document parts now correctly normalizes inline nodes (bookmarks, comments, permissions) in non-TOC gallery types. Documents with page numbers, bibliographies, cover pages, and other structured gallery types no longer fail when they contain top-level inline content.
### Fixes - **VS Code extension marketplace rendering** β Removed shields.io badges that displayed "rate limited" status, and prevented vsce from rewriting relative image paths to incorrect GitHub raw URLs. - **Document part objects with inline content** β Non-TOC gallery types (page numbers, bibliographies, cover pages) now correctly normalize top-level inline nodes (bookmarks, comments, permissions) instead of failing with "Invalid content for node type documentPartObject."
The marketplace web page cannot load images from the VSIX bundle β it requires publicly accessible URLs. Use the full GitHub raw URL with the correct subdirectory path instead of a relative path.
### Fixes - **VS Code Marketplace** β The demo GIF now displays correctly on the extension's marketplace page. The extension previously used a relative image path, which the marketplace can't load; we now use the full GitHub raw URL.
### What's New - **Mathematical equations** β Render OMML math with browser-native MathML, including fractions, bars, and precise accent stretching; cursor positioning works after inline equations. - **Password-protected documents** β Open encrypted .docx files with a customizable password prompt surface; fully configurable UI text, titles, and error handling. - **Multi-column copy-paste** β Preserve column layout and structure when copying from multi-column sections; automatic image collision detection prevents overwrites. - **Document protection** β Create, manage, and remove permission ranges; set editing restrictions on document sections. - **Find and replace** β Built-in search and replace functionality with refresh on active transaction. - **Generic surfaces API** β Dialogs and floating panel support for custom extensions. - **Spell check infrastructure** β Proofing platform for integrating spell-check libraries. - **RTL table rendering** β Right-to-left tables respect w:bidiVisual with visually reversed columns, mirrored cell layout, and correct border handling. - **Word comments in VS Code** β View and add Word comments with margin bubbles directly in the extension editor. ### Improvements - **Block references** β Superdoc_create now returns a ref handle; use it directly in superdoc_format instead of searching first (33% fewer API calls). - **Block formatting accuracy** β Formatting now resolves through the full style-engine cascade (docDefaults β Normal style β paragraph style β inline marks) instead of just inline marks, ensuring accurate fontFamily, fontSize, color, and bold values even on style-driven formatting. - **AI tool descriptions** β Improved superdoc_create, superdoc_format, and superdoc_list guidance to prevent LLM misuse and simplify successful operations. - **Math accent rendering** β Underbars on compound expressions like x+y now stretch correctly (U+203E overline instead of combining marks); display style and Cambria Math font match Word rendering. - **RTL cursor navigation** β Arrow keys now move the cursor in the correct visual direction in Arabic and other RTL text; vertical navigation (up/down) works correctly with inverted search direction. - **Paragraph borders and spacing** β Border expansion now overlaps with paragraph spacing per ECMA-376, not stacking; fixed cursorY positioning and continuation fragment alignment after page breaks. - **Comment rendering** β Fixed layout to allow comment bubbles and tracked-change balloons to render in the right margin without overflow. - **Footnote rendering** β Reference markers normalize before superscript layout; render as scaled superscript digits with correct baseline shift handling. - **Toolbar dropdowns** β Better activation when editor is unfocused; font attributes queue correctly for delayed commands. - **VS Code extension marketplace** β README redesigned with feature list, install instructions, AI integration guide, and improved metadata for discoverability; extension icon and homepage link added. - **Inline structured content** β Inherit run formatting (bold, color, font) when inserting inline SDT elements; respect pending toolbar formatting. - **Table of contents** β Apply useAppliedOutlineLevel without requiring \o range switch; TOC with \u-only instructions now works correctly. ### Fixes - **Math cursor positioning** β Clicks in overflow areas around inline math equations now resolve to correct ProseMirror positions. - **Comment scrolling** β Fixed scroll behavior regression after painter refactor. - **RTL click-to-position mapping** β Clicks on RTL text now map to the correct document position; fixed hidden span handling in line bounds calculation. - **Diacritical marks in tracked changes** β Composition handling now allows diacritical symbols in track changes operations; dead-key placeholders work correctly. - **Style inheritance on Enter** β Pressing Enter at the end of unformatted text no longer inherits parent paragraph formatting; clearing formatting with an empty storedMarks array is now respected across paragraph splits and run management. - **Document part object normalization** β Non-TOC gallery types (page numbers, bibliographies, cover pages) now correctly normalize inline nodes (bookmarks, comments, permissions) instead of failing with "Invalid content" errors. - **Table cell newlines** β Newline characters in structured content table cells now split into separate paragraphs instead of losing content after the first newline. - **SDT hover in view mode** β Hovering block and inline structured content containers in viewing mode no longer shows background highlights. - **Comment export** β Resolved comments now export with correct w15:done attribute; commentsExtended.xml is included even when no threaded comments exist. - **VS Code extension marketplace rendering** β Demo GIF bundles locally in the VSIX package; image paths use absolute GitHub URLs instead of relative paths that the marketplace can't resolve. - **CLI validation** β Fixed inline-special insertion positioning and schema validation. - **Headless numbering sync** β Fixed infinite loop when list definitions are missing; sync now terminates correctly. - **DOCX export** β Handle null or undefined converter declaration with standard XML fallback (version="1.0" encoding="UTF-8" standalone="yes"). - **Layout engine architecture** β Removed remaining pm-adapter boundary leaks; layout-bridge now self-contained with local PX_PER_PT constant.
|
π This PR is included in superdoc v1.24.1 The release is available on GitHub release |
|
π This PR is included in superdoc-cli v0.5.0 The release is available on GitHub release |
|
π This PR is included in esign v2.2.0-next.9 The release is available on GitHub release |
|
π This PR is included in template-builder v1.3.0-next.8 The release is available on GitHub release |
|
π This PR is included in vscode-ext v1.1.0-next.52 |
|
π This PR is included in superdoc v1.24.0-next.49 The release is available on GitHub release |
|
π This PR is included in superdoc-sdk v1.3.0-next.49 |
|
π This PR is included in superdoc-cli v0.5.0-next.49 The release is available on GitHub release |
|
π This PR is included in superdoc-sdk v1.3.0 |
|
π This PR is included in vscode-ext v2.2.0 |
|
π This PR is included in superdoc-sdk v1.4.0 |
|
π This PR is included in superdoc v1.25.0 The release is available on GitHub release |
|
π This PR is included in superdoc-cli v0.6.0 The release is available on GitHub release |
|
π This PR is included in vscode-ext v2.3.0-next.1 |
|
π This PR is included in esign v2.3.0-next.1 The release is available on GitHub release |
|
π This PR is included in template-builder v1.5.0-next.1 The release is available on GitHub release |
Summary
Merges latest stable patches into main to keep branches in sync.
This ensures
@nextprereleases stay ahead of@latestreleases.Auto-created by sync-patches workflow.