From 055a1bcefe53b9d0d3e108634e158b04c2eca5ea Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Wed, 24 Dec 2025 19:43:05 +0700 Subject: [PATCH] Fix error timeline for failed Codex MCP turns --- .../server/src/server/agent/providers/codex-mcp-agent.ts | 8 ++++++++ plan.md | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/server/src/server/agent/providers/codex-mcp-agent.ts b/packages/server/src/server/agent/providers/codex-mcp-agent.ts index ad5fbe353..0d785e254 100644 --- a/packages/server/src/server/agent/providers/codex-mcp-agent.ts +++ b/packages/server/src/server/agent/providers/codex-mcp-agent.ts @@ -1216,6 +1216,14 @@ class CodexMcpAgentSession implements AgentSession { (event as { error?: { message?: string } }).error ?? ((data as { error?: { message?: string } } | null)?.error ?? null); const error = errorRecord?.message ?? "Codex MCP turn failed"; + if (!this.turnState?.sawError) { + this.emitEvent({ + type: "timeline", + provider: "codex-mcp", + item: { type: "error", message: error }, + }); + this.turnState && (this.turnState.sawError = true); + } this.emitEvent({ type: "turn_failed", provider: "codex-mcp", error }); break; } diff --git a/plan.md b/plan.md index b05c9e8ed..984e1cd0c 100644 --- a/plan.md +++ b/plan.md @@ -121,7 +121,8 @@ Build a new Codex MCP provider side‑by‑side with the existing Codex SDK prov - [x] **Fix**: Codex MCP thread/item event mapping should capture file_change, mcp_tool_call, web_search, and todo_list. - **Done (2025-12-24 19:40)**: Normalized thread event types and added data fallback so item events map to timeline entries. -- [ ] **Fix**: Codex MCP should emit error timeline items for failed turns. +- [x] **Fix**: Codex MCP should emit error timeline items for failed turns. + - **Done (2025-12-24 19:42)**: Emitted error timeline item on `turn.failed` when no prior error was recorded. - [ ] **Fix**: Codex MCP persistence should include conversationId metadata for resume.