From 88d04d9edb7d57969508cefb042159a04b94bf66 Mon Sep 17 00:00:00 2001 From: openhands Date: Tue, 17 Mar 2026 20:52:51 +0000 Subject: [PATCH 1/2] fix: feat: review-poll.sh injects review feedback into dev tmux session (#82) Co-Authored-By: Claude Sonnet 4.6 --- review/review-poll.sh | 65 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/review/review-poll.sh b/review/review-poll.sh index c24eb4b..cb26750 100755 --- a/review/review-poll.sh +++ b/review/review-poll.sh @@ -36,7 +36,7 @@ log "--- Poll start ---" PRS=$(curl -sf -H "Authorization: token ${CODEBERG_TOKEN}" \ "${API_BASE}/pulls?state=open&limit=20" | \ - jq -r --arg branch "${PRIMARY_BRANCH}" '.[] | select(.base.ref == $branch) | select(.draft != true) | select(.title | test("^\\[?WIP[\\]:]"; "i") | not) | "\(.number) \(.head.sha)"') + jq -r --arg branch "${PRIMARY_BRANCH}" '.[] | select(.base.ref == $branch) | select(.draft != true) | select(.title | test("^\\[?WIP[\\]:]"; "i") | not) | "\(.number) \(.head.sha) \(.head.ref)"') if [ -z "$PRS" ]; then log "No open PRs targeting ${PRIMARY_BRANCH}" @@ -49,9 +49,71 @@ log "Found ${TOTAL} open PRs" REVIEWED=0 SKIPPED=0 +inject_review_into_dev_session() { + local pr_num="$1" pr_sha="$2" pr_branch="$3" + + local issue_num + issue_num=$(printf '%s' "$pr_branch" | grep -oP 'issue-\K[0-9]+' || true) + [ -z "$issue_num" ] && return 0 + + local session="dev-${PROJECT_NAME}-${issue_num}" + local phase_file="/tmp/dev-session-${PROJECT_NAME}-${issue_num}.phase" + + tmux has-session -t "${session}" 2>/dev/null || return 0 + + local current_phase + current_phase=$(head -1 "${phase_file}" 2>/dev/null | tr -d '[:space:]' || true) + [ "${current_phase}" = "PHASE:awaiting_review" ] || return 0 + + local review_comment + review_comment=$(curl -sf -H "Authorization: token ${CODEBERG_TOKEN}" \ + "${API_BASE}/issues/${pr_num}/comments?limit=50" | \ + jq -r --arg sha "${pr_sha}" \ + '[.[] | select(.body | contains("