From 336dbaa50d856ae9ee82d9323fd47ee57605d4ba Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Sat, 14 Mar 2026 12:35:43 -0500 Subject: [PATCH] fix: detect is_error from claude -p result line (ConnectionRefused was PASS) claude -p can return subtype="success" with is_error=true when the API is unreachable. Previously we only checked subtype, so API failures silently passed. Now check is_error first and report as 'error_api'. Co-Authored-By: Claude Opus 4.6 --- test/helpers/session-runner.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/helpers/session-runner.ts b/test/helpers/session-runner.ts index eb5628f7f21f0a35db10118b34d8999aa7f3541e..17ed772c0ddbf9a38033c313efe5b05f583eb51b 100644 --- a/test/helpers/session-runner.ts +++ b/test/helpers/session-runner.ts @@ -277,7 +277,10 @@ export async function runSkillTest(options: { // Use resultLine for structured result data if (resultLine) { - if (resultLine.subtype === 'success') { + if (resultLine.is_error) { + // claude -p can return subtype=success with is_error=true (e.g. API connection failure) + exitReason = 'error_api'; + } else if (resultLine.subtype === 'success') { exitReason = 'success'; } else if (resultLine.subtype) { exitReason = resultLine.subtype;