Skip to content

fix(test): add required default field to queue-3 pause commandAuthorization fixture - #8735

Merged
JSONbored merged 3 commits into
JSONbored:mainfrom
bitfathers94:fix/issue-8685
Jul 26, 2026
Merged

fix(test): add required default field to queue-3 pause commandAuthorization fixture#8735
JSONbored merged 3 commits into
JSONbored:mainfrom
bitfathers94:fix/issue-8685

Conversation

@bitfathers94

Copy link
Copy Markdown
Contributor

fix(test): add required default field to queue-3 pause commandAuthorization fixture

The RepositoryCommandAuthorizationPolicy type requires default; the #8685
pause widening fixture omitted it, breaking tsc --noEmit.

Closes #8685

…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.
@bitfathers94
bitfathers94 requested a review from JSONbored as a code owner July 26, 2026 01:32
@superagent-security

Copy link
Copy Markdown
Contributor

Superagent didn't find any vulnerabilities or security issues in this PR.

@codecov

codecov Bot commented Jul 26, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.19%. Comparing base (6735ef1) to head (7d8d964).

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     
Flag Coverage Δ
backend 95.66% <100.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
src/queue/processors.ts 95.66% <100.00%> (ø)

@loopover-orb loopover-orb Bot added the gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. label Jul 26, 2026
@loopover-orb

loopover-orb Bot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Warning

⏸️ LoopOver review result - manual review recommended

Review updated: 2026-07-26 05:09:26 UTC

3 files · no blockers · CI green · clean

⏸️ Suggested Action - Manual Review

  • AI review could not be completed: The dual-model AI review did not return a usable verdict for this change.

Review summary
AI review could not be completed for this PR head. LoopOver is holding this PR for manual review instead of relying on deterministic signals alone.

Nits — 1 non-blocking
  • AI review could not be completed — The gate is held for a human reviewer rather than passed automatically; it re-evaluates on the next update.

Decision drivers

  • ✅ Code review — No blockers (No AI review summary)
  • ⚠️ Gate result — Not blocking (Advisory; not blocking this PR.)
Context & advisory signals — never blocks the verdict
Signal Result Evidence
Linked issue ✅ Linked #8685
Related work ✅ No active overlap found No same-issue or scoped active PR overlap found.
Change scope ✅ 20/20 Low review scope from cached public metadata (1 linked issue).
Validation posture ✅ 25/25 PR body includes validation/test evidence.
Contributor workload ✅ 10/10 Author activity: 44 registered-repo PR(s), 29 merged, 0 issue(s).
Contributor context ✅ Confirmed Gittensor contributor bitfathers94; Gittensor profile; 44 PR(s), 0 issue(s).
Improvement ✅ Minor risk: clean · value: minor
Linked issue satisfaction

Addressed
The diff adds needsMinerDetection: true to all six call sites (gate-override, resolve, pause, resume, explain, generate-tests) plus the PR-panel generate-tests variant, and includes two new regression tests (pause and generate-tests) that confirm a confirmed_miner author is now authorized instead of hitting miner_detection_unavailable.

Review context
  • Author: bitfathers94
  • Role context: outside_contributor
  • Public audience mode: oss maintainer
  • Lane context: Repository is configured for direct PR review.
  • Public profile languages: not available
  • Official Gittensor activity: 44 PR(s), 0 issue(s).
  • PR-specific overlap: none found.
Contributor next steps
  • Start here: Triage stale or unlinked PRs.
Signal definitions
  • Related work = same linked issue, overlapping active PRs, or title/path similarity.
  • Change scope = cached public metadata such as size labels, draft state, and review-burden hints.
  • Validation posture = whether the PR provides enough public validation/test evidence for maintainer review.
  • Contributor workload = public contributor activity and cleanup pressure, not a repo-wide quality failure.
  • Contributor context = public GitHub/Gittensor identity context; non-Gittensor status is not a blocker.
🧪 Chat with LoopOver

Ask 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.

  • @loopover ask &lt;question&gt; answers contribution-quality Q&A with source citations and freshness.
  • @loopover chat &lt;question&gt; answers in natural prose from cached decision-pack facts via local inference (maintainer/collaborator; read-only).
  • A plain-language @loopover mention with a real question is routed to the closest matching read-only command automatically — no exact syntax required.

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.

  • Re-run LoopOver review

@loopover-orb loopover-orb Bot added the manual-review Gittensor contributor context label Jul 26, 2026
@JSONbored
JSONbored merged commit cc0972a into JSONbored:main Jul 26, 2026
8 checks passed
JSONbored added a commit that referenced this pull request Jul 26, 2026
… 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>
JSONbored added a commit that referenced this pull request Jul 27, 2026
…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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. manual-review Gittensor contributor context

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(orb): confirmed_miner command-authorization widening is dead for 6 of 7 @loopover PR commands

2 participants