From 1b3559bba753bd64c0d69888cfa76c277b14c118 Mon Sep 17 00:00:00 2001 From: openhands Date: Tue, 17 Mar 2026 09:17:02 +0000 Subject: [PATCH] fix: enforce single-threaded pipeline per project Don't start new issues while open PRs are waiting for review/CI. This prevents dev-agent from churning through backlog issues without reviews landing first. --- dev/dev-poll.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dev/dev-poll.sh b/dev/dev-poll.sh index 2df4991..8812457 100755 --- a/dev/dev-poll.sh +++ b/dev/dev-poll.sh @@ -328,6 +328,7 @@ for i in $(seq 0 $((BACKLOG_COUNT - 1))); do else log "#${ISSUE_NUM} PR #${EXISTING_PR} exists (CI: ${CI_STATE}, waiting)" + WAITING_PRS="${WAITING_PRS:-}${WAITING_PRS:+, }#${EXISTING_PR}" continue fi fi @@ -337,6 +338,13 @@ for i in $(seq 0 $((BACKLOG_COUNT - 1))); do break done +# Single-threaded per project: if any issue has an open PR waiting for review/CI, +# don't start new work — let the pipeline drain first +if [ -n "$READY_ISSUE" ] && [ -n "${WAITING_PRS:-}" ]; then + log "holding #${READY_ISSUE} — waiting for open PR(s) to land first: ${WAITING_PRS}" + exit 0 +fi + if [ -z "$READY_ISSUE" ]; then log "no ready issues (all blocked by unmerged deps)" exit 0