From c217ebe2ad83f3367436968aa91cca6f89ee5439 Mon Sep 17 00:00:00 2001 From: Luke Parker <10430890+Hona@users.noreply.github.com> Date: Wed, 12 Aug 2026 10:25:32 +1000 Subject: [PATCH] fix(desktop): skip web ui build in dev (#41881) --- packages/cli/script/app-assets.ts | 7 ++++++- packages/cli/script/build.ts | 3 ++- packages/desktop/scripts/utils.ts | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/cli/script/app-assets.ts b/packages/cli/script/app-assets.ts index d4529329260..1b6c08ca79a 100644 --- a/packages/cli/script/app-assets.ts +++ b/packages/cli/script/app-assets.ts @@ -3,7 +3,8 @@ import { readdir } from "node:fs/promises" import path from "node:path" import { brotliCompressSync, constants } from "node:zlib" -export async function buildAppArchive(channel: string) { +export async function buildAppArchive(channel: string, options?: { skipBuild?: boolean }) { + if (options?.skipBuild) return compress({}) const root = path.resolve(import.meta.dirname, "../../app") await $`bun run build`.cwd(root).env({ ...process.env, OPENCODE_CHANNEL: channel }) const assets = Object.fromEntries( @@ -18,6 +19,10 @@ export async function buildAppArchive(channel: string) { }), ), ) + return compress(assets) +} + +function compress(assets: object) { return brotliCompressSync(JSON.stringify(assets), { params: { [constants.BROTLI_PARAM_QUALITY]: 11 }, }).toString("base64") diff --git a/packages/cli/script/build.ts b/packages/cli/script/build.ts index 654f16a4d9c..1ee9767f4f3 100755 --- a/packages/cli/script/build.ts +++ b/packages/cli/script/build.ts @@ -24,6 +24,7 @@ await rm(outdir, { recursive: true, force: true }) const singleFlag = process.argv.includes("--single") const baselineFlag = process.argv.includes("--baseline") const skipInstall = process.argv.includes("--skip-install") +const skipWebUi = process.argv.includes("--skip-web-ui") const solidPlugin = createSolidTransformPlugin() const allTargets: { @@ -55,7 +56,7 @@ const targets = singleFlag : allTargets if (!skipInstall) await $`bun install --os="*" --cpu="*" @opentui/core@${pkg.dependencies["@opentui/core"]}` -const appArchive = await buildAppArchive(Script.channel) +const appArchive = await buildAppArchive(Script.channel, { skipBuild: skipWebUi }) const appAssetsPlugin: BunPlugin = { name: "opencode-app-assets", setup(build) { diff --git a/packages/desktop/scripts/utils.ts b/packages/desktop/scripts/utils.ts index 920fe7c0dbf..09f1c16e7ce 100644 --- a/packages/desktop/scripts/utils.ts +++ b/packages/desktop/scripts/utils.ts @@ -90,7 +90,7 @@ export async function buildCliToResources(dest = windowsify("resources/opencode- const directory = await mkdtemp(join(tmpdir(), "opencode-cli-")) const target = `cli-${process.platform === "win32" ? "windows" : process.platform}-${process.arch}` try { - await $`bun ${join(import.meta.dirname, "../../cli/script/build.ts")} --single --skip-install --outdir=${directory}`.env( + await $`bun ${join(import.meta.dirname, "../../cli/script/build.ts")} --single --skip-install --skip-web-ui --outdir=${directory}`.env( { ...process.env, OPENCODE_VERSION: `0.0.0-local-${Date.now()}`,