diff --git a/pyproject.toml b/pyproject.toml index 98e87b5..593d19a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "codexmcp" -version = "0.1.0" +version = "0.7.4" description = "FastMCP server wrapping the Codex CLI." readme = "README.md" requires-python = ">=3.12" diff --git a/src/codexmcp/server.py b/src/codexmcp/server.py index fb5c805..73a1e3b 100644 --- a/src/codexmcp/server.py +++ b/src/codexmcp/server.py @@ -5,6 +5,7 @@ from __future__ import annotations import json import os import queue +import re import subprocess import threading import uuid @@ -219,8 +220,11 @@ async def codex( success = False if len(agent_messages) == 0 else success err_message = "codex error: " + line_dict.get("error", {}).get("message", "") if "error" in line_dict.get("type", ""): - success = False if len(agent_messages) == 0 else success - err_message = "codex error: " + line_dict.get("message", "") + error_msg = line_dict.get("message", "") + is_reconnecting = bool(re.match(r'^Reconnecting\.\.\.\s+\d+/\d+$', error_msg)) + if not is_reconnecting: + success = False if len(agent_messages) == 0 else success + err_message = "codex error: " + error_msg except json.JSONDecodeError as error: # Improved error handling: include problematic line err_message = line diff --git a/uv.lock b/uv.lock index 3653891..5a6176b 100644 --- a/uv.lock +++ b/uv.lock @@ -114,7 +114,7 @@ wheels = [ [[package]] name = "codexmcp" -version = "0.1.0" +version = "0.7.4" source = { editable = "." } dependencies = [ { name = "mcp", extra = ["cli"] },