gsxdsm
855061db5f
fix: harden workflow graph cutover paths and migrate cutover-era tests
...
Production fixes:
- executor.ts: add safeLogEntry() wrapper so synchronous throws from
store.logEntry don't abort pause/abort/finalize control flow.
- workflow-authoritative-driver.ts: pass built-in auxiliary custom nodes
(task-summary nodes, bypassable optional-groups) through as success
instead of throwing.
Test migrations for graph-native runtime (cherry-picked from closed PR #1869 ):
- executor-prompt: two-party barrier for global-pause disposal test.
- executor-task-done-invariant: assert merge-node boundary moveTask.
- workflow-graph-merge-region-collapse: updated for merge-region node shapes.
- executor-worktree/worktree-liveness/implicit-task-done-budget: graph-aware.
- CLI extension tests: shared engine-workflow-authoring-mock helper.
- Dashboard/desktop/reliability tests: cutover-aware assertion updates.
2026-07-02 07:32:47 -07:00
gsxdsm
84a40dd82e
chore(release): v0.54.0
...
Version bump via changesets.
2026-07-02 00:22:58 -07:00
gsxdsm
abd596b700
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 >
2026-07-01 20:40:02 -07:00
gsxdsm
7488e0971f
chore(release): v0.53.1
...
Version bump via changesets.
2026-07-01 19:38:51 -07:00
gsxdsm
3aef6dd5cf
fix: build @fusion/core and @fusion/engine dist in desktop packaging
...
The packaged desktop "Local" runtime dynamically imports @fusion/engine, whose
tsc dist is gitignored. desktop-windows.yml built only `@fusion/desktop build`
(no root `pnpm build`), so it packaged an empty engine/dist and the app crashed
on Local mode with ERR_MODULE_NOT_FOUND for app.asar/node_modules/@fusion/engine.
Make the desktop build self-contained (build core then engine before packaging)
and add the parity `pnpm build` step to desktop-windows.yml.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-01 19:34:11 -07:00
gsxdsm
8bb18d9d61
chore(release): v0.53.0
...
Version bump via changesets.
2026-07-01 18:31:44 -07:00
gsxdsm
a4049971e5
FN-7401: add Glass Silver dashboard theme
...
Adds a frosted silver/gray dashboard color theme across app, desktop, and release metadata.
- Register glass-silver in shared theme types, selector options, and startup validation hooks.
- Add Glass Silver CSS tokens, swatch styling, and dashboard/desktop stylesheet preload coverage.
- Cover theme registration, dropdown/selector rendering, theme persistence, and CSS token invariants with tests.
- Document the new dashboard theme and publish a minor changeset for @runfusion/fusion.
Files changed:
.changeset/fn-7401-glass-silver-theme.md | 7 +
docs/dashboard-guide.md | 3 +-
packages/core/src/types.ts | 2 +
.../app/__tests__/glass-silver-theme.test.ts | 155 ++++++++++++++++++++
.../dashboard/app/components/ThemeSelector.css | 14 ++
.../components/__tests__/ThemeDropdown.test.tsx | 13 ++
.../components/__tests__/ThemeSelector.test.tsx | 16 +++
packages/dashboard/app/components/themeOptions.ts | 1 +
.../dashboard/app/hooks/__tests__/useTheme.test.ts | 15 ++
packages/dashboard/app/index.html | 2 +-
packages/dashboard/app/public/theme-data.css | 156 +++++++++++++++++++++
packages/desktop/src/renderer/index.html | 1 +
12 files changed, 383 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-7401
Fusion-Task-Lineage: e64f14cc-590e-458b-adf6-7c9baa488157
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 18:01:17 -07:00
gsxdsm
1f3a15ec1c
FN-7360: fix Windows desktop runtime packaging
...
Fix packaged Windows desktop startup by preserving Node-safe runtime dependencies and dashboard registry assets.
- Externalize Electron main/preload npm packages so CommonJS updater dependencies load natively.
- Load the dashboard plugin registry manifest through file IO and copy it into dashboard server dist from all build paths.
- Split Windows NSIS and portable artifact names and verify required Electron runtime resources in CI.
- Cover the packaging/runtime invariants with desktop and dashboard regression tests.
Files changed:
.changeset/fn-7360-desktop-windows.md | 7 +++
.github/workflows/desktop-windows.yml | 21 ++++++++
packages/dashboard/package.json | 2 +-
.../src/__tests__/plugin-registry-dist.test.ts | 32 ++++++++++++
.../src/__tests__/routes-plugin-registry.test.ts | 10 ++--
packages/dashboard/src/plugin-routes.ts | 27 +++++++++-
packages/desktop/README.md | 5 +-
packages/desktop/electron-builder.yml | 9 ++++
packages/desktop/scripts/build.ts | 29 ++++++++--
packages/desktop/scripts/workspace-tools.ts | 4 ++
.../desktop/src/__tests__/build-bundling.test.ts | 61 ++++++++++++++++++++++
.../src/__tests__/electron-builder-config.test.ts | 15 ++++++
packages/desktop/src/__tests__/ipc.test.ts | 15 ++++++
.../desktop/src/__tests__/local-runtime.test.ts | 20 +++++++
14 files changed, 247 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-7360
Fusion-Task-Lineage: a2d88130-c24f-43e2-932a-1e174b6afa35
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 08:01:59 -07:00
gsxdsm
d4ce6f9319
chore(release): v0.52.0
...
Version bump via changesets.
2026-07-01 00:47:09 -07:00
gsxdsm
211b18b073
FN-7299: make Shadcn Ember the default dashboard theme
...
Set Shadcn Ember as the default dashboard theme while keeping Shadcn Gray available as an alternate.
- Add Shadcn Ember theme metadata, CSS variables, and boot-time defaults for dashboard and desktop shells.
- Update persisted settings types, schema defaults, and theme selection UI to prefer Ember.
- Cover Ember defaults and theme-option ordering with core, hook, and dashboard component tests.
- Add a published package changeset for the operator-facing default theme change.
Files changed:
.changeset/fn-7299-shadcn-ember-default.md | 7 ++
.../core/src/__tests__/global-settings.test.ts | 23 +++-
packages/core/src/__tests__/store-settings.test.ts | 10 +-
packages/core/src/settings-schema.ts | 6 +-
packages/core/src/types.ts | 4 +-
.../app/__tests__/shadcn-ember-theme.test.ts | 107 ++++++++++++++++
.../app/__tests__/shadcn-gray-theme.test.ts | 2 +-
.../dashboard/app/components/ThemeSelector.css | 15 +++
.../dashboard/app/components/ThemeSelector.tsx | 6 +-
.../components/__tests__/ThemeDropdown.test.tsx | 20 ++-
.../components/__tests__/ThemeSelector.test.tsx | 24 +++-
packages/dashboard/app/components/themeOptions.ts | 7 +-
.../dashboard/app/hooks/__tests__/useTheme.test.ts | 18 ++-
packages/dashboard/app/hooks/useTheme.ts | 8 +-
packages/dashboard/app/index.html | 10 +-
packages/dashboard/app/public/theme-data.css | 137 +++++++++++++++++++++
packages/desktop/src/renderer/index.html | 42 ++++++-
17 files changed, 409 insertions(+), 37 deletions(-)
Fusion-Task-Id: FN-7299
Fusion-Task-Lineage: 7e175752-b8fc-4ba9-8534-cb485f6eb18a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 13:43:28 -07:00
gsxdsm
8facc20eee
chore(release): v0.51.0
...
Version bump via changesets.
2026-06-28 12:49:55 -07:00
gsxdsm
729bd5e5f9
chore(release): v0.50.0
...
Version bump via changesets.
2026-06-27 18:10:19 -07:00
gsxdsm
fa4ee607b7
chore(release): v0.49.0
...
Version bump via changesets.
2026-06-26 12:06:05 -07:00
gsxdsm
4a4e389254
FN-7032: add signed Android release artifacts
...
Add secret-gated signed Android release packaging while preserving the unsigned fallback.
- Build signed Android release APK and AAB artifacts when keystore secrets are configured.
- Verify signed APKs, generate checksums for APK/AAB outputs, and include AABs in release aggregation.
- Document Android signing secrets, sideload verification, fallback artifacts, and Play upload scope.
- Cover the release and rehearsal workflow wiring with CLI and desktop workflow tests.
Files changed:
.github/workflows/release.yml | 94 ++++++++++++++++++----
.github/workflows/test-release.yml | 94 ++++++++++++++++++----
MOBILE.md | 18 ++++-
RELEASING.md | 34 ++++++--
packages/cli/src/__tests__/ci-workflow.test.ts | 24 ++++++
packages/desktop/README.md | 2 +-
.../desktop/src/__tests__/release-workflow.test.ts | 24 +++++-
7 files changed, 251 insertions(+), 39 deletions(-)
Fusion-Task-Id: FN-7032
Fusion-Task-Lineage: 0334c026-384e-4531-a2b2-f8a0b5bb7ff0
2026-06-25 20:20:33 -07:00
gsxdsm
dba65933e5
FN-7014: publish Android APK release artifacts
...
Adds Android APK generation to binary release and rehearsal workflows so GitHub releases ship mobile assets.
- Add Android build jobs that sync Capacitor, assemble the debug APK, and upload APK/checksum artifacts.
- Include Android artifacts in release and test-release collection dependencies and file matching.
- Document Android release outputs and extend workflow shape tests for the new asset path.
Files changed:
.github/workflows/release.yml | 86 +++++++++++++++++++++-
.github/workflows/test-release.yml | 85 ++++++++++++++++++++-
MOBILE.md | 2 +-
RELEASING.md | 10 ++-
packages/cli/src/__tests__/ci-workflow.test.ts | 6 +-
packages/desktop/README.md | 1 +
.../desktop/src/__tests__/release-workflow.test.ts | 24 +++++-
7 files changed, 201 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-7014
Fusion-Task-Lineage: 8ed94f64-399b-433f-add4-0294fc5722d1
2026-06-25 19:35:05 -07:00
gsxdsm
079c428af9
chore(release): v0.48.0
...
Version bump via changesets.
2026-06-24 23:56:23 -07:00
gsxdsm
8b81cceb17
fix(desktop): externalize @fusion/engine so desktop release builds pass
...
local-runtime.ts dynamically imports @fusion/engine, but it was missing from the
esbuild externals list (only @fusion/core and @fusion/dashboard were there). esbuild
followed the import and tried to bundle engine's transitive node-pty native .node
binaries, failing with "No loader is configured for .node files" — which broke every
desktop Windows EXE and macOS DMG build leg. Externalize @fusion/engine like the other
workspace packages; it resolves from node_modules at runtime.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-24 23:38:59 -07:00
gsxdsm
2ba81c25b4
chore(release): v0.47.0
...
Version bump via changesets.
2026-06-24 19:32:59 -07:00
gsxdsm
bac7049822
chore(release): v0.46.0
...
Version bump via changesets.
2026-06-23 12:27:50 -07:00
gsxdsm
b599b6ab41
chore(release): v0.45.0
...
Version bump via changesets.
2026-06-23 01:07:59 -07:00
gsxdsm
a986a45e48
FN-6852: document desktop engine startup
...
Clarify that desktop CLI launches with the local AI engine by default.\n\n- Document fn desktop as engine-on by default, matching dashboard startup behavior.\n- Clarify --paused keeps the engine process running with automation disabled.\n- Note that desktop has no --no-engine mode and update desktop README launch steps.\n\nFiles changed:\n docs/cli-reference.md | 12 ++++++++++--\n packages/desktop/README.md | 15 +++++++++++----\n 2 files changed, 21 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-6852
Fusion-Task-Lineage: 3ae2ea10-ede1-4cc5-a3b5-71f692b2a9ac
2026-06-21 13:25:41 -07:00
gsxdsm
42a1346d6c
fix: address engine startup review feedback
2026-06-21 02:15:24 -07:00
gsxdsm
7ef381762a
feat: start engines by default
2026-06-20 23:57:37 -07:00
gsxdsm
fc0636fe90
FN-6748: add Air dashboard theme
...
Adds a minimal, borderless Air color theme across dashboard theme selection and bootstrap validation.
- Register Air in the core theme union, dashboard theme options, and browser/desktop bootstrap validators.
- Add dark and light Air token blocks with flattened chrome styling and matching swatch samples.
- Cover Air registration and CSS invariants with a focused dashboard test.
- Document the Air theme alongside the existing Shadcn theme in dashboard theming guidance.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/core/src/types.ts | 2 +
packages/dashboard/app/__tests__/air-theme.test.ts | 58 ++++++++++++
.../dashboard/app/components/ThemeSelector.css | 14 +++
packages/dashboard/app/components/themeOptions.ts | 1 +
packages/dashboard/app/index.html | 2 +-
packages/dashboard/app/public/theme-data.css | 101 +++++++++++++++++++++
packages/desktop/src/renderer/index.html | 1 +
8 files changed, 179 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6748
Fusion-Task-Lineage: a0caf14f-673d-485c-8886-97e4b273b624
2026-06-19 16:47:34 -07:00
gsxdsm
c093f4a1e6
fix(desktop): skip native rebuild in electron-builder to unblock Windows release
...
electron-builder's default @electron/rebuild step walked the desktop app's
whole dependency tree and tried to source-build @homebridge/node-pty-prebuilt-multiarch
(Node-ABI prebuilds only, none for Electron) via node-gyp, which fails on the
Windows runner with "Could not find any Visual Studio installation". The app
bundles no native addon needing an Electron-ABI rebuild (it uses node:sqlite;
keytar/node-pty aren't in the files list and are loaded optionally), so the
rebuild was pointless. Set npmRebuild: false to skip it on all platforms.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 08:14:22 -07:00
gsxdsm
4373946a07
chore(release): v0.44.0
...
Version bump via changesets.
2026-06-19 07:34:26 -07:00
gsxdsm
d35f93e1ef
FN-6512: refresh mobile PWA icons
...
Refresh the dashboard launcher artwork so installed mobile PWAs use the Fusion brand mark.
- Generate 192px and 512px dashboard PWA icons from the canonical logo in the desktop icon generator.
- Bump the service-worker cache name so installed PWAs refresh cached icon assets.
- Strengthen PWA tests to validate icon wiring, PNG dimensions, opacity, and non-blank brand content.
- Document the PWA icon regeneration workflow and add a patch changeset.
Files changed:
.changeset/fn-6512-dashboard-pwa-icons.md | 5 +
docs/dashboard-guide.md | 4 +
packages/dashboard/app/__tests__/pwa.test.ts | 178 ++++++++++++++++++++---
packages/dashboard/app/public/icons/icon-192.png | Bin 5466 -> 4634 bytes
packages/dashboard/app/public/icons/icon-512.png | Bin 17687 -> 14826 bytes
packages/dashboard/app/public/sw.js | 2 +-
packages/desktop/scripts/generate-icons.ts | 75 +++++++---
7 files changed, 227 insertions(+), 37 deletions(-)
Fusion-Task-Id: FN-6512
Fusion-Task-Lineage: a7a46e0d-fa7d-4ca1-b49c-f083aed92b17
2026-06-16 22:29:07 -07:00
gsxdsm
f80b301af2
chore(release): v0.43.1
...
Version bump via changesets.
2026-06-14 22:43:49 -07:00
gsxdsm
4482425d4b
chore(release): v0.43.0
...
Version bump via changesets.
2026-06-14 00:43:13 -07:00
gsxdsm
43c54290a9
chore(release): v0.42.0
...
Version bump via changesets.
2026-06-13 12:11:05 -07:00
gsxdsm
63f1e097a2
FN-6366: fix desktop Vitest constructor mocks
...
Stabilize the desktop Vitest suite under Vitest 4.1.8 while keeping dashboard builds complete.
- Convert Electron constructor mocks to constructable function implementations for BrowserWindow, Tray, Notification, and LocalRuntimeManager.\n- Assert local runtime initialization uses the mocked home directory in desktop main-process tests.\n- Build dashboard runtime plugin packages before the desktop dashboard build.
Files changed:\n packages/desktop/scripts/workspace-tools.ts | 15 ++++++++++++++\n packages/desktop/src/__tests__/deep-link.test.ts | 4 +++-\n .../desktop/src/__tests__/main-integration.test.ts | 23 ++++++++++++++--------\n .../desktop/src/__tests__/main-local-mode.test.ts | 19 ++++++++++++++----\n .../desktop/src/__tests__/main.integration.test.ts | 21 ++++++++++++--------\n packages/desktop/src/__tests__/main.test.ts | 13 +++++++++---\n packages/desktop/src/__tests__/native.test.ts | 6 ++++--\n 7 files changed, 75 insertions(+), 26 deletions(-)
Fusion-Task-Id: FN-6366
Fusion-Task-Lineage: 4e4ccdbc-845f-47d9-a565-cc5d659cf089
2026-06-13 09:01:39 -07:00
gsxdsm
199990bd5a
Linux fixes
2026-06-12 21:50:49 -07:00
gsxdsm
045a74d249
chore(release): v0.41.0
...
Version bump via changesets.
2026-06-10 19:05:55 -07:00
gsxdsm
f0d6d70a32
chore(release): v0.40.1
...
Version bump via changesets.
2026-06-10 18:08:04 -07:00
gsxdsm
9f38b0d090
chore(release): v0.40.0
...
Version bump via changesets.
2026-06-10 17:58:39 -07:00
gsxdsm
8bc3d7b0a5
FN-6042: raise dependency security floors
...
Harden dependency floors and update the Vitest toolchain to patched releases.
- upgrade workspace vitest and @vitest/coverage-v8 dependencies to the 4.1 line across packages and plugins
- pin transitive protobufjs via pnpm overrides and lockfile updates to patched versions
- adapt Vitest configs, engine test helpers, and security-floor coverage for the new dependency baselines
- add the published CLI changeset and related workspace/package metadata updates included in the task branch
Files changed:
.changeset/fn-6042-security-dependencies.md | 5 +
AGENTS.md | 4 +
Dockerfile | 3 +
docs/PLUGIN_AUTHORING.md | 2 -
package.json | 3 +-
packages/cli/package.json | 4 +-
packages/cli/vitest.config.ts | 2 +-
packages/core/package.json | 4 +-
packages/core/vitest.config.ts | 2 +-
packages/dashboard/app/test/mockApi.ts | 4 +-
packages/dashboard/package.json | 4 +-
packages/dashboard/vitest.config.ts | 2 +-
packages/desktop/package.json | 4 +-
packages/desktop/vitest.config.ts | 2 +-
packages/droid-cli/package.json | 2 +-
packages/droid-cli/vitest.config.ts | 2 +-
packages/engine/package.json | 4 +-
.../engine/src/__tests__/executor-test-helpers.ts | 29 +-
.../engine/src/__tests__/gridlock-detector.test.ts | 5 +-
.../src/__tests__/heartbeat-scheduler.test.ts | 3 +-
packages/engine/src/__tests__/scheduler.test.ts | 24 +-
packages/engine/src/__tests__/self-healing.test.ts | 5 +
packages/engine/tsconfig.json | 3 +-
packages/engine/vitest.config.ts | 10 +-
packages/i18n/package.json | 2 +-
packages/i18n/vitest.config.ts | 7 +
packages/mobile/package.json | 2 +-
packages/mobile/vitest.config.ts | 2 +-
packages/pi-claude-cli/package.json | 2 +-
packages/pi-claude-cli/vitest.config.ts | 2 +-
packages/pi-llama-cpp/package.json | 2 +-
packages/pi-llama-cpp/vitest.config.ts | 2 +-
packages/plugin-sdk/package.json | 2 +-
packages/plugin-sdk/vitest.config.ts | 2 +-
.../examples/fusion-plugin-auto-label/package.json | 2 +-
.../fusion-plugin-auto-label/vitest.config.ts | 2 +-
.../examples/fusion-plugin-ci-status/package.json | 2 +-
.../fusion-plugin-ci-status/vitest.config.ts | 2 +-
.../fusion-plugin-notification/package.json | 2 +-
.../fusion-plugin-notification/vitest.config.ts | 2 +-
.../fusion-plugin-settings-demo/package.json | 2 +-
.../fusion-plugin-settings-demo/vitest.config.ts | 2 +-
plugins/fusion-plugin-acp-runtime/package.json | 2 +-
plugins/fusion-plugin-acp-runtime/vitest.config.ts | 2 +-
plugins/fusion-plugin-agent-browser/package.json | 2 +-
.../fusion-plugin-agent-browser/vitest.config.ts | 2 +-
.../fusion-plugin-cli-printing-press/package.json | 2 +-
.../vitest.config.ts | 2 +-
.../package.json | 2 +-
.../src/__tests__/orchestrator-live-output.test.ts | 4 +-
.../vitest.config.ts | 2 +-
plugins/fusion-plugin-cursor-runtime/package.json | 4 +-
.../fusion-plugin-dependency-graph/package.json | 4 +-
.../vitest.config.ts | 2 +-
plugins/fusion-plugin-droid-runtime/package.json | 2 +-
.../fusion-plugin-droid-runtime/vitest.config.ts | 2 +-
plugins/fusion-plugin-even-cards/package.json | 2 +-
plugins/fusion-plugin-even-cards/vitest.config.ts | 2 +-
.../package.json | 2 +-
.../vitest.config.ts | 2 +-
plugins/fusion-plugin-hermes-runtime/package.json | 2 +-
.../fusion-plugin-hermes-runtime/vitest.config.ts | 2 +-
.../fusion-plugin-openclaw-runtime/package.json | 2 +-
.../vitest.config.ts | 2 +-
.../fusion-plugin-paperclip-runtime/package.json | 2 +-
.../vitest.config.ts | 2 +-
plugins/fusion-plugin-reports/package.json | 2 +-
.../src/__tests__/review-panel.test.ts | 6 +-
plugins/fusion-plugin-reports/vitest.config.ts | 2 +-
plugins/fusion-plugin-roadmap/package.json | 2 +-
plugins/fusion-plugin-roadmap/vitest.config.ts | 2 +-
plugins/fusion-plugin-whatsapp-chat/package.json | 2 +-
.../fusion-plugin-whatsapp-chat/vitest.config.ts | 2 +-
pnpm-lock.yaml | 626 ++++++++-------------
.../__tests__/dependency-security-floor.test.mjs | 95 ++++
75 files changed, 475 insertions(+), 491 deletions(-)
Fusion-Task-Id: FN-6042
Fusion-Task-Lineage: fff6a1cb-8937-435c-9a91-b7c7a59cc80e
2026-06-08 15:19:27 -07:00
gsxdsm
b3fe830132
fix(FN-5988): include ms in desktop package runtime
...
Ensure packaged desktop apps include the transitive debug dependency needed by extract-zip during startup.
Fusion-Task-Id: FN-5988
2026-06-07 23:12:04 -07:00
gsxdsm
ec8e4d3b0d
FN-5988: fix desktop startup by lazy-loading archive parser deps
...
Prevent desktop startup failures by deferring archive parser dependencies until archive parsing runs.
- lazy-load `extract-zip` and `tar` inside archive parsing paths instead of at module import time
- add regression tests covering helper-only imports and dynamic loading for zip/tgz archive parsing
- include the desktop package's required @fusion/core runtime dependency groups in electron-builder packaging
Files changed:
.../src/__tests__/agent-companies-parser.test.ts | 115 +++++++++++++++++++++
packages/core/src/agent-companies-parser.ts | 4 +-
packages/desktop/electron-builder.yml | 44 ++++++++
3 files changed, 161 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-5988
Fusion-Task-Lineage: b31bf43b-791c-4cd1-a62f-7095badcb706
2026-06-07 18:51:46 -07:00
gsxdsm
a8c920daf9
chore(release): v0.39.0
...
Version bump via changesets.
2026-05-31 20:05:32 -07:00
Phil Larson
f8bda56716
fix(FN-166): bypass coordination-only overlap leases
...
Fusion-Task-Id: FN-166
2026-05-30 06:47:02 -07:00
gsxdsm
e153d00ee2
fix(desktop): declare author email so Linux .deb build succeeds
...
electron-builder's fpm target requires author 'email' in package.json;
without it the arm64/x64 .deb build failed (`Please specify author 'email'`).
Surfaced once the electron-builder --x64 --arm64 flags actually parsed.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-30 01:02:30 -07:00
gsxdsm
4148f43ce4
fix(release): honor --publish never, guard Windows signing, fix desktop spawn
...
Second pass after the cache/arch fix unblocked `pnpm build` and surfaced
later-stage failures:
- Desktop packaging called `pnpm --filter @fusion/desktop dist:mac -- <args>`,
but pnpm leaks the `--` separator into the script args. electron-builder
stops parsing at `--`, so `--publish never` was ignored — it auto-published
to api.github.com/repos/gsxdsm/fusion/releases and 404'd. The same leak
dropped Linux's `--x64 --arm64`. Switch all four desktop packaging steps to
`pnpm --filter @fusion/desktop exec electron-builder ...`, which forwards
args cleanly (verified locally).
- Windows CLI signing now skips when WINDOWS_CERTIFICATE_BASE64 is absent,
mirroring the macOS guard (was hard-failing the bun-windows-x64 job).
- Desktop build spawns workspace .cmd bins with shell:true on Windows; Node
rejects .cmd/.bat spawns without a shell (EINVAL) since CVE-2024-27980,
which broke `@fusion/desktop build` on the Windows runner.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-30 00:30:39 -07:00
gsxdsm
f659a07a25
chore(release): v0.38.1
...
Version bump via changesets.
2026-05-30 00:18:41 -07:00
gsxdsm
45d22586dc
chore(release): v0.38.0
...
Version bump via changesets.
2026-05-29 23:17:31 -07:00
gsxdsm
a960bb1031
chore(release): v0.37.0
...
Version bump via changesets.
2026-05-29 08:09:33 -07:00
gsxdsm
6c44ed16e7
chore(release): v0.36.0
...
Version bump via changesets.
2026-05-28 23:40:25 -07:00
gsxdsm
0a04837e7a
chore(release): v0.35.0
...
Version bump via changesets.
2026-05-28 08:20:50 -07:00
gsxdsm
7d2cf330db
feat(FN-5609): add macOS desktop signing configuration and entitlements
...
Adds macOS code signing and notarization infrastructure (FN-5609), introducing hardened runtime entitlements, electron-builder config for signed builds, and signing-enabled release workflows, with tests validating the configuration and docs covering the signing flow.
Fusion-Task-Id: FN-5609
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
Fusion-Task-Id: FN-5609
2026-05-27 21:31:12 -07:00
gsxdsm
925a466043
feat(FN-5608): add linux arm64 dual-arch support to desktop release workflo
...
Adds Linux ARM64 as a target architecture to the desktop release pipeline, including dual-arch release and test-release workflows, electron-builder configuration updates, and corresponding tests and documentation.
Fusion-Task-Id: FN-5608
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
Fusion-Task-Id: FN-5608
2026-05-27 21:31:12 -07:00
gsxdsm
9504c31a85
feat(FN-5607): add cross-platform updater feeds for desktop releases
...
Add multi-platform updater feed configuration for the desktop app, including Windows, Mac, and Linux feed files with a collector, wired into the release and test-release workflows, plus corresponding tests and documentation.
Fusion-Task-Id: FN-5607
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
Fusion-Task-Id: FN-5607
2026-05-27 21:31:12 -07:00