feat(review): evidence-weighted reviewer routing, stage 1 — the report-only shadow#8301
feat(review): evidence-weighted reviewer routing, stage 1 — the report-only shadow#8301JSONbored wants to merge 1 commit into
Conversation
…t-only shadow (#8229) After each ok block-mode dual review, compute what routing WOULD have preferred for this repo from the live per-provider track records (#8228 over the stage-0 reviewer_vote rows) and record it — one audit event (reviewer_routing_shadow) plus a maintainer-recap section — changing NOTHING about the review: - computeWouldHaveRouted: repo-scoped rows only, ROUTING_MIN_DECIDED (10, the AUTOTUNE_MIN_DECIDED never-on-noise bar at reviewer grain) per (provider, repo), null on ties/lone reviewers/any missing density — an absent record MEANS no measurable preference, keeping stage 2's eventual evidence read undiluted - loadLiveProviderTrackRecords reads ONLY the live vote event type (the replay-derived campaign data never enters — the #8278 segregation rule from the consuming side); fail-safe empty on any store error - orchestration hook is best-effort end to end: zero added AI spend, a thrown read or a rejecting/throwing audit write reduces to no record - the weekly recap gains a routing-shadow section (grouped per repo + preferred provider with the mean precision edge, explicit empty line, report-only footer), read back off the audit trail at format time and fail-safe to an absent section Stage 2 (actual weighting behind a default-off flag with hard floors) ships only against this stage's recorded evidence, per the issue.
|
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 #8301 +/- ##
==========================================
- Coverage 92.16% 91.64% -0.52%
==========================================
Files 788 790 +2
Lines 79175 79230 +55
Branches 23933 23944 +11
==========================================
- Hits 72974 72613 -361
- Misses 5062 5525 +463
+ Partials 1139 1092 -47
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-24 01:56:08 UTC
Review summary Nits — 1 non-blocking
Concerns raised — review before merging
📋 Copy for AI agents — paste into your coding agentDecision drivers
Context & advisory signals — never blocks the verdict
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.
|
Summary
Advances #8229 (stage 1 of the issue's two-stage contract; stage 2 — actual weighting behind a default-off flag with hard floors — ships only against this stage's recorded evidence, per the issue).
After each ok block-mode dual review, the orchestration computes what evidence-weighted routing WOULD have preferred for this repo and records it, changing nothing about the review:
computeWouldHaveRouted(pure): repo-scoped track-record rows only,ROUTING_MIN_DECIDED = 10per (provider, repo) — the AUTOTUNE_MIN_DECIDED never-on-noise bar at reviewer grain, satisfying the issue's floors clause — and null on ties, lone reviewers, or any missing density. An absent record MEANS "no measurable preference", so stage 2's eventual evidence read is never diluted by no-signal rows.loadLiveProviderTrackRecords: stage-0reviewer_voterows joined to the labeled consensus corpus viacomputeProviderTrackRecords(calibration: per-provider reviewer track records from the consensus corpus #8228, zero new math). Reads only the live vote event type — replay-derived campaign data never enters (the calibration: seed provider track records via per-provider counterfactual replay campaigns #8278 segregation rule enforced from the consuming side). Fail-safe empty on any store error.Validation
npm run test:cifully green — TEST_CI_EXIT=0, zero vitest failures, zero node:test failures,npm audit --audit-level=moderateclean.