From 34ddbef3fd6d83586a3b01eb52722cd82038df62 Mon Sep 17 00:00:00 2001 From: openhands Date: Wed, 18 Mar 2026 20:50:56 +0000 Subject: [PATCH 1/2] fix: PRIORITY 1.5 misses REQUEST_CHANGES when CI is not yet settled (#41) --- dev/dev-poll.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dev/dev-poll.sh b/dev/dev-poll.sh index 991c5a0..3cc8c7f 100755 --- a/dev/dev-poll.sh +++ b/dev/dev-poll.sh @@ -356,7 +356,11 @@ for i in $(seq 0 $(($(echo "$OPEN_PRS" | jq 'length') - 1))); do fi # Stuck: REQUEST_CHANGES or CI failure → spawn agent - if ci_passed "$CI_STATE" && [ "${HAS_CHANGES:-0}" -gt 0 ]; then + # Do NOT gate REQUEST_CHANGES on ci_passed: if a reviewer leaves REQUEST_CHANGES + # while CI is still pending/unknown, we must act immediately rather than wait for + # CI to settle. Definitive CI failure (non-pending, non-unknown) is handled by + # the elif below, so we only spawn here when CI has not definitively failed. + if [ "${HAS_CHANGES:-0}" -gt 0 ] && { ci_passed "$CI_STATE" || [ "$CI_STATE" = "pending" ] || [ "$CI_STATE" = "unknown" ] || [ -z "$CI_STATE" ]; }; then log "PR #${PR_NUM} (issue #${STUCK_ISSUE}) has REQUEST_CHANGES — fixing first" nohup "${SCRIPT_DIR}/dev-agent.sh" "$STUCK_ISSUE" >> "$LOGFILE" 2>&1 & log "started dev-agent PID $! for stuck PR #${PR_NUM}" From d1cea6c0bb6a5ae5f1cc9a2c422e4b7740fe0248 Mon Sep 17 00:00:00 2001 From: openhands Date: Wed, 18 Mar 2026 21:03:53 +0000 Subject: [PATCH 2/2] fix: apply same REQUEST_CHANGES/CI-pending fix to PRIORITY 1 block --- dev/dev-poll.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dev/dev-poll.sh b/dev/dev-poll.sh index 3cc8c7f..90564ff 100755 --- a/dev/dev-poll.sh +++ b/dev/dev-poll.sh @@ -283,7 +283,9 @@ if [ "$ORPHAN_COUNT" -gt 0 ]; then log "started dev-agent PID $! for issue #${ISSUE_NUM} (agent-merge)" exit 0 - elif ci_passed "$CI_STATE" && [ "${HAS_CHANGES:-0}" -gt 0 ]; then + # Do NOT gate REQUEST_CHANGES on ci_passed: act immediately even if CI is + # pending/unknown. Definitive CI failure is handled by the elif below. + elif [ "${HAS_CHANGES:-0}" -gt 0 ] && { ci_passed "$CI_STATE" || [ "$CI_STATE" = "pending" ] || [ "$CI_STATE" = "unknown" ] || [ -z "$CI_STATE" ]; }; then log "issue #${ISSUE_NUM} PR #${HAS_PR} has REQUEST_CHANGES — spawning agent" nohup "${SCRIPT_DIR}/dev-agent.sh" "$ISSUE_NUM" >> "$LOGFILE" 2>&1 & log "started dev-agent PID $! for issue #${ISSUE_NUM} (review fix)"