Skip to content

Reduce redundant review dispatches triggered by non-code events #893

@fullsend-ai-retro

Description

@fullsend-ai-retro

What happened

PR #816 triggered 14 fullsend.yaml runs and at least 10 review dispatches over its 2-day lifecycle. The runs were triggered by two event types:

  • pull_request_target (7 runs): Triggered by pushes, syncs, and merges — these represent new code to review.
  • pull_request_review (7 runs): Triggered by human review submissions (approvals, comments, change requests) — these do not represent new code.

Several pull_request_review-triggered dispatches launched new review agent runs even though no code had changed since the last review. For example, when ralphbean posted approval reviews at 15:51 and 17:24, each triggered a new dispatch that re-reviewed the same commit the bot had already approved.

What could go better

The fullsend.yaml workflow should distinguish between events that introduce new code (which need re-review) and events that are human feedback signals (which may need different handling, like triggering a fix agent on changes_requested, but should not trigger a redundant review).

Specifically, pull_request_review events with action: approved or action: commented should not dispatch new review runs. Only pull_request_review events with action: changes_requested might be relevant (to trigger a fix agent), and even then, the review dispatch is unnecessary — the fix agent should be dispatched directly.

Confidence: Medium. Without access to the fullsend.yaml workflow source, I cannot confirm whether filtering already exists and failed, or whether there is no filtering at all. The observed behavior (7 review-triggered dispatches) strongly suggests no filtering. However, some of these dispatches may serve other purposes (e.g., updating sticky comments, triggering downstream workflows) that I'm not aware of.

Risk: Suppressing pull_request_review dispatches could break the fix agent workflow if it depends on the review dispatch as a trigger. The change should be tested to ensure fix agent dispatch is independent.

Proposed change

In the fullsend.yaml workflow (or the dispatch logic that decides which .fullsend workflow to trigger), add event filtering:

  1. For pull_request_review events: only dispatch fix.yml (not review.yml) when the review action is changes_requested. Skip dispatch entirely for approved and commented actions.
  2. For pull_request_target events with action synchronize: continue dispatching review.yml as today (new code pushed).
  3. For pull_request_target events with action closed (merged): skip review dispatch (the code is already merged).

This would have reduced the 10+ review dispatches on PR #816 to approximately 4-5, saving ~50% of review agent token spend on this PR.

Validation criteria

Over the next 10 PRs in fullsend-ai/fullsend, track the ratio of review dispatches to code-changing events (pushes). The ratio should decrease from ~2:1 to ~1:1. No review should be missed for commits that actually changed code. Fix agent dispatches should continue to work correctly when humans request changes.


Generated by retro agent from #816

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions