Evidence-based labels replace the generic 'bot offline' stamp: the
min_price-band block (Hive 3c), one genuine deploy-window miss (Pyunik),
fill-split entries (OG vs Inner Circle), and — the real finding — SIX
live + THREE paper rows that were single in-band over-floor fills the
bots never saw while UP: an active detection gap, all stock-weekly /
crypto-launch / LoL markets, no in-play sports. Investigation queued.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The −11.32 was ONE token: gkmg scalped GamerLegion 3 rounds in 8 min;
rounds 1 (+7.71) and 2 (−19.06) closed and were clobbered by re-entry
BETWEEN state commits (invisible to the history sweep — publish-window
gap). Reconstructed both from the fills ledger (per-fill ground truth),
restored as archive keys, 3c fee-rounding residue absorbed as a
documented adjustment. The archive-on-reentry fix already deployed
prevents the class; the fills ledger proved sufficient to rebuild
reality — that's the audit trail doing its job.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fast in-play markets can resolve before the 5-min pass sees the sharp's
sell (and pre-2026-07-09 rows predate exit-aware settling) — won/lost
stamps hid real pre-resolution sells. A redeem prints exactly the
payout; an exit print >2c away revalues the counterfactual at the
sharp's exit. Idempotent via exit_checked.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The band — not detection — blocked Kruto's 3c Hive dip-buy that the
paper book mirrored for +$722 (16x). Dollar risk unchanged: the $5
trade cap binds, not the band. LIVE_ROLLOUT rule 0.6 amendment recorded
here; every other cap untouched.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The missed ledger valued everything hold-to-resolution — the wrong
counterfactual for a mirror strategy (Kruto's 3c Hive entry: he banked
16x selling at 48c; the paper book mirrored for +$722; the live book's
missed row would have shown the map result instead). Three affirmative
facts before settling (same as reconcile_exits), their reconstructed
exit price, entry+exit taker fees. Also: the reconcile miss reason is
now honest — 'not copied in the detection window (reconciled)'.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
bets{} is keyed by token; re-entering a settled market OVERWROTE the old
record and its pnl left 'realized' — the drift alarm caught it same-day
(WTI −9.97, Dota Game-1 +19.30 recovered from state history and restored
as archive keys). All three record-writers now archive settled records
to token#settled_ts keys first; aggregators iterate values() so archived
rows keep counting. NOTE: restoring truth WIDENS displayed drift — a
second, opposite-sign residual (~−11) remains under investigation
(morning forensics queued in HANDOFF); the alarm stays red on the paper
book intentionally. Live book unaffected (0 trades, drift 0).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
A sweep or rapid clip entry splits ONE bet into several sub-floor fills:
gkmg's $612 MOUZ entry today read as 3×$204 same-second rows, every
clip below his $304 floor — the bot skipped a bet the backtest's
position-level view takes (he sold +60% five minutes later). Same-token
BUY rows within 120s now merge into the bet the sharp actually made
(weighted price, summed size, all component txs marked processed);
SELLs stay per-fill for the proportional mirror. reconcile_entries
applies the same clustering to its not-a-miss verdict so downtime
fill-splits count as real misses. Applies to BOTH books identically.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>