Skip to content

/codex:review hangs indefinitely on xcode/XcodeListWindows MCP call #250

@steve-ham

Description

@steve-ham

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. the xcode/* MCP, not the third-party xcodebuildmcp/*)
  • 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.mjs so 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 — the xcodebuildmcp/* 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions