Skip to content

Ship five extensions built-in; fix packaging and Explorer integration - #21

Merged
braden-seaborn merged 3 commits into
mainfrom
feat/bundled-extensions-and-packaging-fixes
Jul 29, 2026
Merged

Ship five extensions built-in; fix packaging and Explorer integration#21
braden-seaborn merged 3 commits into
mainfrom
feat/bundled-extensions-and-packaging-fixes

Conversation

@braden-seaborn

Copy link
Copy Markdown
Contributor

Makes a packaged Vousoir build possible for the first time, and gives it the out-of-the-box surface it was meant to have.

Why this is bigger than it looks

build.ps1 could not produce a packaged build before this branch. Five independent pre-existing defects were stacked on top of each other, each only surfacing once the previous was cleared:

  1. gulpfile.vscode.ts dereferenced product.win32ContextMenu![arch].clsid on a product.json that has no such key — packaging threw instantly
  2. @azure/identity missing from build/node_modules (environment, fixed by reinstall — no repo change)
  3. Dead esbuild entry points in buildfile.ts
  4. More dead entry points and resources in build/next/index.ts and gulpfile.vscode.ts
  5. spawn signtool.exe ENOENT in the post-packaging -ci step — still open, see below

3 and 4 are fallout from the Layer 2 AI excision: src/vs/sessions/, src/vs/platform/agentHost/ and src/vs/platform/browserView/ were deleted but stayed enumerated in the build manifests. Note that build/next/index.ts is the real bundler for desktop as well as web — build/lib/esbuild.ts spawns it.

Bundled extensions

Extension Version Source
PKief.material-icon-theme 5.37.0 Open VSX
tomoki1207.pdf 1.2.2 Open VSX
hediet.vscode-drawio 1.6.6 Open VSX
illixion.vscode-vibrancy-continued 1.1.86 Open VSX
zoellner.openapi-preview 2.3.2 vendored VSIX

Material Icon Theme is made the default via configurationDefaults on vousoir-core — an extension contribution point, not a core patch.

Explorer integration

  • code.iss: context-menu tasks default to checked, and ShouldUseWindows11ContextMenu() returns False without an appx. The second change is what makes the first real — without it, Windows 11 claims the modern menu, writes a marker for an appx that does not exist, and installs no context menu at all.
  • scripts/vousoir-shell-integration.ps1 registers the same entries under HKCU against an unpackaged build, so no installer is needed.
  • build.ps1 gains -Installer / -InstallerTarget.

Verification actually performed

  • All 8 built-ins re-downloaded after wiping .build/builtInExtensions, so the sha256s are proven, not cached. A negative test (flipped hex digit) confirms the vsix path really rejects a bad hash.
  • code.iss compiles clean end-to-end under ISCC → VousoirSetup.exe. A negative test reproduces the old appx failure.
  • node build/next/index.ts bundle --target desktop completes (20 bundles, 104 resources).
  • Full vscode-win32-x64-min reaches package-win32-x64 successfully → a working 1.07 GB Vousoir.exe with all five extensions present.
  • Shell-integration script round-tripped against the real registry: install, idempotent re-run, uninstall, ancestor prune. Neighbouring Cursor / MobaXterm entries left intact.

Not verified / known open

  • The installer has never been built. -Installer dies on spawn signtool.exe ENOENT after packaging succeeds. The shell script covers the context menu meanwhile, but that flag is unproven.
  • Menu-click behaviour was never observed end-to-end at the time of writing — registry mechanics proven, user-facing behaviour not.
  • The web build is unexercised. Sessions references were removed from its target too, but nothing ran it.
  • Vibrancy is withheld, not finished. 'included': falsevibrancy.ts does not yet cover empty pane areas, which show the system backdrop through and read as washed-out panels. Kept rather than reverted so the work can resume; getWindowVibrancy always resolves to none, so no window can be created with a backdrop.

Review notes

docs/v6r/PRE-PUBLISH-LICENSING.md is new and worth reading before any release — it records the vendored VSIX's unverified license, draw.io's GPL-3.0 source offer, and the missing ThirdPartyNotices entries. None of it blocks private use; all of it blocks distribution.

Ledger rows 10-18 in vousoir/PATCHES.md.

The first commit is unrelated pre-existing work (canvas gesture tests, dev launchers), split out so the build fixes stay reviewable on their own.

🤖 Generated with Claude Code

braden-seaborn and others added 3 commits July 28, 2026 21:34
Work that predates the extension-bundling effort, committed separately so
the build fixes that follow stay reviewable on their own.

- canvas webview: pan/zoom gesture handling plus a shared test fixture, and
  a rewrite of the existing smoke test onto it
- scripts/vousoir-dev.ps1, scripts/vousoir-web.ps1: launchers for the desktop
  app (throwaway profile + CDP port) and the browser workbench
- docs/v6r/DRIVING-THE-UI.md: how to drive the workbench from an agent
- .gitignore: exclude the two launcher run directories

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Makes a packaged Vousoir build possible for the first time and gives it the
out-of-the-box surface it was meant to have.

Bundled extensions (product.json builtInExtensions):
- PKief.material-icon-theme 5.37.0, tomoki1207.pdf 1.2.2,
  hediet.vscode-drawio 1.6.6, illixion.vscode-vibrancy-continued 1.1.86
  from the configured Open VSX gallery
- zoellner.openapi-preview 2.3.2 is absent from Open VSX, so it is vendored
  under vousoir/vendor/ and loaded through the existing sha256-verified
  "vsix" field
- Material Icon Theme is made the default via configurationDefaults on
  vousoir-core, not a core patch

Packaging fixes (all pre-existing breakage, none newly introduced):
- gulpfile.vscode.ts dereferenced product.win32ContextMenu![arch] on a
  product.json that has no such key, so packaging threw immediately
- the AI excision deleted src/vs/sessions, platform/agentHost and
  platform/browserView but left them enumerated in build/next/index.ts,
  buildfile.ts and gulpfile.vscode.ts; esbuild failed on unresolvable entry
  points, and the literal resource paths plus computeChecksums entries were
  latent second-stage failures

Explorer integration:
- code.iss: context-menu tasks default to checked, and
  ShouldUseWindows11ContextMenu returns False without an appx, without which
  Windows 11 would claim the modern menu and install no context menu at all
- scripts/vousoir-shell-integration.ps1 registers the same entries under
  HKCU against an unpackaged build, so no installer is required
- build.ps1 gains -Installer / -InstallerTarget

Also replaces the last Microsoft app-identity artwork under src/ with the
Vousoir wedge (code-icon.svg, five call sites).

Window vibrancy is implemented natively but withheld ('included': false) -
vibrancy.ts does not yet cover empty pane areas, which show the backdrop
through. Kept rather than reverted so the work can resume.

Ledger rows 10-18 in vousoir/PATCHES.md.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The five bundled extensions raise obligations that do not apply while Vousoir
is built and run privately, but do the moment a build is handed to anyone.
Captured now, while the context is fresh, rather than rediscovered at release.

Covers the vendored zoellner.openapi-preview VSIX (license unverified, and
committed to a repo that currently reads as public), draw.io's GPL-3.0 source
offer, the missing ThirdPartyNotices entries, and the unsigned-build gates.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

blocks-ci screenshots changed

Replace the contents of test/componentFixtures/blocks-ci-screenshots.md with:

Updated blocks-ci-screenshots.md
<!-- auto-generated by CI — do not edit manually -->

#### editor/codeEditor/CodeEditor/Dark
![screenshot](https://hediet-screenshots.azurewebsites.net/images/39a05bcaca290be0d933d158af78e9d3602d803aecccbe110d2beaa338dce249)

#### editor/codeEditor/CodeEditor/Light
![screenshot](https://hediet-screenshots.azurewebsites.net/images/c8b875cc4350b4022b93248fe13fe649e858ac2433c0fe6a03ed05f0bfb9b5e2)
Patch
--- test/componentFixtures/blocks-ci-screenshots.md	2026-07-29 02:44:58.043003046 +0000
+++ /tmp/blocks-ci-updated.md	2026-07-29 02:47:09.264151179 +0000
@@ -1,25 +1,7 @@
 <!-- auto-generated by CI — do not edit manually -->
 
-#### chat/aiCustomizations/aiCustomizationManagementEditor/AgentHostPromptMigration/Dark
-![screenshot](https://hediet-screenshots.azurewebsites.net/images/3992300a365cae00e6b78ab088bcd6562d1643534aa45f272b61c566c6b126e2)
-
-#### chat/aiCustomizations/aiCustomizationManagementEditor/AgentHostPromptMigration/Light
-![screenshot](https://hediet-screenshots.azurewebsites.net/images/70c9ac164e5358815b96da4db49b7a4d661be4d57b797e282a459142634e3fd3)
-
 #### editor/codeEditor/CodeEditor/Dark
-![screenshot](https://hediet-screenshots.azurewebsites.net/images/af3df9d90346c8473e8576c2aab60a9cab514ed0a130a2208fa72851e4884852)
+![screenshot](https://hediet-screenshots.azurewebsites.net/images/39a05bcaca290be0d933d158af78e9d3602d803aecccbe110d2beaa338dce249)
 
 #### editor/codeEditor/CodeEditor/Light
-![screenshot](https://hediet-screenshots.azurewebsites.net/images/62651503e0db22d7800352a848d4c6db4cdc56499fa40d5eac681958e9aea19a)
-
-#### editor/inlineChatZoneWidget/InlineChatZoneWidget/Dark
-![screenshot](https://hediet-screenshots.azurewebsites.net/images/a7b367873d69248568377a227d46be20b66947b1904367401c5938d940a08d4d)
-
-#### editor/inlineChatZoneWidget/InlineChatZoneWidget/Light
-![screenshot](https://hediet-screenshots.azurewebsites.net/images/a4ee1a268db2df16d5e29fc30f8a56ab169304fd7de7cb264e28fff4a5a42e77)
-
-#### editor/inlineChatZoneWidget/InlineChatZoneWidgetTerminated/Dark
-![screenshot](https://hediet-screenshots.azurewebsites.net/images/0752cf02ae3a4e21fce84b62859df32a5f41c13622bdec0083a3fd46832c2e0a)
-
-#### editor/inlineChatZoneWidget/InlineChatZoneWidgetTerminated/Light
-![screenshot](https://hediet-screenshots.azurewebsites.net/images/a29cfc0bf4510b57c82d9eae0d974babe7035042456326be861308cae609a1b5)
+![screenshot](https://hediet-screenshots.azurewebsites.net/images/c8b875cc4350b4022b93248fe13fe649e858ac2433c0fe6a03ed05f0bfb9b5e2)

@braden-seaborn
braden-seaborn merged commit 7aab558 into main Jul 29, 2026
6 of 21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant