From 7f61437eea1299ad91050d00b4a22e77ddcd3177 Mon Sep 17 00:00:00 2001 From: cexll Date: Thu, 13 Nov 2025 15:41:54 +0800 Subject: [PATCH] fix codex.py wsl run err --- skills/codex/scripts/codex.py | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/skills/codex/scripts/codex.py b/skills/codex/scripts/codex.py index f09b59e..e269c4c 100755 --- a/skills/codex/scripts/codex.py +++ b/skills/codex/scripts/codex.py @@ -155,22 +155,24 @@ def main(): # 等待进程结束 returncode = process.wait(timeout=timeout_sec) - if returncode == 0: - if last_agent_message: - # 输出 agent_message - sys.stdout.write(f"{last_agent_message}\n") + # 优先检查是否有有效输出,而非退出码 + if last_agent_message: + # 输出 agent_message + sys.stdout.write(f"{last_agent_message}\n") - # 输出 session_id(如果存在) - if thread_id: - sys.stdout.write(f"\n---\nSESSION_ID: {thread_id}\n") + # 输出 session_id(如果存在) + if thread_id: + sys.stdout.write(f"\n---\nSESSION_ID: {thread_id}\n") - sys.exit(0) - else: - log_error('Codex completed without agent_message output') - sys.exit(1) + # 有输出但退出码非零,输出警告而非失败 + if returncode != 0: + log_warn(f'Codex completed with non-zero status {returncode} but produced valid output') + + sys.exit(0) else: - log_error(f'Codex exited with status {returncode}') - sys.exit(returncode) + # 没有输出才算真正失败 + log_error(f'Codex exited with status {returncode} without agent_message output') + sys.exit(returncode if returncode != 0 else 1) except subprocess.TimeoutExpired: log_error('Codex execution timeout')