From ea20e800216417c8d3b5dfc54a863bbd9e0b3e20 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Thu, 14 May 2026 09:32:48 +0200 Subject: [PATCH] Exclude workspace packages from desktop runtime deps (#2688) --- scripts/build-desktop-artifact.test.ts | 25 +++++++++++++++++++++++++ scripts/build-desktop-artifact.ts | 7 +++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/scripts/build-desktop-artifact.test.ts b/scripts/build-desktop-artifact.test.ts index 0cdf090504558f5a0bba36018d27b47c42bccd77..743263d43b3662bf4c9c25e14e4cdb915b87caa0 100644 --- a/scripts/build-desktop-artifact.test.ts +++ b/scripts/build-desktop-artifact.test.ts @@ -5,6 +5,7 @@ import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import { + resolveDesktopRuntimeDependencies, resolveBuildOptions, resolveDesktopBuildIconAssets, resolveDesktopProductName, @@ -39,6 +40,30 @@ it.layer(NodeServices.layer)("build-desktop-artifact", (it) => { }); }); + it("omits bundled workspace packages from staged desktop dependencies", () => { + assert.deepStrictEqual( + resolveDesktopRuntimeDependencies( + { + "@effect/platform-node": "catalog:", + "@t3tools/contracts": "workspace:*", + "@t3tools/shared": "workspace:*", + "@t3tools/ssh": "workspace:*", + "@t3tools/tailscale": "workspace:*", + effect: "catalog:", + electron: "41.5.0", + }, + { + "@effect/platform-node": "4.0.0-beta.59", + effect: "4.0.0-beta.59", + }, + ), + { + "@effect/platform-node": "4.0.0-beta.59", + effect: "4.0.0-beta.59", + }, + ); + }); + it("falls back to the default mock update port when the configured port is blank", () => { assert.equal(resolveMockUpdateServerUrl(undefined), "http://localhost:3000"); assert.equal(resolveMockUpdateServerUrl(4123), "http://localhost:4123"); diff --git a/scripts/build-desktop-artifact.ts b/scripts/build-desktop-artifact.ts index f395e08f35b2bde8ee4f8e0f82b265a46ab82cc6..104cbef20c1cee0e7642e0548ff18be524c2597d 100644 --- a/scripts/build-desktop-artifact.ts +++ b/scripts/build-desktop-artifact.ts @@ -484,7 +484,7 @@ function validateBundledClientAssets(clientDir: string) { }); } -function resolveDesktopRuntimeDependencies( +export function resolveDesktopRuntimeDependencies( dependencies: Record | undefined, catalog: Record, ): Record { @@ -493,7 +493,10 @@ function resolveDesktopRuntimeDependencies( } const runtimeDependencies = Object.fromEntries( - Object.entries(dependencies).filter(([dependencyName]) => dependencyName !== "electron"), + Object.entries(dependencies).filter( + ([dependencyName, dependencySpec]) => + dependencyName !== "electron" && !dependencySpec.startsWith("workspace:"), + ), ); return resolveCatalogDependencies(runtimeDependencies, catalog, "apps/desktop"); -- 2.54.0