Skip to content

internal: chunk CI poll under Bash cap to avoid gated-review deadlock (tend#694)#6023

Open
prql-bot wants to merge 2 commits into
mainfrom
daily/review-runs-27817186618
Open

internal: chunk CI poll under Bash cap to avoid gated-review deadlock (tend#694)#6023
prql-bot wants to merge 2 commits into
mainfrom
daily/review-runs-27817186618

Conversation

@prql-bot

Copy link
Copy Markdown
Collaborator

Problem

The bundled running-in-ci CI-monitoring poll runs a single foreground loop of 15 one-minute iterations (for i in $(seq 1 15); do sleep 60). That 15-minute loop exceeds the Bash tool's 10-minute cap, so the harness auto-backgrounds it. A backgrounded poll's completion notification is not reliably delivered to a CI session, so when the wait is gated (a review approval/dismissal, a pushed-fix verification) the session waits on a notification that never arrives and ends without posting the gated action.

This is max-sixty/tend#694 (open, still present in tend 0.1.6 — the current pin after #6018). review-runs has tracked it as High/structural for ~2 weeks, but every prior occurrence was harmless (work shipped before the poll, or the poll happened to finish under the cap). This window is the first occurrence that lost a deliverable.

Evidence

The tend-review run on dependabot PR #6022 (bump max-sixty/tend 0.1.4 → 0.1.6) — run 27776642433, 12 min, $1.71 — did the full review (clean mechanical bump, all 8 refs verified, benign release notes), hit a check-ok-to-merge red from a cancelled concurrency sibling, and correctly decided to gate its approval on a fresh poll. The poll auto-backgrounded; the session then looped TaskGet/Read on the background task waiting for a completion notification, never got one, and ended. PR #6022 received no review at all (gh api .../pulls/6022/reviews → empty). The job still reported success, so the lost deliverable is invisible in CI — exactly the failure mode that won't be caught next time without codification.

(#6022 was later auto-closed when the bot's consolidated #6018 merged, so no outcome harm landed this time — but the deadlock will recur on any gated review/ci-fix until #694 is fixed.)

Why a local override

#694 is already filed upstream and the recipe lives in a bundled skill, so review-runs has correctly declined to act for ~18 daily windows. Two things changed: (1) the defect is now confirmed to lose deliverables, not just burn time, and (2) commenting on the existing upstream thread is off-limits per running-in-ci scope rules, so PRQL's running-tend overlay ("repo wins") is the only available lever while upstream lingers.

The override only changes how the wait executes — chunked sub-cap foreground polls instead of one 15-min loop — preserving the bundled rollup logic. It's forward-compatible: once #694 is fixed upstream the bundled loop no longer auto-backgrounds, and this guidance simply becomes a no-op.

🤖 Generated with Claude Code

…adlock

The bundled running-in-ci poll loops 15×60s, exceeding the Bash 10-min cap,
so the harness auto-backgrounds it; the background completion notification is
unreliable in CI, so gated reviews deadlock and never post. Observed losing
the #6022 review deliverable. Add a running-tend override to chunk the poll
under the cap until max-sixty/tend#694 is fixed upstream.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant