Skip to content

Manage PR review lanes, outcomes, and updates - #3293

Draft
ravarora2 wants to merge 29 commits into
mainfrom
rarora/review-configuration
Draft

ravarora2 wants to merge 29 commits into
mainfrom
rarora/review-configuration

Conversation

@ravarora2

@ravarora2 ravarora2 commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Why

Communities need to route PRs to the right reviewers, request another pass, and see which reviews need attention. A chat acknowledgment alone does not establish acceptance or approval.

What

Add an optional Review Configuration plugin with repository settings, review lanes, agent assignments, instructions, and routing rules. Separate Review Configuration and Pull requests dock icons open setup and the PR list; the list includes Submit PR.

Repositories can require ready-for-review status, passing CI, no merge conflicts, and an agent triage decision before routing. Each gate starts off. Triage admits or rejects the PR in a dedicated thread.

The table distinguishes Needs review, Reviewing, Changes requested, Looks good · not approved, and Approved. Completed outcomes are green, pending states amber, and requested changes red. Legacy Done reports remain Completed · outcome unspecified. Each lane has its own thread, status, latest-message preview, Full message link, and reminder action with an optional note.

The dock counts unseen status updates in the selected review channel. Opening Pull requests acknowledges loaded updates and clears the dock badge. Affected rows and lanes retain an Updated marker for that visit; live changes are highlighted too. Each lane shows Last updated from its latest status report or thread message, including reminders. Rows show the original submission date and latest review result date; accepting a review does not count as completing it. Older submissions without a saved creation date say Not recorded.

How

Reuse signed relay artifacts, shared agent choices, existing page navigation, and the durable outbox. Routing supports all/any rules on titles, labels, file counts, and paths. Assignments and approval policy are saved with each submission. Reminders retain the same threads and reset only the reminded lanes. Deletion preserves conversations and the GitHub PR; resubmission creates new threads with current settings.

The status tool requires a saved Reviewing report for the current request before an outcome. A skipped step returns the required call and posts a tagged correction; sequential retries reuse it. Compact requests emphasize lane instructions, reminder notes, and approval policy. Automatic approval starts off and must be explicitly enabled per lane. The tool records signed reports; it neither submits nor independently verifies GitHub approvals. Requests ask reviewers to add their authenticated GitHub account when permitted.

The original submitting device continues pending triage while the plugin is enabled. Signed current state, a Web Lock, artifact compare-and-swap, and the outbox govern sends. The dock and table share one event-driven submission reader after channel access is confirmed. Reads are bounded, startup is jittered, and failed refreshes back off. No polling is added. Seen preferences are local to the device, identity, community, and channel. A capped history read falls back to current statuses and marks review dates unavailable.

Risk

The plugin starts disabled. Review sequence enforcement belongs to the tool, not relay authorization. Two concurrent hosts can still post duplicate corrective replies. GitHub approval and reviewer assignment remain the reviewer's responsibility and require a runtime with permission. Native-app and final human acceptance remain outstanding; keep this PR draft.

Testing

The existing diff browser fixture now warms its static module graph before navigation using the shared helper. This addresses a recurring cold-load timeout in Chromium CI; assertions, timeouts, retries and case counts are unchanged. Hosted confirmation remains pending.

Local macOS validation with two workers: bin/pnpm test:browser tests/browser/diffs.spec.mjs --project=chromium --project=webkit --no-deps --repeat-each=N --reporter=json. Before (clean 1ab3cf374, N=2): 4/4 passed, 26.13s wall, 42.54s summed execution, 1.80s until first test; mean Chromium/WebKit case times 10.53/10.74s. After (same head plus only the fixture warm-up, N=10): 20/20 passed, 133.47s wall, 247.79s summed execution, 1.67s until first test; mean case times 11.47/13.30s, slowest 15.24s. Case execution includes fixture setup and warm-up; these unequal-length local runs are diagnostic, not a hosted speedup claim.

  • Real browser → MCP → local relay: submit, reject a skipped Reviewing step, save Reviewing, report changes or a positive outcome, remind with a note, and require fresh acceptance. Tested approval disabled and enabled using synthetic reports; no GitHub approvals were submitted.
  • Updated a UI lane while the PR page was closed: the dock count appeared, keyboard opening cleared it, and only the UI lane was marked. Returning cleared the visit markers; a live Backend update marked only that lane while the dock remained clear. Each lane showed Last updated. Reload preserved acknowledgment. Inspected light/dark, wide/narrow and enlarged layouts, including horizontal table scrolling. The isolated submission was removed afterward. All 137 review-plugin tests and TypeScript passed.
  • Inspected the running table and dock in light/dark, wide/narrow, and enlarged-text layouts. Checked keyboard and pointer navigation, existing page actions, message-dialog Back/Forward, and focus. Reused CountBadge, Button, semantic text colors, FullPageSurface, PanelHeader, and the existing table scrollport.
  • Earlier live runs covered admission rejection, agent triage, automatic routing with the page closed, retry recovery, deletion/resubmission, and closed-PR reminder guards. An actual agent saved Reviewing and updated the table. Actual GitHub reviewer assignment and approval remain untested.
  • No repository browser cases were added or removed. State and failure matrices use colocated tests; the real browser/MCP/relay boundary was exercised in the local lab.

To try updates: choose a review channel, submit a PR, leave the PR page, and have its assigned reviewer report Reviewing followed by a result. Return through the badged icon: the dock badge clears, and Updated markers identify the changed lanes. Inspect each lane’s Last updated date. Leave and return to clear the visit markers; a later report or reminder while away should badge the PR again.

Generated with Codex

ravarora2 and others added 3 commits November 11, 2026 12:34
Save channel-scoped repository and lane settings through the existing
signed relay artifact path. Keep configuration separate from review
execution and preserve drafts on failed saves or reconnects.

Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Use the shared agent inventory and keep unavailable selections visible.
Expose refresh and partial discovery errors so users can recover.

Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Persist reviewer instruction snapshots and thread links. Recover interrupted delivery through the existing outbox without creating duplicate review threads.

Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
@ravarora2 ravarora2 changed the title Add review configuration with lane reviewer assignments Configure review lanes and submit PRs to reviewer threads Nov 12, 2026
ravarora2 and others added 3 commits November 12, 2026 12:16
Preview title, label, file-count, and path rules before sending. Keep new submissions to lane threads, retain legacy recovery, and collapse saved PR details.

Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Group agents and routing rules within each lane. Require a rule for new or edited lanes and preserve readable legacy settings.

Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
@ravarora2 ravarora2 changed the title Configure review lanes and submit PRs to reviewer threads Configure review lanes and route PRs to reviewer threads Nov 12, 2026
ravarora2 and others added 11 commits November 12, 2026 13:52
…iewers

Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Preserve the upstream session and tool-operation APIs alongside the review
thread context and tool-documentation API.

Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
@ravarora2 ravarora2 changed the title Configure review lanes and route PRs to reviewer threads Route PRs to reviewers and track review status Nov 12, 2026
ravarora2 and others added 2 commits November 12, 2026 19:09
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
@ravarora2 ravarora2 changed the title Route PRs to reviewers and track review status Gate and route PR reviews with agent triage Nov 13, 2026
ravarora2 and others added 7 commits November 13, 2026 12:48
Place the full-message link with each lane preview and remove Delivery.
Persist optional reminder notes across retries, default automatic approval
to off, and distinguish changes requested, looks good, and approved reports.
Gate saved rows and previews until channel access is fresh.

Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Require an explicit reviewing acknowledgment in requests and tool guidance. Highlight approval policy and explain outcome reporting and GitHub reviewer identity.

Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Expose the existing PR list with a pull-request icon and a Submit PR action while preserving configuration entry points.

Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Enforce Reviewing for the current request, explain skipped steps with a tagged correction, and emphasize lane instructions and reminder notes in shorter requests.

Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
@ravarora2 ravarora2 changed the title Gate and route PR reviews with agent triage Manage PR review lanes, outcomes, and updates Nov 13, 2026
ravarora2 and others added 3 commits November 13, 2026 15:39
Compile the fixture static module graph with the existing warmUp helper before starting the navigation budget. Preserve the timeout and all assertions.

Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Keep per-lane update markers visible during the visit and show the latest status or message date for each lane.

Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>
Co-authored-by: maincourse <37ce551b493d4a998caf030929c47bce0b6a0e43f1178b3a63c4151d7c16b76e@buzz.block.builderlab.xyz>
Signed-off-by: Ravneet Arora <rarora@squareup.com>

This branch has not been deployed

No deployments
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.

1 participant