Observed behavior
On PR #3368, after the initial Fro Bot review (state APPROVED, submitted at 18:42:15Z), I pushed a follow-up commit (47d136c) addressing the NBCs. Branch protection correctly dismissed the prior approval, leaving reviewDecision: REVIEW_REQUIRED.
The Fro Bot agent ran on the new commit (run 26341252342) and produced a follow-up message validating the changes:
Both addressable items from the prior review landed in 47d136c:
social-broadcast.yaml:31-37 \u2014 FRO_BOT_PAT secret declaration is gone\u2026
survey-repo.yaml:291-292 \u2014 bluesky_text dropped from the call site\u2026
Verdict stands: PASS. Ship it.
But the message was posted via the issue comment API (event=commented), not the pull request review API (event=reviewed, state=APPROVED). Branch protection on main requires an APPROVED review to merge, so the PR remained blocked despite an explicit approval verdict.
Expected behavior
When the agent runs against a PR with a dismissed prior review (the common case after a NBC-fix push), and the agent's verdict is approval, the agent should submit a formal POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews with event: APPROVE rather than a plain issue comment.
A safer alternative if the agent's prompt or workflow can't reliably distinguish a first review from a follow-up review: always submit results through the review API regardless. COMMENTED is a valid review state and remains visible in the same channel without satisfying branch protection.
Heuristic for the agent
If the agent has already commented or reviewed on this PR before, and the current run is a follow-up validation of previously-flagged NBCs, route the result through the pull request review API. The content can be identical; only the API endpoint changes.
Reproduction
- Open a PR with a Fro Bot reviewable change
- Receive Fro Bot's review (state
APPROVED or COMMENTED)
- Push a follow-up commit that addresses NBCs
- Branch protection dismisses the prior review (
REVIEW_REQUIRED)
- Observe Fro Bot's re-run: result is a plain issue comment, not a review
- PR remains
BLOCKED requiring manual approval
Related
Workaround
Human approves the PR manually in the GitHub UI after Fro Bot's comment validates the change. Acceptable but high-friction; defeats the agent's review automation.
Observed behavior
On PR #3368, after the initial Fro Bot review (state
APPROVED, submitted at 18:42:15Z), I pushed a follow-up commit (47d136c) addressing the NBCs. Branch protection correctly dismissed the prior approval, leavingreviewDecision: REVIEW_REQUIRED.The Fro Bot agent ran on the new commit (run
26341252342) and produced a follow-up message validating the changes:But the message was posted via the issue comment API (
event=commented), not the pull request review API (event=reviewed, state=APPROVED). Branch protection onmainrequires an APPROVED review to merge, so the PR remained blocked despite an explicit approval verdict.Expected behavior
When the agent runs against a PR with a dismissed prior review (the common case after a NBC-fix push), and the agent's verdict is approval, the agent should submit a formal
POST /repos/{owner}/{repo}/pulls/{pull_number}/reviewswithevent: APPROVErather than a plain issue comment.A safer alternative if the agent's prompt or workflow can't reliably distinguish a first review from a follow-up review: always submit results through the review API regardless.
COMMENTEDis a valid review state and remains visible in the same channel without satisfying branch protection.Heuristic for the agent
If the agent has already commented or reviewed on this PR before, and the current run is a follow-up validation of previously-flagged NBCs, route the result through the pull request review API. The content can be identical; only the API endpoint changes.
Reproduction
APPROVEDorCOMMENTED)REVIEW_REQUIRED)BLOCKEDrequiring manual approvalRelated
COMMENTEDinstead ofAPPROVED(related but different: that one DID go through the review API, just with the wrong event)COMMENTEDpattern as feat(privacy): detect public-to-private visibility transitions in reconcile #3338Workaround
Human approves the PR manually in the GitHub UI after Fro Bot's comment validates the change. Acceptable but high-friction; defeats the agent's review automation.