chore(agents): improve ca-continuous-pr-reviewer — skip PRs with unchanged HEAD since last review #2587

Merged
freemo merged 2 commits from improvement/agent-ca-pr-reviewer-skip-unchanged into master 2026-04-24 22:13:31 +00:00

2 Commits

Author SHA1 Message Date
HAL9000 c882cc2ff8 fix(agents): make reviewed_prs a dict mapping PR numbers to HEAD SHAs
CI / push-validation (pull_request) Successful in 27s
CI / helm (pull_request) Successful in 40s
CI / build (pull_request) Successful in 57s
CI / lint (pull_request) Successful in 1m10s
CI / quality (pull_request) Successful in 1m20s
CI / typecheck (pull_request) Successful in 1m40s
CI / security (pull_request) Successful in 1m51s
CI / e2e_tests (pull_request) Successful in 4m43s
CI / benchmark-publish (pull_request) Has been skipped
CI / integration_tests (pull_request) Successful in 5m13s
CI / unit_tests (pull_request) Successful in 6m38s
CI / docker (pull_request) Successful in 1m42s
CI / coverage (pull_request) Successful in 12m3s
CI / status-check (pull_request) Successful in 3s
CI / benchmark-regression (pull_request) Successful in 1h4m35s
Addresses the SHA tracking gap identified in review #4451. The
reviewed_prs data structure was a set() that only tracked PR numbers,
but Source C's get_last_reviewed_sha() call had no data to compare
against for PRs adopted by the cross-session dedup logic.

Changes:
- reviewed_prs = set() -> reviewed_prs = {} (PR number -> HEAD SHA)
- Source A dedup: reviewed_prs.add(pr.number) -> reviewed_prs[pr.number] = pr.head.sha
- Source C: get_last_reviewed_sha(pr.number) -> reviewed_prs[pr.number]
- Source C: reviewed_prs.discard() -> del reviewed_prs[]
- Result processing: reviewed_prs.add(pr_number) -> reviewed_prs[pr_number] = 'done' (sentinel)
  or reviewed_prs[pr_number] = result.pr.head.sha for changes_requested

This ensures Source C can correctly detect when an implementor pushes
new commits after a review, preventing the within-cycle race condition
where a PR is simultaneously in reviewed_prs and work_items.
2026-04-24 21:58:42 +00:00
HAL9000 eb0c82d38b chore(agents): improve ca-continuous-pr-reviewer — skip PRs with unchanged HEAD since last review
Add cross-session deduplication check in Source A filtering that detects
existing bot review comments and skips PRs where HEAD hasn't changed since
the last review.

ISSUES CLOSED: #2424
2026-04-24 21:58:42 +00:00