From aef7b206ed7fe453135f4f193386928648790ece Mon Sep 17 00:00:00 2001 From: Bohdan Triapitsyn Date: Thu, 2 Apr 2026 14:11:32 +0300 Subject: [PATCH] fix: respect host when checking port availability --- bun.lock | 18 +++++++++--------- package.json | 2 +- packages/ui/package.json | 2 +- packages/vscode/package.json | 2 +- packages/web/bin/cli.js | 6 +++--- packages/web/package.json | 2 +- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/bun.lock b/bun.lock index 57b26507..05cf7c3e 100644 --- a/bun.lock +++ b/bun.lock @@ -32,7 +32,7 @@ "@ibm/plex": "^6.4.1", "@lezer/highlight": "^1.2.3", "@octokit/rest": "^22.0.1", - "@opencode-ai/sdk": "^1.3.7", + "@opencode-ai/sdk": "^1.3.13", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.16", @@ -94,7 +94,7 @@ }, "packages/desktop": { "name": "@openchamber/desktop", - "version": "1.9.1", + "version": "1.9.3", "devDependencies": { "@tauri-apps/cli": "^2", "@types/node": "^24.3.1", @@ -103,7 +103,7 @@ }, "packages/ui": { "name": "@openchamber/ui", - "version": "1.9.1", + "version": "1.9.3", "dependencies": { "@codemirror/autocomplete": "^6.20.0", "@codemirror/commands": "^6.10.1", @@ -133,7 +133,7 @@ "@fontsource/ibm-plex-sans": "^5.1.1", "@ibm/plex": "^6.4.1", "@lezer/highlight": "^1.2.3", - "@opencode-ai/sdk": "^1.3.7", + "@opencode-ai/sdk": "^1.3.13", "@pierre/diffs": "1.1.0-beta.13", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-dialog": "^1.1.15", @@ -205,10 +205,10 @@ }, "packages/vscode": { "name": "openchamber", - "version": "1.9.1", + "version": "1.9.3", "dependencies": { "@openchamber/ui": "workspace:*", - "@opencode-ai/sdk": "^1.3.7", + "@opencode-ai/sdk": "^1.3.13", "adm-zip": "^0.5.16", "jsonc-parser": "^3.3.1", "react": "^19.1.1", @@ -228,7 +228,7 @@ }, "packages/web": { "name": "@openchamber/web", - "version": "1.9.1", + "version": "1.9.3", "bin": { "openchamber": "./bin/cli.js", }, @@ -240,7 +240,7 @@ "@fontsource/ibm-plex-sans": "^5.1.1", "@ibm/plex": "^6.4.1", "@octokit/rest": "^22.0.1", - "@opencode-ai/sdk": "^1.3.7", + "@opencode-ai/sdk": "^1.3.13", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.16", @@ -817,7 +817,7 @@ "@openchamber/web": ["@openchamber/web@workspace:packages/web"], - "@opencode-ai/sdk": ["@opencode-ai/sdk@1.3.7", "", {}, "sha512-ugkta0v0dMZchN15QGmqHb9zf35k+K1VM9wt3x4ZRJ6GxKAs0XlCmQPQJflgV9YSedNxjkgTud0GCCIWUSiUOg=="], + "@opencode-ai/sdk": ["@opencode-ai/sdk@1.3.13", "", {}, "sha512-/M6HlNnba+xf1EId6qFb2tG0cvq0db3PCQDug1glrf8wYOU57LYNF8WvHX9zoDKPTMv0F+O4pcP/8J+WvDaxHA=="], "@pierre/diffs": ["@pierre/diffs@1.1.0-beta.13", "", { "dependencies": { "@shikijs/transformers": "^3.0.0", "diff": "8.0.3", "hast-util-to-html": "9.0.5", "lru_map": "0.4.1", "shiki": "^3.0.0" }, "peerDependencies": { "react": "^18.3.1 || ^19.0.0", "react-dom": "^18.3.1 || ^19.0.0" } }, "sha512-D35rxDu5V7XHX5aVGU6PF12GhscL+I+9QYgxK/i3h0d2XSirAxDdVNm49aYwlOhgmdvL0NbS1IHxPswVB5yJvw=="], diff --git a/package.json b/package.json index d51832e7..bd2f0a2d 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "@ibm/plex": "^6.4.1", "@lezer/highlight": "^1.2.3", "@octokit/rest": "^22.0.1", - "@opencode-ai/sdk": "^1.3.7", + "@opencode-ai/sdk": "^1.3.13", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.16", diff --git a/packages/ui/package.json b/packages/ui/package.json index 1c2594d2..38449fbe 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -39,7 +39,7 @@ "@fontsource/ibm-plex-sans": "^5.1.1", "@ibm/plex": "^6.4.1", "@lezer/highlight": "^1.2.3", - "@opencode-ai/sdk": "^1.3.7", + "@opencode-ai/sdk": "^1.3.13", "@pierre/diffs": "1.1.0-beta.13", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-dialog": "^1.1.15", diff --git a/packages/vscode/package.json b/packages/vscode/package.json index 5710fe34..3a730990 100644 --- a/packages/vscode/package.json +++ b/packages/vscode/package.json @@ -243,7 +243,7 @@ }, "dependencies": { "@openchamber/ui": "workspace:*", - "@opencode-ai/sdk": "^1.3.7", + "@opencode-ai/sdk": "^1.3.13", "adm-zip": "^0.5.16", "jsonc-parser": "^3.3.1", "react": "^19.1.1", diff --git a/packages/web/bin/cli.js b/packages/web/bin/cli.js index 06ad47ff..6756c049 100755 --- a/packages/web/bin/cli.js +++ b/packages/web/bin/cli.js @@ -1647,7 +1647,7 @@ async function checkOpenCodeCLI(onNotice) { ); } -async function isPortAvailable(port) { +async function isPortAvailable(port, host) { if (!Number.isFinite(port) || port <= 0) { return false; } @@ -1656,7 +1656,7 @@ async function isPortAvailable(port) { const server = net.createServer(); server.unref(); server.on('error', () => resolve(false)); - server.listen({ port }, () => { + server.listen({ port, host }, () => { server.close(() => resolve(true)); }); }); @@ -2715,7 +2715,7 @@ const commands = { throw new Error(`OpenChamber is already running on port ${targetPort} (PID: ${existingPid})`); } - if (explicitPort && !(await isPortAvailable(targetPort))) { + if (explicitPort && !(await isPortAvailable(targetPort, options.host))) { const systemInfo = await fetchSystemInfoFromPort(targetPort); if (systemInfo?.runtime === 'desktop') { throw new Error( diff --git a/packages/web/package.json b/packages/web/package.json index 41f1299a..ed048f8e 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -29,7 +29,7 @@ "@fontsource/ibm-plex-sans": "^5.1.1", "@ibm/plex": "^6.4.1", "@octokit/rest": "^22.0.1", - "@opencode-ai/sdk": "^1.3.7", + "@opencode-ai/sdk": "^1.3.13", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.16",