Skip to content

fro-bot/agent: follow-up validation submitted as plain comment instead of formal review (blocks branch protection) #3369

@marcusrbrown

Description

@marcusrbrown

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

  1. Open a PR with a Fro Bot reviewable change
  2. Receive Fro Bot's review (state APPROVED or COMMENTED)
  3. Push a follow-up commit that addresses NBCs
  4. Branch protection dismisses the prior review (REVIEW_REQUIRED)
  5. Observe Fro Bot's re-run: result is a plain issue comment, not a review
  6. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions