diff --git a/scripts/run-claude.sh b/scripts/run-claude.sh index 80374c8..f9ef2da 100644 --- a/scripts/run-claude.sh +++ b/scripts/run-claude.sh @@ -35,7 +35,15 @@ FINAL_PROMPT="$(envsubst < "${ACTION_PATH}/scripts/prompt.md")" # Claude refuses --dangerously-skip-permissions as root outside a sandbox. export IS_SANDBOX=1 -claude --print --dangerously-skip-permissions "${FINAL_PROMPT}" \ +# Stream events so the runner sees output and does not kill the job as a zombie. +STREAM_FILE="$(mktemp)" + +claude --print --dangerously-skip-permissions \ + --output-format stream-json --verbose "${FINAL_PROMPT}" \ + | tee "${STREAM_FILE}" \ + | jq -r --unbuffered '[.type, (.message.content[]?.name // empty)] | join(" ")' + +jq -r 'select(.type == "result") | .result // ("Bot failed: " + .subtype)' "${STREAM_FILE}" \ | ansifilter > "${COMMENT_FILE}" post_comment