refactor(#5974): log matched PR numbers in dispatch existing-PR guard skip notice - #6251
Conversation
PR Summary by QodoFix existing-PR guard bot detection via __typename and log matched PRs
AI Description
Diagram
High-Level Assessment
Files changed (3)
|
|
🤖 Review · Commit: |
Code Review by Qodo
1.
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
🤖 Finished Review · ✅ Success · Started 2:21 PM UTC · Completed 2:38 PM UTC Commit: |
ReviewFindingsMedium
Previous runReviewFindingsMedium
Low
Previous run (2)ReviewFindingsMedium
Previous run (3)ReviewFindingsMedium
Previous run (4)ReviewFindingsMedium
Low
Labels: PR modifies the dispatch existing-PR guard in both reusable-dispatch.yml and the scaffold template |
|
🤖 Finished Review · ✅ Success · Started 2:41 PM UTC · Completed 2:55 PM UTC Commit: |
waynesun09
left a comment
There was a problem hiding this comment.
MEDIUM: Unchecked "live dispatch run" test-plan item may not be satisfiable by merging alone (internal/scaffold/fullsend-repo/.github/workflows/dispatch.yml)
The PR description's test plan has one unchecked item: "Verify in a live dispatch run that the skip notice includes matched PR numbers." Issue #6013 (open) documents that fullsend-ai's own org repos are still on the deprecated per-org installation mode, where the executing .fullsend/dispatch.yml is a standalone copy of this scaffold template that does not auto-sync — it requires an explicit resync per #6013's described propagation gap. Merging this PR updates the template at internal/scaffold/fullsend-repo/.github/workflows/dispatch.yml, but the actually-running per-org dispatch.yml (including fullsend-ai's own dogfooding org) will keep emitting the old notice text until that resync happens. The PR doesn't mention scheduling or performing a resync, so the unchecked checkbox could be mistaken for "will be true once merged" when it isn't.
Suggestion: Caveat or check off the live-verification item to note it requires a per-org resync first (per #6013), or explicitly trigger/track that resync alongside merging this PR so the fix reaches production dispatch runs.
|
🤖 Finished Review · ✅ Success · Started 3:02 PM UTC · Completed 3:15 PM UTC Commit: |
waynesun09
left a comment
There was a problem hiding this comment.
MEDIUM: PR asserts item 3 (bot-author filter) "already resolved" without reconciling ggallen's same-day contradicting evidence on #5974
The PR body states as fact that issue #5974 items 1 and 3 (bot-author filter via __typename) "were already resolved on main prior to this PR." However, issue #5974 has a MEMBER comment from ggallen (2026-08-15T13:22:45Z, ~40 min before this PR's commits) titled "Confirmed: bot-author filter is broken," citing a live dispatch run log reading "Open PR(s) mentioning issue #6246 found — skipping code dispatch" as evidence the bot filter never fires, and recommending .author.is_bot. The triage-agent's follow-up comment explicitly lists .github/workflows/reusable-dispatch.yml (the file this PR edits) as an "Affected location" needing the fix upgraded from "verify" to "fix."
I independently verified via git log on reusable-dispatch.yml that the exact phrase "Open PR(s) mentioning issue #N found" (using gh pr list/MENTIONING_PRS) was removed from main on 2026-07-24 by commit 9f9a9ca ("fix(#5575): match linked-PR closing keywords instead of substring search"), which replaced the substring-search/gh pr list approach with the current closedByPullRequestsReferences GraphQL query and "linked to close issue" wording. Since ggallen's Aug-15 log quote uses the old "mentioning issue" wording (not present on main for 3+ weeks), the evidence almost certainly came from a stale, unsynced per-org dispatch.yml copy (the drift tracked by #6013), not from the current GraphQL-based code this PR touches. I also confirmed the current diff's select(.author.__typename != "Bot" or .author.login != "fullsend-ai-coder") is unchanged context (already on main, matching docs/contributing/bot-identities.md), so the underlying code claim is technically accurate.
But the PR body neither surfaces this reconciliation nor rebuts ggallen's report — it just asserts resolution and closes #5974, while the issue thread still contains a fresh, MEMBER-confirmed report saying the bot filter doesn't work in production. This gap is separate from the four existing review comments/replies on the PR (overbroad-filter regression, notice-format test gap, and the live-dispatch-run/#6013 resync caveat), all already fixed/acknowledged.
Suggestion: Before merging, add a note to the PR body or a comment on #5974 explicitly reconciling ggallen's "Confirmed: bot-author filter is broken" report — state which dispatch.yml revision actually produced the "mentioning issue #6246" log (it predates the 2026-07-24 GraphQL migration wording), and clarify that the observed production failure is explained by the known per-org sync gap (#6013) rather than by a live defect in the __typename+login logic this PR touches. Avoid letting the PR/issue closure imply the bot-filter bug is resolved everywhere when the stale per-org copies (#6013) demonstrably still run old logic in production.
|
🤖 Finished Review · ✅ Success · Started 5:08 PM UTC · Completed 5:22 PM UTC Commit: |
…ng-PR guard skip notice Include matched PR numbers in the dispatch existing-PR guard skip notice so silent dispatch skips are debuggable. Update guard comments to clarify the __typename + login filter intent. Signed-off-by: Greg Allen <gallen@redhat.com> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Greg Allen <gallen@redhat.com>
|
🤖 Finished Review · ✅ Success · Started 5:29 PM UTC · Completed 5:42 PM UTC Commit: |
waynesun09
left a comment
There was a problem hiding this comment.
Reviewed via fullsend-pr-sweep across two rounds. Prior findings on the earlier head were resolved: the PR body now explicitly reconciles the #5974 bot-filter evidence (clarifying it came from a stale, unsynced per-org dispatch.yml copy, not a live defect in the code this PR touches). Rechecked at current head 886edc27 — no outstanding findings.
|
🤖 Finished Retro · ✅ Success · Started 7:51 PM UTC · Completed 8:07 PM UTC Commit: |
Retro: PR #6251 — Log matched PR numbers in dispatch existing-PR guard skip noticeWorkflow overviewPR #6251 was a human-authored PR by ggallen addressing item 2 of issue #5974: improving the dispatch workflow's existing-PR guard to log matched PR numbers in a readable format ( Timeline
Agent performanceWhat the agent did well:
What humans caught that the agent missed:
Autonomy readinessDelta: 3 human gaps, 1 agent-only novel finding. The agent found one actionable issue the human missed (message-format-consistency) but missed the three most substantive findings. The human's findings required (1) evaluating whether test assertions actually lock the behavioral fix, (2) deployment topology knowledge (per-org sync), and (3) cross-referencing linked-issue comment history against PR body claims. These are categories where the agent consistently underperforms. This PR does not support increasing agent autonomy. Evidence for existing issues (not filing new proposals)
All three gaps are well-covered by existing open issues. No new proposals warranted. |
Summary
Skipping code dispatch for issue #123: found open PR(s) #456, #789) so silent dispatch skips are debuggable.__typename + loginfilter intent: only the code-agent bot is excluded so it can re-dispatch; other bots (e.g. Renovate) still block.TestDispatchPRCheckBotFilteralignment test to prevent regression on bothreusable-dispatch.ymland the scaffold template.Note: Issue #5974 lists three items. Items 1 (structured reference pattern via
closedByPullRequestsReferences) and 3 (bot-author filter via__typename + login) were already resolved on main prior to this PR — item 1 by commit 9f9a9ca (#5575, 2026-07-24) and item 3 by the same commit's GraphQL migration. The ggallen comment on #5974 reporting a broken bot filter ("Open PR(s) mentioning issue #6246 found") used the old "mentioning" wording removed in that commit, indicating the evidence came from a stale, unsynced per-orgdispatch.ymlcopy (the drift tracked by #6013), not the current GraphQL-based code on main. This PR addresses item 2 (log matched PR numbers) and adds a regression test covering item 3.Closes #5974
Test plan
TestDispatchPRCheckBotFilterpasses for bothreusable-dispatch.ymlandscaffold/dispatch.ymlinternal/scaffold/tests passdispatch.ymlcopy; per-repo mode picks up the change immediately viareusable-dispatch.yml🤖 Generated with Claude Code