fix(test): add required default field to queue-3 pause commandAuthorization fixture - #8735
Conversation
…Loopover PR commands gate-override, resolve, pause, resume, explain, and generate-tests each call authorizePrActionActor without needsMinerDetection: true, so the official miner-status field stays undefined and evaluateCommandAuthorization always falls into miner_detection_unavailable whenever a confirmed_miner role match would otherwise apply. That made the shipped commandAuthorization policy's documented confirmed_miner widening a dead feature for these commands: a repo widening any of them to confirmed_miner could never actually authorize a confirmed miner on their own PR. Pass needsMinerDetection: true at all six call sites (both generate-tests handlers, including the PR-panel one that previously passed an explicit false), mirroring the already-correct review command. No other authorization behavior changes: the miner lookup only fires when confirmed_miner is in the resolved allowed-roles and the commenter is the PR author, so maintainer/collaborator and non-widened paths are untouched. Adds regression tests exercising the previously-dead widening path directly: a confirmed miner pausing their own PR, and a confirmed miner dispatching generate-tests on their own PR — both denied with miner_detection_unavailable before this fix. Closes JSONbored#8685
…zation fixture The RepositoryCommandAuthorizationPolicy type requires `default`; the JSONbored#8685 pause widening fixture omitted it, breaking tsc --noEmit.
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8735 +/- ##
==========================================
+ Coverage 90.56% 91.19% +0.63%
==========================================
Files 96 97 +1
Lines 22490 25673 +3183
Branches 3884 5015 +1131
==========================================
+ Hits 20367 23412 +3045
- Misses 1945 1993 +48
- Partials 178 268 +90
Flags with carried forward coverage won't be shown. Click here to find out more.
|
|
Warning ⏸️ LoopOver review result - manual review recommendedReview updated: 2026-07-26 05:09:26 UTC
Review summary Nits — 1 non-blocking
Decision drivers
Context & advisory signals — never blocks the verdict
Linked issue satisfactionAddressed Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://loopover.ai/docs/loopover-commands 🧪 Experimental — new and may change. 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
… and reclassify evidence-bearing bails (#8789) (#8796) Confirmed live 2026-07-26 (PR #8735): the bail instruction's "does not cohere with the PR title/description" clause made the reviewer bail on a VALID diff whose title merely undersold it — the model's own rationale named the exact production change it had just read — collapsing a reviewable PR into an inconclusive manual hold once the fallback also failed. - Prompt: the bail now fires only on a BROKEN diff (empty, truncated, garbled, or contradicting the PR's own file list). A readable diff whose scope differs from the description is explicitly NOT a bail — review it and note the mismatch in the assessment. - Parse: a bail that arrives WITH a substantive valueAssessment rationale (valid magnitude, >= 40 trimmed chars — the model demonstrably read the diff) reclassifies to a usable scope-observation review with a fixed public-safe assessment (SCOPE_MISMATCH_ASSESSMENT); model text travels only through the existing valueAssessment channel. A bare bail stays null. - isIncoherentDiffBail mirrors the reclassification (including toValueAssessment's magnitude validation) so the retry-loop break can never disagree with what parseModelReview actually did — its documented contract. Co-authored-by: loopover-orb[bot] <296761690+loopover-orb[bot]@users.noreply.github.com>
…gate (#9039) (#9217) The merge-train FIFO gate already scopes blocking to overlapping siblings and caps the wait at 24h, so a head-of-line PR held for manual review was still treated as "still viable to eventually clear on its own" -- exactly what let #8735 stall 5 overlapping PRs for 4 hours (57 denials) until a human merged it by hand. A manual-review hold does not self-clear on any timer, unlike an actively-reviewing PR, so shouldWaitForOlderSiblings now evicts a sibling carrying the repo's configured manual-review label the same way it already evicts a git-conflicted one, instead of waiting for it. Also wires a bounded, best-effort wedge alert: N consecutive merge-train denials against the SAME blocking sibling (regardless of mode) now page via the existing PagerDuty helper once a repo opts in, mirroring how ops-wire.ts already alerts on a sustained condition from audit-event counts -- so a wedged train is visible immediately instead of only via audit rows a human happens to notice.
fix(test): add required default field to queue-3 pause commandAuthorization fixture
The RepositoryCommandAuthorizationPolicy type requires
default; the #8685pause widening fixture omitted it, breaking tsc --noEmit.
Closes #8685