feat(benchmark): reversal-aware realized-history ground truth (#9261) - #9598
Conversation
|
Tip ✅ LoopOver review result - approve/merge recommendedReview updated: 2026-07-28 23:16:40 UTC
Review summary Nits — 6 non-blocking
Decision drivers
Context & advisory signals — never blocks the verdict
Linked issue satisfactionPartially addressed 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. Decision record
🟩 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.
|
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
loopover-ui | d051556 | Commit Preview URL Branch Preview URL |
Jul 28 2026, 10:58 PM |
4c74ad0 to
8dae37b
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9598 +/- ##
==========================================
+ Coverage 89.87% 89.89% +0.01%
==========================================
Files 882 883 +1
Lines 111488 111692 +204
Branches 26561 26579 +18
==========================================
+ Hits 100204 100404 +200
Misses 9992 9992
- Partials 1292 1296 +4
Flags with carried forward coverage won't be shown. Click here to find out more.
|
8dae37b to
e20ccfb
Compare
e20ccfb to
b4d8a6e
Compare
The labels every candidate proposal is scored against: for each work unit in a snapshot, what the maintainer ACTUALLY did within the prediction horizon, emitted in #9260's exact action vocabulary so proposal and outcome compare with no translation layer that could drift. Three rules the surrounding system already believes, now enforced here: - REVERSAL-AWARE SETTLEMENT. A merge later reverted is not a clean merge. The label is the settled state at horizon end with the reversal recorded alongside -- the treatment that makes public-rule-precision.ts's precision honest. The vocabulary is the established reversal_reopened/reverted/superseded set, never a benchmark-local re-invention, so benchmark and internal backtest ground truth cannot disagree about the same event. A reversal counts only inside the horizon AND strictly after the action it overturns; the earliest one wins. - UNRESOLVED IS EXPLICIT AND EXCLUDED. No action inside the horizon is a first-class `unresolved`, never silently a correct abstention (which would reward declining exactly what nobody decided) nor an incorrect prediction (which would punish the horizon being short). It leaves the denominator, and the unresolved RATE is published so a climbing rate reads as "the horizon is wrong" rather than as a scoring artifact. - STABILITY. Every decision is a pure function of events dated inside the window, so a later event -- including a later reversal -- cannot move a settled label. Asserted directly: the same input plus a year of post-horizon history yields byte-identical output. Closes #9261
b4d8a6e to
d051556
Compare
What
The labels every candidate proposal is scored against: for each work unit in a snapshot, what the maintainer actually did within the prediction horizon — emitted in #9260's exact action vocabulary, so proposal and outcome compare with no translation layer that could drift.
Three rules the surrounding system already believes, now enforced in one place:
public-rule-precision.ts's precision honest (it subtracts reversals rather than erasing the decision). The vocabulary is the establishedreversal_reopened/reversal_reverted/reversal_supersededset, never a benchmark-local re-invention, so benchmark ground truth and internal backtest ground truth cannot disagree about the same event. A reversal counts only inside the horizon and strictly after the action it overturns; the earliest such reversal wins.unresolved— never silently a correct abstention (which would reward an agent for declining exactly the cases nobody decided) nor an incorrect prediction (which would punish it for the horizon being too short). It leaves the scoring denominator, and the unresolved rate is published so a climbing rate reads as "the horizon is wrong" rather than as a scoring artifact.scoreableGroundTruthsis the single definition of that rule, so no scorer can re-implement it slightly differently.The settled state is the last qualifying action in the window (label → request changes → merge settles on the merge), with identical timestamps keeping the earlier-listed event so a stable input order yields a stable label.
Tests (12 node:test cases, 100% of branches)
Settlement ordering and per-action parameter carriage (a
mergetruth carries noreasonClass/labelskeys at all — not present-but-undefined); the reverted-merge regression; all three reversal kinds accepted verbatim with earliest-wins; the four ways a reversal fails to attach (before the action, same instant, past the horizon, before the freeze) plus wrong work unit; the unresolved regression with in/out-of-window events in both directions; inclusive boundaries at both ends; the stability invariant (same input plus a year of post-horizon history → byte-identical output); unparseable timestamps as out-of-window rather than a crash; tie-break determinism; empty roster reporting anullrate rather than 0; and parameters dropped when they don't belong to the settled action.Closes #9261