@minhspark/codex-mcp-bridge 1.22.12 → 1.22.13
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.
- package/.codex-plugin/plugin.json +1 -1
- package/CHANGELOG.md +15 -0
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/scripts/install-native-relay.mjs +1 -1
- package/src/claude-bridge.mjs +1 -1
- package/src/index.mjs +1 -1
- package/src/native-relay-companion.mjs +1 -1
- package/src/native-relay.mjs +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,21 @@ Follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and [SemVer](ht
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [1.22.13] - 2026-10-20
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Find the Codex Desktop native tools pipe on Desktop 26.1013. That build serves the native app tools on `\\.\pipe\codex-app-tools-<id>` and no longer passes `CODEX_APP_TOOLS_PIPE_PATH` on the app-server command line. Windows discovery only looked at `codex-browser-use-*` pipes, which answer `No handler registered for method: tools/call`, so the relay companion never opened `codex-native-relay-accounts-v2` and every Claude-to-Codex send failed with `RELAY_UNAVAILABLE` (`connect ENOENT`). Discovery now also accepts `codex-app-tools-*` pipes. The existing checks still apply: the pipe must be local, owned by the exact `ChatGPT.exe` ancestor of the companion's app-server, and answer a read-only `list_projects` call. `codex-app-tools-*` sorts first, so it is tried before the browser pipes.
|
|
12
|
+
|
|
13
|
+
### Verification
|
|
14
|
+
|
|
15
|
+
- One new test covers a Desktop 26.1013 snapshot with both pipe kinds and checks that only the app-tools pipe is probed. It fails on v1.22.12. A pipe with another `codex-` prefix, and an app-tools pipe owned by another process, are still rejected.
|
|
16
|
+
- On a Windows machine running Codex Desktop 26.1013.4894.0, `resolveNativeToolsPipePath` from v1.22.12 returned `null` and the fixed code returned the live `codex-app-tools-*` pipe, owned by the Desktop process that started the app-server. `list_projects` through that pipe returned the saved projects; the five `codex-browser-use-*` pipes returned `No handler registered for method: tools/call`.
|
|
17
|
+
|
|
18
|
+
### Limitations
|
|
19
|
+
|
|
20
|
+
- A running companion keeps its old discovery code until it reloads. After updating, restart Codex Desktop, or let automatic reload pick up the new source, then check `native_relay_status`.
|
|
21
|
+
|
|
7
22
|
## [1.22.12] - 2026-10-20
|
|
8
23
|
|
|
9
24
|
### Fixed
|
package/package.json
CHANGED
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.22.
|
|
4
|
+
"version": "1.22.13",
|
|
5
5
|
"description": "Connect ChatGPT to your own Codex Desktop projects and conversations.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Bui Dang Minh",
|
|
@@ -24,7 +24,7 @@ import { stableInstallPath } from "../src/install-paths.mjs";
|
|
|
24
24
|
|
|
25
25
|
exitForVersionRequest(import.meta.url);
|
|
26
26
|
|
|
27
|
-
const VERSION = "1.22.
|
|
27
|
+
const VERSION = "1.22.13";
|
|
28
28
|
const root = stableInstallPath(path.resolve(path.dirname(fileURLToPath(import.meta.url)), ".."));
|
|
29
29
|
const entry = path.join(root, "src", "mcp-supervisor.mjs");
|
|
30
30
|
const entryArgs = ["native-relay-companion.mjs"];
|
package/src/claude-bridge.mjs
CHANGED
|
@@ -30,7 +30,7 @@ import { discoverClaudeProject } from "./claude-project-discovery.mjs";
|
|
|
30
30
|
|
|
31
31
|
exitForVersionRequest(import.meta.url);
|
|
32
32
|
|
|
33
|
-
const VERSION = "1.22.
|
|
33
|
+
const VERSION = "1.22.13";
|
|
34
34
|
void import("./telemetry.mjs").then(({ startUsageReporting }) => startUsageReporting({ version: VERSION })).catch(() => {});
|
|
35
35
|
const FORWARD_MIN_INTERVAL_MS = 5000;
|
|
36
36
|
const FORWARD_MAX_PER_SESSION = 50;
|
package/src/index.mjs
CHANGED
|
@@ -40,7 +40,7 @@ import { PROJECT_SETUP_TOOLS, registerProjectOnboardingTools } from "./project-o
|
|
|
40
40
|
|
|
41
41
|
exitForVersionRequest(import.meta.url);
|
|
42
42
|
|
|
43
|
-
const VERSION = "1.22.
|
|
43
|
+
const VERSION = "1.22.13";
|
|
44
44
|
void import("./telemetry.mjs").then(({ startUsageReporting }) => startUsageReporting({ version: VERSION })).catch(() => {});
|
|
45
45
|
const log = (msg) => process.stderr.write(`[codex-mcp-bridge] ${msg}\n`);
|
|
46
46
|
|
|
@@ -39,7 +39,7 @@ import { NativeCreationReceipts, creationIdValid } from "./native-creation-recei
|
|
|
39
39
|
|
|
40
40
|
exitForVersionRequest(import.meta.url);
|
|
41
41
|
|
|
42
|
-
const VERSION = "1.22.
|
|
42
|
+
const VERSION = "1.22.13";
|
|
43
43
|
const log = (msg) => process.stderr.write(`[native-relay] ${msg}\n`);
|
|
44
44
|
|
|
45
45
|
function errorResponse(code, message, sent, details) {
|
package/src/native-relay.mjs
CHANGED
|
@@ -462,7 +462,7 @@ export function nativeToolsPipeCandidatesFromWindowsSnapshot(snapshot, { parentP
|
|
|
462
462
|
}
|
|
463
463
|
if (command !== "app-server") return null;
|
|
464
464
|
const candidates = snapshot.pipes.filter((pipe) => pipe?.serverPid === desktop.pid
|
|
465
|
-
&& typeof pipe.path === "string" && /^\\\\\.\\pipe\\codex-browser-use-[a-z0-9-]+$/i.test(pipe.path));
|
|
465
|
+
&& typeof pipe.path === "string" && /^\\\\\.\\pipe\\codex-(?:app-tools|browser-use)-[a-z0-9-]+$/i.test(pipe.path));
|
|
466
466
|
const paths = [...new Set(candidates.map((pipe) => pipe.path))].sort();
|
|
467
467
|
return paths;
|
|
468
468
|
}
|
|
@@ -493,7 +493,7 @@ public static class CodexNativePipeOwner {
|
|
|
493
493
|
public static extern bool GetNamedPipeServerProcessId(SafePipeHandle pipe, out uint serverProcessId);
|
|
494
494
|
}
|
|
495
495
|
'@
|
|
496
|
-
$names = @([System.IO.Directory]::GetFiles('\\.\pipe\') | Where-Object { $_ -match '^\\\\\.\\pipe\\codex-browser-use-[a-zA-Z0-9-]+$' } | Sort-Object | Select-Object -First 128)
|
|
496
|
+
$names = @([System.IO.Directory]::GetFiles('\\.\pipe\') | Where-Object { $_ -match '^\\\\\.\\pipe\\codex-(?:app-tools|browser-use)-[a-zA-Z0-9-]+$' } | Sort-Object | Select-Object -First 128)
|
|
497
497
|
foreach ($pipePath in $names) {
|
|
498
498
|
$client = $null
|
|
499
499
|
try {
|