From 76cfd33b527599efb2e7c24929789ed318e0a764 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rolf=20Sch=C3=A4uble?= Date: Fri, 20 Feb 2026 23:59:12 +0100 Subject: [PATCH] fix: avoid default web port conflict in acp --- packages/opencode/src/cli/cmd/acp.ts | 2 +- packages/opencode/src/server/server.ts | 20 ++++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/packages/opencode/src/cli/cmd/acp.ts b/packages/opencode/src/cli/cmd/acp.ts index 99a9a81ab9cd..2f41f6749feb 100644 --- a/packages/opencode/src/cli/cmd/acp.ts +++ b/packages/opencode/src/cli/cmd/acp.ts @@ -23,7 +23,7 @@ export const AcpCommand = cmd({ process.env.OPENCODE_CLIENT = "acp" await bootstrap(process.cwd(), async () => { const opts = await resolveNetworkOptions(args) - const server = Server.listen(opts) + const server = Server.listen(opts, false) const sdk = createOpencodeClient({ baseUrl: `http://${server.hostname}:${server.port}`, diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts index 9fba9c1fe1a0..83b3c8b0b93f 100644 --- a/packages/opencode/src/server/server.ts +++ b/packages/opencode/src/server/server.ts @@ -573,13 +573,16 @@ export namespace Server { return result } - export function listen(opts: { - port: number - hostname: string - mdns?: boolean - mdnsDomain?: string - cors?: string[] - }) { + export function listen( + opts: { + port: number + hostname: string + mdns?: boolean + mdnsDomain?: string + cors?: string[] + }, + prefer_default_port = true, + ) { _corsWhitelist = opts.cors ?? [] const args = { @@ -595,7 +598,8 @@ export namespace Server { return undefined } } - const server = opts.port === 0 ? (tryServe(4096) ?? tryServe(0)) : tryServe(opts.port) + const preferred = opts.port !== 0 ? opts.port : prefer_default_port ? 4096 : 0 + const server = tryServe(preferred) ?? (preferred === 0 ? undefined : tryServe(0)) if (!server) throw new Error(`Failed to start server on port ${opts.port}`) _url = server.url