openai / openai/codex-plugin-cc
/codex:review hangs indefinitely on xcode/XcodeListWindows MCP call
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 33.3k
- Forks
- 2.3k
- PR merge metrics
- No merged PRs in 30d
Description
Summary
/codex:review (run via codex-companion.mjs) calls the xcode/XcodeListWindows MCP tool and then hangs indefinitely. The tool call never logs a completion event and the review never finishes — the job stays in "running" / "investigating" until it's manually cancelled. Repro'd twice in a row on the same project.
Environment
- Codex plugin:
openai-codex/codex/1.0.4 - Claude Code CLI
- macOS with Xcode 26.4.1 (Apple's built-in MCP server registered via
xcrun mcpbridge— i.e. thexcode/*MCP, not the third-partyxcodebuildmcp/*) - Project: SwiftUI iOS app
Repro
/codex:review --base <sha>
Review progresses normally through many xcodebuildmcp/* tool calls (all complete in < 1 s each). At some point it calls xcode/XcodeListWindows and stalls. No completion event is ever logged.
Log excerpt
[21:17:13.523Z] Command completed: git show ... KidsBookAI/ContentView.swift (exit 0)
[21:18:25.543Z] Calling xcode/XcodeListWindows.
[nothing after — stuck 5+ minutes before I cancelled]
Every other tool call in the same run (both shell and xcodebuildmcp/*) completed fine. The hang is specific to the xcode/* MCP.
Impact
- Review has to be killed manually via
/codex:cancel <job-id>. - No partial review output is preserved, so the whole run has to start over.
- Happens repeatedly, not a one-off.
Suggested fixes
- Add a per-tool-call timeout / deadline in
codex-companion.mjsso a hung MCP tool doesn't block the whole review indefinitely. - Optionally skip
xcode/*tools (or expose a flag like--no-xcode-mcp) until Apple's upstream MCP stabilizes — thexcodebuildmcp/*alternative already covers build/sim needs. - Log a warning when a tool call exceeds some threshold (e.g. 60 s) so the user knows to cancel instead of waiting blind.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in codex-companion.mjs and reproduce /codex:review --base with the Apple xcode/XcodeListWindows MCP available. Trace the MCP tool-call lifecycle and its completion handling, then verify that a stalled call is bounded by a deadline, emits a useful warning, and does not leave the review running indefinitely.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- cli, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 65/100