@minhspark/codex-mcp-bridge 1.26.3 → 1.26.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-mcp-bridge",
3
- "version": "1.26.3",
3
+ "version": "1.26.4",
4
4
  "description": "Connect ChatGPT to your own Codex Desktop projects and conversations.",
5
5
  "author": {
6
6
  "name": "Bui Dang Minh"
package/CHANGELOG.md CHANGED
@@ -4,6 +4,18 @@ Follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and [SemVer](ht
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [1.26.4] - 2026-11-01
8
+
9
+ ### Fixed
10
+
11
+ - `codex-bridge-update` no longer stops with `UPDATE_SETUP_INCOMPLETE` / `WORKER_MCP_COLLISION` on machines with more than one Node.js installation. The Antigravity `worker-relay` entry is still recognised as the bridge's own when it launches this package's `background-relay-mcp.mjs` through another existing `node` / `node.exe`, matching how every other bridge MCP entry is checked. Entries that use a different script, a non-Node launcher, a missing executable, a URL, headers or embedded environment are still refused and left unchanged.
12
+
13
+ ### Upgrade
14
+
15
+ ```sh
16
+ npm exec --yes --ignore-scripts --package=@minhspark/codex-mcp-bridge@latest -- codex-bridge-update
17
+ ```
18
+
7
19
  ## [1.26.3] - 2026-11-01
8
20
 
9
21
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minhspark/codex-mcp-bridge",
3
- "version": "1.26.3",
3
+ "version": "1.26.4",
4
4
  "description": "Connect Claude, Codex, and Antigravity through MCP, with native Desktop handoffs and bridge-owned Antigravity CLI sessions.",
5
5
  "keywords": [
6
6
  "mcp",
package/plugin.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
3
  "name": "codex-mcp-bridge",
4
- "version": "1.26.3",
4
+ "version": "1.26.4",
5
5
  "description": "Connect ChatGPT to your own Codex Desktop projects and conversations.",
6
6
  "author": {
7
7
  "name": "Bui Dang Minh",
@@ -25,7 +25,7 @@ import { removeRelayFile } from "../src/native-relay-files.mjs";
25
25
 
26
26
  exitForVersionRequest(import.meta.url);
27
27
 
28
- const VERSION = "1.26.3";
28
+ const VERSION = "1.26.4";
29
29
  const root = stableInstallPath(path.resolve(path.dirname(fileURLToPath(import.meta.url)), ".."));
30
30
  const entry = path.join(root, "src", "mcp-supervisor.mjs");
31
31
  const entryArgs = ["native-relay-companion.mjs"];
@@ -120,9 +120,16 @@ function samePath(left, right, platform) {
120
120
  catch { return false; }
121
121
  }
122
122
 
123
+ function nodeLauncher(command, expected, platform) {
124
+ if (samePath(command, expected, platform)) return true;
125
+ if (typeof command !== "string" || !path.isAbsolute(command) || command.includes("\0")) return false;
126
+ if (!(platform === "win32" ? /^node\.exe$/i : /^node$/).test(path.basename(command))) return false;
127
+ try { return fs.statSync(command).isFile(); } catch { return false; }
128
+ }
129
+
123
130
  function ownedEntry(entry, expected, platform) {
124
131
  if (entry === undefined) return;
125
- if (!object(entry) || !samePath(entry.command, expected.command, platform)
132
+ if (!object(entry) || !nodeLauncher(entry.command, expected.command, platform)
126
133
  || !Array.isArray(entry.args) || entry.args.length !== 1 || !samePath(entry.args[0], expected.args[0], platform)
127
134
  || entry.type !== undefined && entry.type !== "stdio"
128
135
  || ["url", "serverUrl", "serverURL", "httpUrl", "headers", "oauth", "authProviderType"].some((key) => Object.hasOwn(entry, key))
@@ -31,7 +31,7 @@ import { BACKGROUND_WORKER_GUIDANCE, registerBackgroundTools } from "./backgroun
31
31
 
32
32
  exitForVersionRequest(import.meta.url);
33
33
 
34
- const VERSION = "1.26.3";
34
+ const VERSION = "1.26.4";
35
35
  void import("./telemetry.mjs").then(({ startUsageReporting }) => startUsageReporting({ version: VERSION })).catch(() => {});
36
36
  const FORWARD_MIN_INTERVAL_MS = 5000;
37
37
  const FORWARD_MAX_PER_SESSION = 50;
package/src/index.mjs CHANGED
@@ -44,7 +44,7 @@ import { BACKGROUND_WORKER_GUIDANCE, registerBackgroundTools } from "./backgroun
44
44
 
45
45
  exitForVersionRequest(import.meta.url);
46
46
 
47
- const VERSION = "1.26.3";
47
+ const VERSION = "1.26.4";
48
48
  void import("./telemetry.mjs").then(({ startUsageReporting }) => startUsageReporting({ version: VERSION })).catch(() => {});
49
49
  const log = (msg) => process.stderr.write(`[codex-mcp-bridge] ${msg}\n`);
50
50
 
@@ -43,7 +43,7 @@ import { remoteCodexSocketPath, remoteNativeAdapter, remoteRequestResponse } fro
43
43
 
44
44
  exitForVersionRequest(import.meta.url);
45
45
 
46
- const VERSION = "1.26.3";
46
+ const VERSION = "1.26.4";
47
47
  const log = (msg) => process.stderr.write(`[native-relay] ${msg}\n`);
48
48
 
49
49
  function errorResponse(code, message, sent, details) {