- start.sh: COPYBOT_ROLE=live — unarmed (missing LIVE_PRIVATE_KEY /
LIVE_FUNDER_ADDRESS / LIVE_CONFIRM) idles in geocheck, no clone, no
book, no orders; armed runs config.live.example.json + own state file
copybot_state.live.json, --live, poll mode (webhook stays on paper).
- confirm_live: accepts the phrase from LIVE_CONFIRM env — the USER
types it into flyctl secrets set (rule 0.7 human checkpoint, headless);
wrong value aborts, unset disarms at next boot.
- config.live.example.json: Set E + pinned floors (mirrors paper),
bankroll $50 @ 10% = $5 stakes, caps untouched (rule 0.6), leaked
Discord webhook URL removed (ROTATE it — was committed publicly).
- fly.live.toml: separate app wwf-copybot-live, arn, no inbound, no
checks, role env baked.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Chain-sweep backfill (784k conds ≈ ~1k calls, not 8 days of per-cond
queries) → shadow audit → consumer flips shallowest-to-deepest →
trust.py simplification last. Ground rules codify the 2026-07-08
alignment-audit discipline: overlay never rewrite, one flip per day,
never coupled with follow-set changes, calibration continuity notes.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The live path gates PER TRADE; reconcile_entries gated on POSITION size,
so 0xbadaf319's paired YES+NO arb clips ($6-37 each, all correctly
skipped below his $45 floor) accumulated into $40+ positions that read
as downtime misses while the bot was demonstrably UP. Now a miss needs
some SINGLE buy on the market to pass the same follow filter (market-
filtered /trades, full history); sub-floor accumulations log-and-skip
with a persisted verdict (state.no_miss_toks). Four phantom records
removed from the book; their hypothetical P&L never belonged in the
missed counterfactual.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
New 'book' field in the fills ledger: {bb, ba, spread, bid5c, ask5c}
from CLOB /book at fill time. The calibration experiment's weakest
assumption is the flat SLIP haircut; weeks of these snapshots give an
empirical fill model for the backtest and a depth gate before real
money sizes up (today's probe: a stake vs $77 of bids within 5c).
Best-effort, never blocks a copy.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The execution engine was load-bearing from archive/ — the one thing in
there that wasn't retired. Now at repo root next to copybot.py; the two
archived scripts that imported it as a sibling get a parent-path shim.
fly.toml gains an http /health check so Fly restarts a dark machine
(self-heal); the notify half is the GH Actions watchdog (next commit).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Old app (leaked key ...OdWgOi) deleted, new app wwf-rpc-2026-07
(...w0BxV5) wired into config.json + ALCHEMY_RPC_URL secret. Old key
verified dead (401), new key live, bot copying, Notify webhook intact.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Railway project magnificent-kindness DELETED (soft-delete, purges
2026-07-10) — retired-infra fully gone; requirements.txt loses its
Railway-detection rationale (stdlib core, optional extras noted).
- tests/test_check_book.py: the Option A orphan-fix regression harness
moves into the repo (was session-local); 6 cases, no network/config.
- daily.sh: calibration step — one row/day of live-book vs backtest
equity to live/history/calibration.csv, the series that sizes real
money (day-zero row seeded: live $1,000 vs model $22,027).
- config.json.bak (untracked, stale copy of the leaked Alchemy key)
deleted locally.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
README: Set E + fresh-book framing in 'system today', /live page in the
dashboard row, --bank in the ops table, book-reset procedure row, gotchas
12-15 (three cache cursors, res_t is endDate metadata / price is the sold
discriminator / redeemable is resolution truth, refund-harvester
archetype, single-writer state-surgery rule). FINDINGS: three new
sections — aligning the three books (7/9 cross-check, honest 29.1k->17.4k,
Set E selection), the refund harvesters, the calibration experiment
(in-sample warning + bank-size ceiling effect). HANDOFF rev 3: fresh
pickup with watch-list, rejected-with-evidence list, Phase 2 framing.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
$500 Set E 30d: $14,140 (+2728%) vs $1,000's +2103% — smaller books
compound purer because 4% stakes hit the their-bet ceilings later.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Abort -> hard-reset to origin -> re-commit the running book. The
process is the book's single writer; remote state surgery must stop
the bot first (2026-07-08 BOOK RESET race: stale boot clone rebased
old state onto the reset and every publish died in UU until reboot).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Old book (started Jun 25, Sets B–D, ended $1,000 bank / +$229.79
realized / 8 open discarded) lives in git history and
archive/copybot_fills.pre-reset-2026-07-08.jsonl. Clean slate so the
book measures Set E from day one.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
First list on the aligned taxonomy. Notable: 0xb0E43B and
ArbTraderRookie's records reveal refund-harvesting (~800/1150 EXACT-0.5
redeems on ITF totals bought under 50c — $148k of 0xb0E43B's $218k) —
real edge, but 1-2c/share margins that taker copies can't clear.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>