From 7db0db2301f9f5c4a1c9ee5a737adf5c9654e0f9 Mon Sep 17 00:00:00 2001 From: Bernhard Berger Date: Fri, 29 May 2026 23:25:59 +0200 Subject: [PATCH] fix(web): use release version for embedded UI --- packages/app/src/entry.tsx | 6 ++++-- packages/app/src/env.d.ts | 1 + packages/opencode/script/build.ts | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/app/src/entry.tsx b/packages/app/src/entry.tsx index 5115f0348ad4..4d42604f4252 100644 --- a/packages/app/src/entry.tsx +++ b/packages/app/src/entry.tsx @@ -11,6 +11,8 @@ import { authFromToken } from "@/utils/server" import pkg from "../package.json" import { ServerConnection } from "./context/server" +const appVersion = import.meta.env.VITE_OPENCODE_VERSION ?? pkg.version + const DEFAULT_SERVER_URL_KEY = "opencode.settings.dat:defaultServerUrl" const getLocale = () => { @@ -121,7 +123,7 @@ const clearAuthToken = () => { const platform: Platform = { platform: "web", - version: pkg.version, + version: appVersion, openLink, back, forward, @@ -138,7 +140,7 @@ if (import.meta.env.VITE_SENTRY_DSN) { Sentry.init({ dsn: import.meta.env.VITE_SENTRY_DSN, environment: import.meta.env.VITE_SENTRY_ENVIRONMENT ?? import.meta.env.MODE, - release: import.meta.env.VITE_SENTRY_RELEASE ?? `web@${pkg.version}`, + release: import.meta.env.VITE_SENTRY_RELEASE ?? `web@${appVersion}`, initialScope: { tags: { platform: "web", diff --git a/packages/app/src/env.d.ts b/packages/app/src/env.d.ts index 39f827eb64a9..618289d5a7e3 100644 --- a/packages/app/src/env.d.ts +++ b/packages/app/src/env.d.ts @@ -1,6 +1,7 @@ interface ImportMetaEnv { readonly VITE_OPENCODE_SERVER_HOST: string readonly VITE_OPENCODE_SERVER_PORT: string + readonly VITE_OPENCODE_VERSION?: string readonly VITE_OPENCODE_CHANNEL?: "dev" | "beta" | "prod" readonly VITE_SENTRY_DSN?: string diff --git a/packages/opencode/script/build.ts b/packages/opencode/script/build.ts index 33db38d84cc1..265b24de68c8 100755 --- a/packages/opencode/script/build.ts +++ b/packages/opencode/script/build.ts @@ -58,7 +58,7 @@ const createEmbeddedWebUIBundle = async () => { console.log(`Building Web UI to embed in the binary`) const appDir = path.join(import.meta.dirname, "../../app") const dist = path.join(appDir, "dist") - await $`OPENCODE_CHANNEL=${Script.channel} bun run --cwd ${appDir} build` + await $`OPENCODE_CHANNEL=${Script.channel} VITE_OPENCODE_VERSION=${Script.version} bun run --cwd ${appDir} build` const files = (await Array.fromAsync(new Bun.Glob("**/*").scan({ cwd: dist }))) .map((file) => file.replaceAll("\\", "/")) .filter((file) => !file.endsWith(".map"))