fix: respect host when checking port availability

This commit is contained in:
Bohdan Triapitsyn
2026-04-02 14:11:32 +03:00
parent c9d112871c
commit aef7b206ed
6 changed files with 16 additions and 16 deletions
+9 -9
View File
@@ -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=="],
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -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",
+3 -3
View File
@@ -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(
+1 -1
View File
@@ -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",