diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts index 3a480228e..69bd5e3be 100644 --- a/packages/opencode/src/server/server.ts +++ b/packages/opencode/src/server/server.ts @@ -53,6 +53,9 @@ globalThis.AI_SDK_LOG_WARNINGS = false export namespace Server { const log = Log.create({ service: "server" }) + // Port that the server is running on, used to inject into frontend HTML + let serverPort: number = 4096 + export const Event = { Connected: BusEvent.define("server.connected", z.object({})), Disposed: BusEvent.define("global.disposed", z.object({})), @@ -2613,24 +2616,15 @@ export namespace Server { return result } - let serverPort: number = 4096 - export function listen(opts: { port: number; hostname: string }) { const args = { hostname: opts.hostname, idleTimeout: 0, fetch: App().fetch, websocket: websocket, - } as const - if (opts.port === 0) { - try { - serverPort = 4096 - return Bun.serve({ ...args, port: 4096 }) - } catch { - // port 4096 not available, fall through to use port 0 - } - } - serverPort = opts.port - return Bun.serve({ ...args, port: opts.port }) + }) + // Store the actual port for injection into frontend HTML + serverPort = server.port ?? opts.port + return server } }