Skip to content

Checkless repos with a required QA panel are unmergeable (tracks pr-reviewer-plugin#281) #119

Closed

Description

@mabry1985

Tracking issue for the deployed bundle; the code fix lives in protoLabsAI/pr-reviewer-plugin#281.

What happened: protoLabsAI/protobanana-plugin#2 could not be merged. The repo has no CI, but QA panel is a required status with enforce_admins: true. The panel concluded protoReview = success but left QA panel in_progress ("Waiting on CI", hold:checks-failed) indefinitely, because a checkless repo maps to a failed checks state and that hold renders as a non-terminal check. Recovery required temporarily removing QA panel from the required checks, merging, and restoring it (done 2026-10-16, protection restored exactly).

For this repo (ops):

  • Audit managed repos (PR_REVIEWER_REPOS) for ones that have QA panel required but no CI; they have the same deadlock. protoLabsAI/protobanana-plugin is confirmed.
  • Until #281 ships and is rolled out, either do not require QA panel on checkless repos, or document the bypass procedure in the runbook.
  • After rollout, verify on a throwaway PR in a checkless repo that QA panel concludes neutral and the PR is mergeable.

Activity

  1. mabry1985 commented on Oct 23, 2026

    @mabry1985
    MemberAuthor

    Triage: boarded as bd-9pw3, an ops task that depends_on bd-bgdc (the pr-reviewer#281 fix: hold:no-checks renders QA panel neutral).

    The task:

    • audits every PR_REVIEWER_REPOS repo for a required QA panel with no CI (protobanana-plugin is already confirmed);
    • names the pr-reviewer release that contains the fix and the exact bundle pin change;
    • writes the throwaway-PR check for after rollout.

    It ends at "ready to roll". Vera is not rolled and no branch protection is changed until Josh gives the go. Until then, use the bypass from 2026-10-16: temporarily drop QA panel from required checks, merge, then restore protection exactly.

  2. mabry1985 commented on Oct 24, 2026

    @mabry1985
    MemberAuthor

    Rollout done: Vera is on pr-reviewer v0.62.0 (#281 fix), and the post-rollout check passes

    Pin and image

    Roll

    • Before rolling I checked that no QA panel or protoReview run was in progress on any org PR updated in the last 45 min.
    • scripts/fleet-roll.sh vera on ava exited 0. Its own publish run was 40131695955. Verify passed: card=vera base=0.215.0 image=ghcr.io/protolabsai/vera:latest.
    • In the container, /opt/protoagent/plugins/pr-reviewer reports version: "0.62.0".

    Smoke

    • smoke_replay.py --container vera --repo protoLabsAI/mythxengine --pr 862 returned ok: verdict=PASS findings=3 degraded=- slowest=find_removed_behavior:2370s structural=194s, so every lane ran for real.
    • I named the PR explicitly because no open PR in the default repos fell in the size window. projectBoard-plugin#637 merged mid-attempt, and the script refused it as designed.
    • The new image also live-reviewed projectBoard-plugin#637 after the roll: QA panel success.

    Checkless repos (group A)

    repo throwaway PR QA panel protoReview mergeStateStatus auto-approve
    protobanana-plugin #3 @9d7347e5 completed/neutral: "No CI configured — not blocking" success (PASS) CLEAN none (promoted=false, held)
    linear-plugin #1 @9cbf6a27 completed/neutral: "No CI configured — not blocking" success (PASS) CLEAN none (promoted=false, held)

    Both throwaway PRs are closed unmerged and their branches are deleted. I didn't change branch protection anywhere.

    Both repos pass, so I'm closing this. The 61 group-A repos should no longer deadlock on QA panel. Still open from the audit:

    • the push-branch-filter caveat on the 8 push-only repos;
    • protoLibrary's path-filtered pr-check.yml, which will still sit at "Waiting on CI" on PRs outside its paths, since a check is configured there;
    • the 2 repos that couldn't be read (MechArenaV2, tauri-starter).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions