Skip to content

[pr-attention-queue] Guard merge recommendations with current review evidence - #69355

Open
PureWeen wants to merge 3 commits into
mainfrom
pureween-pulse-merge-eligibility
Open

PureWeen wants to merge 3 commits into
mainfrom
pureween-pulse-merge-eligibility

Conversation

@PureWeen

@PureWeen PureWeen commented Sep 16, 2026

Copy link
Copy Markdown
Member

Summary

Prevent PR Attention Queue and Pulse from recommending a pull request for merge when current reviewer feedback or discussion still needs action, and refresh the dashboard daily.

  • Track feedback and renewed review requests per reviewer, so one reviewer’s later approval cannot hide another reviewer’s outstanding concern.
  • Distinguish Waiting on author from Verify discussion before merge instead of inventing author ownership for uncertain evidence.
  • Require complete, clear bounded discussion evidence before displaying a prospective ReadyToMerge candidate.
  • Carry the same additive eligibility contract through standalone queue output and both Pulse scopes.
  • Schedule Pulse daily at 12:50 UTC, including weekends, while retaining manual dispatch.

Why

The previous aggregate review state could classify a PR as ready after a later approval even when another reviewer still had actionable feedback. Retained examples also showed unresolved or ambiguous discussion being omitted from merge recommendations.

This change keeps existing ranking, budgets, display caps, and review-now behavior. It adds conservative merge qualification rather than changing the underlying prospective classification. It does not merge PRs.

Important behavior

  • A same-reviewer approval can settle feedback when it covers that feedback’s commit or the current head. An already settled feedback/approval pair does not become unsettled solely because of a later push; an unrelated older approval does not clear current feedback.
  • Missing, truncated, unknown, or current unresolved context routes to verification. Empty review text alone is not clearance, but complete resolved/outdated context can legitimately be clear.
  • Legacy payloads without the additive extension remain supported conservatively; partial or inconsistent extensions are rejected.

Review follow-up

Commit da49acb428 addresses the review round:

All three threads have evidence-backed replies and are resolved.

Daily schedule

Commit 007c7b8e18 adds schedule: daily, compiled to 50 12 * * *, alongside workflow_dispatch.

Scheduled execution starts after the workflow change is merged to the default branch. It updates the same dashboard, #69328, using the existing fixed-target checks, publication validation, model settings, and serialized workflow. The compiler also adds its standard scheduled-agent concurrency group. Queue and reporting scripts are unchanged by this scheduling commit.

Validation

  • Queue: identical 60-case harness had 13 expected failures and 47 passing controls on 0e7570ec; all 60 pass with the review fix. Full queue entry point passes.
  • Pulse comment coverage: 45/45 controls pass on baseline and fixed code through the real producer, sanitizer, and private validator.
  • Two-scope pipeline: 131/131 assertions pass through producer → sanitizer → renderer → private validation. The six synthetic variants are test cases, not claims about similarly numbered live PRs.
  • Scheduling: 9/9 focused controls pass, including two missing-trigger failures on the manual-only baseline and seven passing activation controls. The generated activation script and pinned helper are exercised with mocked GitHub permission responses.
  • Official gh-aw v0.88.7 strict compilation and explicit validation pass; repeated compilation produces identical lock output. The complete Pulse suite passes on the scheduling commit.

Hosted verification

Run 35137102234 successfully executed review-fix commit da49acb428 and published #69328. Both scopes collected 379/379 open PRs; the stored body exactly matched the protected canonical artifact. Exactly one safe-output mutation occurred, changing only the dashboard body and timestamp; the fork dashboard was unchanged. Both inference stages used only gpt-5.6-sol, with token steering disabled and clean threat detection.

A prior attempt timed out in threat detection and failed closed without publishing. No new hosted run was dispatched for the subsequent scheduling commit. Its compilation and activation controls are verified locally; actual GitHub scheduled execution remains to be observed after merge.

Scope

This remains a PR-attention correctness change plus daily scheduling—not a broader repository-activity dashboard or deterministic-publisher conversion. No script relocations, new scopes, budgets, dependency updates, or permission changes are included. Maintainer approval is required; the user owns the merge.

…evidence

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI lite review requested due to automatic review settings September 16, 2026 15:32
@PureWeen
PureWeen requested review from a team and wtgodbe as code owners September 16, 2026 15:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Two critical and one moderate unresolved findings affect merge-gate correctness.

Get a fresh assessment by requesting another Copilot review.

Review tier: Lite
Findings: 2 High severity · 1 Medium severity

Open (3)
What changed in this PR

This PR adds bounded current-review and discussion evidence to merge recommendations and carries conservative eligibility through the PR Attention Pulse pipeline.

Changes:

  • Adds merge eligibility, verification views, counters, and caps.
  • Extends Pulse sanitization, validation, rendering, and legacy compatibility.
  • Adds queue/Pulse tests, fixtures, documentation, and presentation updates.

Outstanding findings: Critical (3 votes): later approval by another reviewer can incorrectly clear actionable feedback. Moderate (3 votes): empty COMMENTED bodies do not require verification. Critical (1 vote): inconsistent truncation metadata can allow incomplete evidence through the merge gate.

File Summary
.github/​workflows/​pr-attention-pulse/​Sanitize-PRAttentionPulse.ps1 Sanitizes merge evidence and views.
.github/​workflows/​pr-attention-pulse/​PRAttentionPulseContract.psm1 Validates and renders merge extensions.
.github/​workflows/​pr-attention-pulse/​Combine-PRAttentionPulse.ps1 Normalizes combined areas.
.github/​workflows/​pr-attention-pulse-tests/​Test-PulseReviewRequirements.ps1 Updates Pulse controls and reference validation.
.github/​workflows/​pr-attention-pulse-tests/​Test-PulseMergeRequirements.ps1 Adds Pulse merge contract tests.
.github/​workflows/​pr-attention-pulse-tests/​Test-PRAttentionPulse.ps1 Updates presentation and integration tests.
.github/​workflows/​pr-attention-pulse-tests/​fixtures/​presentation/​published-34643961191.expected.txt Updates the published presentation golden.
.github/​workflows/​pr-attention-pulse-tests/​fixtures/​presentation/​provenance.json Records fixture provenance.
.github/​workflows/​pr-attention-pulse-tests/​fixtures/​presentation/​normal-legacy.expected.txt Updates the legacy presentation golden.
.github/​workflows/​pr-attention-pulse-tests/​fixtures/​presentation/​incomplete-query.expected.txt Updates the unavailable-state golden.
.github/​workflows/​pr-attention-pulse-tests/​fixtures/​presentation/​complete-zero.expected.txt Updates the empty-inventory golden.
.github/​workflows/​pr-attention-pulse-tests/​fixtures/​presentation/​bounded-empty-verification.expected.txt Updates the verification golden.
.github/​skills/​pr-attention-queue/​tests/​Test-PRAttentionQueue.ps1 Runs merge eligibility tests.
.github/​skills/​pr-attention-queue/​tests/​Test-MergeEligibility.ps1 Adds merge behavior coverage.
.github/​skills/​pr-attention-queue/​tests/​MergeEligibilityTestHelpers.ps1 Provides queue test transport.
.github/​skills/​pr-attention-queue/​tests/​fixtures/​merge-eligibility.json Adds live-derived merge fixtures.
.github/​skills/​pr-attention-queue/​SKILL.md Documents merge evidence semantics.
.github/​skills/​pr-attention-queue/​scripts/​PRAttentionQueue.psm1 Collects and applies merge evidence.

Comment thread .github/skills/pr-attention-queue/scripts/PRAttentionQueue.psm1 Outdated
Comment thread .github/workflows/pr-attention-pulse/PRAttentionPulseContract.psm1
Comment thread .github/skills/pr-attention-queue/scripts/PRAttentionQueue.psm1 Outdated
@PureWeen
PureWeen deployed to copilot-pat-pool September 16, 2026 15:42 — with GitHub Actions Active
@PureWeen
PureWeen deployed to copilot-pat-pool September 16, 2026 15:42 — with GitHub Actions Active
@PureWeen
PureWeen deployed to copilot-pat-pool September 16, 2026 15:44 — with GitHub Actions Active
@PureWeen
PureWeen deployed to copilot-pat-pool September 16, 2026 15:49 — with GitHub Actions Active
@PureWeen
PureWeen deployed to copilot-pat-pool September 16, 2026 15:50 — with GitHub Actions Active
Keep another reviewer approval from hiding outstanding feedback or renewed requests. Preserve settled review roundtrips and characterize empty-review and comment-coverage evidence through the shared producer and Pulse validators.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@PureWeen
PureWeen deployed to copilot-pat-pool September 16, 2026 17:48 — with GitHub Actions Active
@PureWeen
PureWeen deployed to copilot-pat-pool September 16, 2026 17:49 — with GitHub Actions Active
@PureWeen
PureWeen deployed to copilot-pat-pool September 16, 2026 17:51 — with GitHub Actions Active
@PureWeen
PureWeen deployed to copilot-pat-pool September 16, 2026 18:52 — with GitHub Actions Active
@PureWeen
PureWeen deployed to copilot-pat-pool September 16, 2026 18:53 — with GitHub Actions Active
@PureWeen
PureWeen deployed to copilot-pat-pool September 16, 2026 18:55 — with GitHub Actions Active
@PureWeen
PureWeen deployed to copilot-pat-pool September 16, 2026 19:01 — with GitHub Actions Active
@PureWeen
PureWeen deployed to copilot-pat-pool September 16, 2026 19:02 — with GitHub Actions Active
Retain manual dispatch and add the pinned daily schedule, compiled to 12:50 UTC every calendar day. Cover source and generated triggers plus scheduled and manual activation through the pinned runtime without changing the pipeline.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants