diff --git a/app/main.js b/app/main.js index d87f06a..0687011 100644 --- a/app/main.js +++ b/app/main.js @@ -215,8 +215,6 @@ function runCodex(model, prompt) { output.append(Buffer.from(`Codex execution timed out after ${timeoutMs} ms.\n`)); }, timeoutMs); - child.stderr.pipe(process.stdout); - child.stdout.on("data", (chunk) => { output.append(chunk); }); @@ -239,14 +237,11 @@ function runCodex(model, prompt) { output.append(Buffer.from(`Codex process terminated by signal ${signal}.\n`)); } - let lastMessage = ""; - try { - lastMessage = fs.readFileSync(lastMessageFile, "utf8"); - } catch { - lastMessage = ""; - } + const lastMessage = fs.existsSync(lastMessageFile) ? fs.readFileSync(lastMessageFile, "utf8") : null; + const diagnosticOutput = output.toString(); + const resultOutput = code === 0 && lastMessage !== null ? lastMessage : diagnosticOutput || lastMessage || ""; - resolve({ status: code ?? 1, output: lastMessage || output.toString() }); + resolve({ status: code ?? 1, output: resultOutput }); }); }); } diff --git a/tests/entrypoint_test.sh b/tests/entrypoint_test.sh index 97155ee..613d43a 100755 --- a/tests/entrypoint_test.sh +++ b/tests/entrypoint_test.sh @@ -70,7 +70,7 @@ while [ "$#" -gt 0 ]; do shift done -printf '%s\n' 'codex' 'final answer' 'tokens used' '123' 'final answer' +printf '%s\n' 'codex' 'final answer' 'tokens used' '123' 'final answer' >&2 printf '%s\n' 'final answer' > "$last_message_file" SH chmod +x "$dir/codex"