Environment: macOS 27 arm64, codex-bridge v0.2.4 (37b9962), bundled Codex app-server 0.153.4.
After installing with ./scripts/install-macos.sh --web-ui and relaunching Desktop, opening an existing thread directly in Desktop fails:
thread/read succeeds, but thread/resume returns -32600:
failed to load configuration: invalid transport in mcp_servers.codex_app
~/.codex/config.toml contains no mcp_servers.codex_app entry and passes normal CLI loading. The MCP configuration is injected dynamically by Desktop.
If the same thread is opened in the Web UI first, codex-bridge sends thread/resume without the Desktop MCP override. After that, Desktop can access the already-loaded thread. This is only a preload workaround.
Expected: a thread should resume directly from Desktop when interposition is enabled, without requiring Web UI preloading.
Suggested fixes:
- Add a Desktop-direct thread/resume compatibility test.
- Determine which Desktop request field becomes the invalid codex_app transport.
- Preserve or reconstruct Desktop’s dynamically injected MCP launch configuration for the managed app-server.
- Until compatible, detect the affected Desktop/app-server version and disable desktop_interposition by default instead of leaving Desktop threads unusable.
Supported workaround: set desktop_interposition = false, restart the bridge, and unset both launchd environment variables.
Environment: macOS 27 arm64, codex-bridge v0.2.4 (37b9962), bundled Codex app-server 0.153.4.
After installing with ./scripts/install-macos.sh --web-ui and relaunching Desktop, opening an existing thread directly in Desktop fails:
thread/read succeeds, but thread/resume returns -32600:
failed to load configuration: invalid transport in mcp_servers.codex_app
~/.codex/config.toml contains no mcp_servers.codex_app entry and passes normal CLI loading. The MCP configuration is injected dynamically by Desktop.
If the same thread is opened in the Web UI first, codex-bridge sends thread/resume without the Desktop MCP override. After that, Desktop can access the already-loaded thread. This is only a preload workaround.
Expected: a thread should resume directly from Desktop when interposition is enabled, without requiring Web UI preloading.
Suggested fixes:
Supported workaround: set desktop_interposition = false, restart the bridge, and unset both launchd environment variables.