From b3fe8301326f2b55336c1f2423a7a7f1cf0b44eb Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Sun, 7 Jun 2026 23:12:04 -0700 Subject: [PATCH] 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 --- packages/desktop/package.json | 3 +- .../__tests__/electron-builder-config.test.ts | 29 +++++++++++++++++++ pnpm-lock.yaml | 3 ++ 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 74b1fd66ea..f52eef8575 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -38,7 +38,8 @@ "dependencies": { "@fusion/core": "workspace:*", "@fusion/dashboard": "workspace:*", - "electron-updater": "^6.6.0" + "electron-updater": "^6.6.0", + "ms": "^2.1.3" }, "devDependencies": { "@testing-library/react": "^16.3.2", diff --git a/packages/desktop/src/__tests__/electron-builder-config.test.ts b/packages/desktop/src/__tests__/electron-builder-config.test.ts index 8b7cc41512..943d550a93 100644 --- a/packages/desktop/src/__tests__/electron-builder-config.test.ts +++ b/packages/desktop/src/__tests__/electron-builder-config.test.ts @@ -107,6 +107,35 @@ describe("electron-builder desktop config", () => { expect(linuxArchByTarget.get("tar.gz")).toEqual(["arm64", "x64"]); }); + it("packages @fusion/core runtime dependencies used during desktop startup", async () => { + const builderConfig = await readDesktopFile("electron-builder.yml"); + const requiredRuntimeDependencyGlobs = [ + "node_modules/debug/**/*", + "node_modules/ms/**/*", + "node_modules/extract-zip/**/*", + "node_modules/get-stream/**/*", + "node_modules/pump/**/*", + "node_modules/end-of-stream/**/*", + "node_modules/once/**/*", + "node_modules/wrappy/**/*", + "node_modules/yauzl/**/*", + "node_modules/fd-slicer/**/*", + "node_modules/pend/**/*", + "node_modules/buffer-crc32/**/*", + "node_modules/tar/**/*", + "node_modules/@isaacs/fs-minipass/**/*", + "node_modules/chownr/**/*", + "node_modules/minipass/**/*", + "node_modules/minizlib/**/*", + "node_modules/yallist/**/*", + "node_modules/yaml/**/*", + ]; + + for (const dependencyGlob of requiredRuntimeDependencyGlobs) { + expect(builderConfig).toContain(`- ${dependencyGlob}`); + } + }); + it("locks mac signing and notarization configuration", async () => { const builderConfig = await readDesktopFile("electron-builder.yml"); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8d8530d88e..8410a46acb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -399,6 +399,9 @@ importers: electron-updater: specifier: ^6.6.0 version: 6.8.3 + ms: + specifier: ^2.1.3 + version: 2.1.3 devDependencies: '@testing-library/react': specifier: ^16.3.2