docs: rev 15 — tape pipeline, valuebot v0.1 barbell, bench rev 5, reconcile day; recorder row in README

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
jaxperro
2026-07-19 13:51:01 -04:00
parent bf55dbbd1f
commit cdaf9a048d
2 changed files with 28 additions and 1 deletions
+27 -1
View File
@@ -1,4 +1,30 @@
# Session handoff — 2026-07-17 (rev 14: +$44 bankroll, exact paper-parity config; rev 13: FAK parity; rev 12: chain-seed)
# Session handoff — 2026-07-19 (rev 15: tape+bench+gate; rev 14: +$44 bankroll, exact paper-parity config; rev 13: FAK parity; rev 12: chain-seed)
## 2026-07-19 (rev 15): the rest of the day
- **RTDS TAPE live end-to-end**: wwf-recorder (own silo, no repo clone —
code baked in image) tapes every platform trade to hour-rotated gz
segments on a 10GB volume; nightly ingest (daily.sh step, 900s/segment
timeout after busy hours outgrew 300s; flyctl resolved absolutely — the
launchd PATH broke night one) pulls into live/rtds.duckdb (own DB file,
never contends with cache.duckdb). **4.9M trades already banked.**
Recorder reconnect-clock bug fixed (196 flaps/34h → ~0; 45s stale guard).
- **VALUEBOT v0.1**: sub-bucket study showed a BARBELL (0-0.2c 3.13x in
history but 404 straight live losses = modern adverse selection suspected;
0.2-1c toxic 0.62-0.70x; 1-2c 1.28x n=424k) — bot now trades 1-2c ONLY;
0-0.2c shelved pending tape confirmation. Dashboard: jaxperro.com/value.
- **BENCH rev 5**: five fresh sharps benched in backtest.json (lma0o0o0o,
leegunner, oliman2, JuiceFarm, 0xb0E43B); ArbTraderRookie EXCLUDED (res_t
poison history). Verdict next Friday; run insider.py on the 100%-win two.
- **Live book reconciles clean**: +$7.14 chain-over-book folded (platform
auto-redemptions + favorable rounding — the venue auto-redeems winners,
which also makes our own Redeemer less urgent), +$2.31 drift recognition,
BetBoom ghost/zombie purged (data-api lag resurrected a 0.12sh residual
the chain zeroed — reconciler trusts the laggy API; ROOT FIX QUEUED:
verify residuals against chain balance before resurrecting). auto_redeem
OFF again (Redeemer needs web3 in the live image + ALCHEMY_RPC_URL env
fallback — QUEUED). Realized $16.94 lifetime after honest recognitions.
- **Deep architecture audit run** (read-only agent, 2026-07-19) — findings
in the session log; act on the top recommendations next session.
## 2026-07-19: spread skip retired (both books)
The depth gate's hard spread>0.08 skip was a lag-era relic: fitted at 39-90s
+1
View File
@@ -27,6 +27,7 @@ Three deployed pieces + one static dashboard:
| **copybot worker** (`copybot.py` via `host/start.sh`) | **Fly.io app `wwf-copybot`, region `arn` (Stockholm), 24/7** — migrated off Railway 2026-07-06: Railway ran it in a US region, which Polymarket's IP geoblock would 403 the moment orders got real; Stockholm is unrestricted AND ~25ms from the CLOB's eu-west-2 primaries. Every boot self-checks the geo-gate (`host/geocheck.py`) and verifies the clone against `git ls-remote` (stale-replica guard) | **T0 = the RTDS trade stream** (gotcha 18): every platform trade, wallet-attributed, **~1s detection** (measured p50 0.8s over 22k msgs), silent-stale guard force-reconnects a quiet socket. Backstops: the Alchemy address-activity webhook (~3s, `POST /alchemy`, signature-verified — **T0b chain seed** 2026-07-14: its tx hashes decode straight from the receipt's OrderFilled logs when the data-api indexer lags, so RTDS-silent markets still copy at push speed), a 5-min backstop poll, and the reconcile janitor. Per-wallet **trade cursor** paginates the activity feed so clip bursts can't scroll past a fetch (H3). 60s heartbeat settles/publishes; paper-copies with real fees/lag/slippage AND live-FAK thin-book reality (**paper FAK parity** 2026-07-16: a quote with no ask inside the protected band books a MISS, not a fill — keeps the live-vs-paper per-signal ratio honest; `live/edge.py` turns it into the daily bankroll-decision verdict in `history/edge.csv` + the Discord digest footer); commits its book back to the repo |
| **REAL-MONEY worker** (same code, `COPYBOT_ROLE=live`) | **Fly.io app `wwf-copybot-live`, `arn`, 24/7, ARMED 2026-07-10** — separate app so the two books never share a process, state file, or failure mode. Trades the signer's **Deposit Wallet** `0x455e…45a1` (pUSD collateral) via the unified SDK (`polymarket-client`) | Same T0 RTDS detection (`RTDS_DETECT=1`) + Alchemy/poll backstops; **own-fill push** via the CLOB user channel (`userws` in the heartbeat) makes in-play pending holds adopt the moment they match — ws events only *trigger* the resolver, `get_order` stays the arbiter (gotcha 17). Paper-parity sizing (4% of equity, $1 venue floor, no price floor, hard caps retired — the **depth gate** is the scaling rail: skip spread>0.08 or ask5c<$50, stake ≤10% of 5c depth). Every placement/exit/settle pings Discord. Disarm: `flyctl secrets unset LIVE_CONFIRM -a wwf-copybot-live` |
| **VALUE bot** (separate experiment, [`value/README.md`](value/README.md)) | **Fly.io app `wwf-valuebot`, `arn`, 24/7, PAPER** — a hard SILO: own code (`value/valuebot.py`, zero copybot imports), own state/feed, own image, no shared wallet ever | Systematically buys sub-2¢ contracts (the calibration study's one underpriced bucket — [`value/PLAN.md`](value/PLAN.md)); honest FAK fill model, chain-truth settles, $1 tickets, event cap 1. Verdict at ~2k resolved tickets vs a ~1.05% break-even hit rate |
| **RTDS tape recorder** ([`recorder/`](recorder/)) | **Fly.io app `wwf-recorder`, `arn`, 24/7** — third silo: no repo clone (code in image), no keys, 10GB volume | Records EVERY platform trade (~2-3k/min peak) to hour-rotated segments; nightly `recorder/ingest.py` (daily.sh) folds them into `live/rtds.duckdb` — the proprietary tick archive feeding flow research (4.9M+ trades and counting) |
| **Discord digest** (`live/discord_daily.py`) | end of the daily pipeline | one message/day: the sharp list with profile links + 30-day conviction stats (per-trade pings retired 2026-07-04 for PAPER; the LIVE book pings every real placement/exit/settle) |
| **dashboard** | [jaxperro.com/trading](https://jaxperro.com/trading) + [jaxperro.com/live](https://jaxperro.com/live) (static, in the `jaxperro` repo) | `/trading` renders the paper book, backtest book and sharp table; `/live` is the REAL MONEY page (reads `live/copybot_live_real.json` — live since 2026-07-10). Both pages share `trading/copybot-section.js` — one renderer, no drift |