Hey <@U0A9RLDPQU8>, the new automation looks prett...
# proj-agent-canvas
l
Hey @modern-fireman-99755, the new automation looks pretty good I think! I pushed an update but it seems the check didn’t re-run? github.com/OpenHands/OpenHands/pull/16202
m
I deactivate the automation because it was a little verbose. We were posting a ton of messages in the slack channel. So i wanted to be sure that this was wanted before let it run.
l
I think it’s generally good, but we might want to tighten the checks that it needs a human review per the comment above.
m
Yes, i wanted to rethink the checks. I think it is difficult to find checks which are not conflicting whit each other. For instance, we want a review when • the all-hands-bot is put as a reviewer If there is no all-hands-bot as a reviewer the following applies: • CI is failing ◦ msg in the PR to fix the CI • if trusted contributors >= 3 PR merged and no PR review ◦ fire an automatic review • if not trusted contributor and no PR review ◦ send a msg into the relative slack channel but for the second part: should we always look at all the PRs? Or just the one opened in the last 5 min? cc @calm-artist-7206 as we were speaking about that in another thread
c
re: CI failing -> this is maybe doable with a simple deterministic workflow?
m
i think all are doable with deterministic workflow
c
These are the conditions I’m currently running in my review automation: https://gist.github.com/smolpaws/e2a597c20e79e023268f1c6b20b511ec#a-pr-is-reviewed-only-if-all-of-these-hold
As you can see, it runs on <= 5 PRs per run, so it stops on more; then it has conditions to leave alone those with failing CI or where
enyst
already reviewed and the author didn’t change anything yet
that means in time, it captures them all… I think
I think this is doable, Vasco: to have the script look at all open, non-draft PRs, and decide in some ways which to review
m
Ok i'm updating and reactivating the logic 1. Bot requested as reviewer? → AI review, no other gate applies (bypasses everything below). Re-checked every poll, overrides any prior verdict. 2. HUMAN section <20 chars? → comment (edit-in-place if one already exists), stop. Dedup key: hash of the HUMAN text, not head_sha — code-only pushes don't retrigger it. 3. CI still running? → skip, recheck next poll. 4. CI failed (any completed check-run: failure/timed_out/action_required)? → "fix CI" comment, once per head_sha. 5. Trusted (org member/collaborator or ≥3 merged PRs) and no review yet? → AI review. 6. Not trusted, no review yet → Slack ping, once per PR ever (not per head_sha) — checked against local state, then against actual channel history as a fallback before posting.
🙌 1