Problem
ORB's #8140 taught us the loop is only trustworthy once REGRESSED verdicts accumulate a track record. The miner's calibration surfaces (lib/calibration.ts buildCalibrationReport, the MINER_CALIBRATION_SNAPSHOT_EVENT written each cycle) know nothing about backtest runs, so an operator cannot see whether the advisory backtests are earning authority.
Requirements
⚠️ Required pattern. Reuse computeRegressedVerdictTrackRecord from @loopover/engine over the persisted AMS backtest-run events — same aggregation ORB uses, zero new math.
- Extend
buildCalibrationReport with a track-record section aggregated from the miner_event_ledger backtest-run events (the threshold-backtest issue's persistence).
- Include the track record in the periodic calibration snapshot event so history is queryable from the ledger alone.
- CLI: the existing calibration report command prints the section; empty history renders an explicit 'no backtest runs recorded' line, never a blank.
Deliverables
Links & Resources
#8172 (epic), #8140 (ORB analog), packages/loopover-miner/lib/calibration.ts, lib/loop-cli.ts (MINER_CALIBRATION_SNAPSHOT_EVENT)
Boundaries
Read-and-aggregate only; no knob movement.
maintainer-only — epic decomposition of #8172.
Problem
ORB's #8140 taught us the loop is only trustworthy once REGRESSED verdicts accumulate a track record. The miner's calibration surfaces (lib/calibration.ts
buildCalibrationReport, theMINER_CALIBRATION_SNAPSHOT_EVENTwritten each cycle) know nothing about backtest runs, so an operator cannot see whether the advisory backtests are earning authority.Requirements
buildCalibrationReportwith a track-record section aggregated from theminer_event_ledgerbacktest-run events (the threshold-backtest issue's persistence).Deliverables
Links & Resources
#8172 (epic), #8140 (ORB analog), packages/loopover-miner/lib/calibration.ts, lib/loop-cli.ts (MINER_CALIBRATION_SNAPSHOT_EVENT)
Boundaries
Read-and-aggregate only; no knob movement.
maintainer-only — epic decomposition of #8172.