fix: pack full desktop dependency closure + resolve bun/desktop plugin loading on Windows
Desktop "Local" mode crashed with ERR_MODULE_NOT_FOUND because electron-builder's pnpm collector drops `deduped` subtrees, so engine's transitive closure (@modelcontextprotocol/sdk, pi-ai provider SDKs, etc.) was never packed. Stage the complete flat prod closure with `pnpm deploy --legacy --config.node-linker=hoisted` and package it via `electron-builder --projectDir deploy`, bypassing the lossy collector entirely. Also make the dashboard-imported example plugins loadable under plain Node (the Electron main runtime): cursor/droid/roadmap now expose compiled `dist` on the `import` condition (keeping `source`→src for the bun CLI) and are built during the desktop build. Add `source` conditions to paperclip/agent-browser/even-cards/ even-realities-glasses/whatsapp-chat so the bun `--conditions=source` Windows CLI compile resolves them from source. Validated on macOS: @fusion/core|engine|dashboard import cleanly from the staged deploy; packing yields a complete 705-package asar; bun-windows-x64 cross-compiles with all plugin dist removed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
4
.github/workflows/desktop-windows.yml
vendored
4
.github/workflows/desktop-windows.yml
vendored
@@ -38,7 +38,7 @@ jobs:
|
||||
# Code-signing hardening is intentionally deferred to FN-5592.
|
||||
- name: Package signed Windows EXE
|
||||
if: ${{ env.WINDOWS_CERTIFICATE_BASE64 != '' }}
|
||||
run: pnpm --filter @fusion/desktop exec electron-builder --win --x64 --arm64 --publish never
|
||||
run: pnpm --filter @fusion/desktop exec electron-builder --projectDir deploy --win --x64 --arm64 --publish never
|
||||
env:
|
||||
WINDOWS_CERTIFICATE_BASE64: ${{ secrets.WINDOWS_CERTIFICATE_BASE64 }}
|
||||
CSC_LINK: ${{ secrets.WINDOWS_CERTIFICATE_BASE64 }}
|
||||
@@ -48,7 +48,7 @@ jobs:
|
||||
|
||||
- name: Package unsigned Windows EXE
|
||||
if: ${{ env.WINDOWS_CERTIFICATE_BASE64 == '' }}
|
||||
run: pnpm --filter @fusion/desktop exec electron-builder --win --x64 --arm64 --publish never
|
||||
run: pnpm --filter @fusion/desktop exec electron-builder --projectDir deploy --win --x64 --arm64 --publish never
|
||||
env:
|
||||
WINDOWS_CERTIFICATE_BASE64: ${{ secrets.WINDOWS_CERTIFICATE_BASE64 }}
|
||||
CSC_IDENTITY_AUTO_DISCOVERY: "false"
|
||||
|
||||
8
.github/workflows/release.yml
vendored
8
.github/workflows/release.yml
vendored
@@ -143,7 +143,7 @@ jobs:
|
||||
# Use `exec electron-builder` rather than the `dist:win` script: pnpm leaks
|
||||
# the `--` separator into script args (electron-builder then stops parsing
|
||||
# at `--` and ignores `--publish never`, auto-publishing to the wrong repo).
|
||||
run: pnpm --filter @fusion/desktop exec electron-builder --win --publish never
|
||||
run: pnpm --filter @fusion/desktop exec electron-builder --projectDir deploy --win --publish never
|
||||
env:
|
||||
CSC_IDENTITY_AUTO_DISCOVERY: "false"
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -196,7 +196,7 @@ jobs:
|
||||
|
||||
- name: Package signed macOS desktop DMG/ZIP
|
||||
if: ${{ env.APPLE_CERTIFICATE_BASE64 != '' }}
|
||||
run: pnpm --filter @fusion/desktop exec electron-builder --mac --publish never
|
||||
run: pnpm --filter @fusion/desktop exec electron-builder --projectDir deploy --mac --publish never
|
||||
env:
|
||||
APPLE_CERTIFICATE_BASE64: ${{ secrets.APPLE_CERTIFICATE_BASE64 }}
|
||||
CSC_LINK: ${{ secrets.APPLE_CERTIFICATE_BASE64 }}
|
||||
@@ -209,7 +209,7 @@ jobs:
|
||||
|
||||
- name: Package unsigned macOS desktop DMG/ZIP
|
||||
if: ${{ env.APPLE_CERTIFICATE_BASE64 == '' }}
|
||||
run: pnpm --filter @fusion/desktop exec electron-builder --mac --publish never -c.mac.notarize=false
|
||||
run: pnpm --filter @fusion/desktop exec electron-builder --projectDir deploy --mac --publish never -c.mac.notarize=false
|
||||
env:
|
||||
APPLE_CERTIFICATE_BASE64: ${{ secrets.APPLE_CERTIFICATE_BASE64 }}
|
||||
CSC_IDENTITY_AUTO_DISCOVERY: "false"
|
||||
@@ -295,7 +295,7 @@ jobs:
|
||||
|
||||
- name: Package Linux desktop artifacts
|
||||
# Linux desktop code-signing is deferred to FN-5605; Linux ARM64 CLI binaries are tracked in FN-5606.
|
||||
run: pnpm --filter @fusion/desktop exec electron-builder --linux --x64 --arm64 --publish never
|
||||
run: pnpm --filter @fusion/desktop exec electron-builder --projectDir deploy --linux --x64 --arm64 --publish never
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user