Commit Graph

502 Commits

Author SHA1 Message Date
copybot[bot] b433448279 copybot: live paper feed [skip ci] 2026-07-09 00:13:52 +00:00
jaxperro c948f0f413 ETHERSCAN_MIGRATION.md: phased plan for true resolution time through the stack
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>
2026-07-08 18:28:28 -04:00
jaxperro 05d8f1b4e3 HANDOFF: 0xbadaf319 exposed as two-sided arb flow — top of demotion watch list
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 18:14:10 -04:00
copybot[bot] 2e55475a7e copybot: live paper feed [skip ci] 2026-07-08 22:12:37 +00:00
jaxperro 8ce616349e reconcile: accumulated sub-floor positions are not 'missed · bot offline'
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>
2026-07-08 18:12:28 -04:00
copybot[bot] 0f6062d54c copybot: live paper feed [skip ci] 2026-07-08 22:06:39 +00:00
jaxperro 43de3845a7 payouts: exact on-chain resolution timestamps via Etherscan V2 (resolution_time)
CTF ConditionResolution logs, full-range topic query (Alchemy free tier
caps getLogs at 10 blocks), cached forever in resolution_times. Verified:
Brewers Jul-7 market truly resolved 2026-07-08 04:51 — the cached
endDate-metadata res_t was 29h wrong; Kruto's sell provably 365 min
pre-resolution. Key = etherscan_key (gitignored config). Migration of
trust/validate/portfolio onto true res_t queued in HANDOFF.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 18:05:21 -04:00
jaxperro a81d9b1462 docs: data-source probes 2026-07-08 — depth capture wired, Etherscan key is the free unlock, Alchemy free-tier getLogs caveat
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 17:57:22 -04:00
jaxperro f19cc8d168 copybot: capture order-book snapshot (spread + 5c depth) on every copy
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>
2026-07-08 17:56:20 -04:00
copybot[bot] 226429690b copybot: live paper feed [skip ci] 2026-07-08 21:51:28 +00:00
jaxperro f405902072 docs: 07:58 RTC wake scheduled for the daily pipeline
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 17:49:12 -04:00
jaxperro 3f4e01ec45 docs: watchdog + caffeinate + engine relocation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 17:44:56 -04:00
jaxperro b345af9ee3 watchdog: GH Actions dead-man's switch — /health probe + Discord alert (layer 2)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 17:44:09 -04:00
copybot[bot] 3b462d1706 copybot: live paper feed [skip ci] 2026-07-08 21:41:19 +00:00
jaxperro 82f62124e7 copytrade.py moves out of archive/ + Fly health check (watchdog layer 1)
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>
2026-07-08 17:34:36 -04:00
jaxperro 63eda48aa7 HANDOFF: Alchemy key rotated — no standing to-dos remain
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>
2026-07-08 17:27:34 -04:00
copybot[bot] e308defc72 copybot: live paper feed [skip ci] 2026-07-08 21:24:28 +00:00
copybot[bot] 11cabdad21 copybot: live paper feed [skip ci] 2026-07-08 21:22:28 +00:00
jaxperro 997d78a34b HANDOFF: Railway deleted — Alchemy key rotation is the last standing to-do
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 17:10:18 -04:00
jaxperro d45255c48e cleanup + calibration tracker
- 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>
2026-07-08 17:09:46 -04:00
jaxperro a690323f68 docs: 2026-07-08 full-day sync — alignment audit, Set E, refund harvesters, calibration reset
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>
2026-07-08 17:02:33 -04:00
jaxperro a186d5a839 portfolio: --bank flag (and backtest.json 'bank') — replay any starting bankroll
$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>
2026-07-08 16:55:16 -04:00
copybot[bot] 136072989c copybot: live paper feed [skip ci] 2026-07-08 20:26:07 +00:00
jaxperro 7965868181 copybot: publish recovers from a conflicted rebase instead of wedging
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>
2026-07-08 16:25:49 -04:00
jaxperro 35201963e3 copybot: BOOK RESET — fresh $1,000 paper book from 2026-07-08 (Set E era)
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>
2026-07-08 16:19:07 -04:00
jaxperro e979e07f59 sharps: publish sold-split records (W/L held-only, S and R split out)
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>
2026-07-08 16:10:05 -04:00
copybot[bot] 8cca9f31c2 copybot: live paper feed [skip ci] 2026-07-08 20:05:50 +00:00
jaxperro 7bb165536b sharps: refund band 1e-4 — 0.005 mislabeled ~50c sells as refunds
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 16:04:54 -04:00
jaxperro 5602429144 sharps: split SOLD out of the record — W/L = held to resolution only
rtally now uses the same redeem-vs-sell price discriminator as the
backtest (exit_p ≈ payout ⇒ held; mid print ⇒ SOLD). The sign-only
tally counted a mirror-seller's exits as wins — 0xb0E43B read '94.4%
all-time' on 937 sells with almost no held outcomes. Win% is held-only
now, sold P&L stays in the P&L columns, all_sold/conv_sold/conv30_sold
populate for the dashboard's +NS record chips.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 15:52:44 -04:00
copybot[bot] 20ebb2a07d copybot: live paper feed [skip ci] 2026-07-08 19:03:54 +00:00
jaxperro e7610d1003 portfolio: first Set E backtest publish (7 wallets, pinned floors) — $22.0k/+2103% 30d
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 14:52:27 -04:00
copybot[bot] a19c43d98f copybot: live paper feed [skip ci] 2026-07-08 18:49:27 +00:00
copybot[bot] 863eaf0df3 copybot: live paper feed [skip ci] 2026-07-08 18:39:08 +00:00
copybot[bot] 8f4be45afc copybot: live paper feed [skip ci] 2026-07-08 18:30:51 +00:00
copybot[bot] fc9609d05a copybot: live paper feed [skip ci] 2026-07-08 18:24:40 +00:00
copybot[bot] b2e548b353 copybot: live paper feed [skip ci] 2026-07-08 18:16:24 +00:00
copybot[bot] 18eba50d10 copybot: live paper feed [skip ci] 2026-07-08 18:12:18 +00:00
copybot[bot] 91a1ceeb57 copybot: live paper feed [skip ci] 2026-07-08 18:06:02 +00:00
copybot[bot] 42e336a213 copybot: live paper feed [skip ci] 2026-07-08 17:59:44 +00:00
copybot[bot] 312b74e594 copybot: live paper feed [skip ci] 2026-07-08 17:26:47 +00:00
copybot[bot] b2b9a75b8b copybot: live paper feed [skip ci] 2026-07-08 17:20:35 +00:00
copybot[bot] edee62bb87 copybot: live paper feed [skip ci] 2026-07-08 16:22:50 +00:00
jaxperro bc81b93575 HANDOFF: Set E deployed (7 wallets, aligned-replay selection)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 12:20:49 -04:00
copybot[bot] de9ad6255b copybot: live paper feed [skip ci] 2026-07-08 16:18:45 +00:00
jaxperro c90fe340aa copybot: follow-set update (deploy_bot.sh) 2026-07-08 12:18:27 -04:00
jaxperro 8f8c65689e backtest: Set E — 7 wallets (drop 42021, BikesAreTheBikes, lma0o0o0o-class laggards; add gkmgkldfmg, AIcAIc, 1kto1m)
Chosen by the aligned honest 30d replay (2026-07-08): Set E $24.4k
(+2338%) vs Set D $17.4k (+1636%); every member positive in the shared
book. oliman2/leegunner excluded on the anti-survivorship audit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 12:18:27 -04:00
copybot[bot] 6e49f301bb copybot: live paper feed [skip ci] 2026-07-08 16:10:46 +00:00
jaxperro b5508b521b sharps: _open_split folds by the data-api redeemable flag, not price-pinning
Audit of the two biggest All-Time-vs-PM divergences (oliman2, leegunner)
proved the fold-in RIGHT and PM's leaderboard wrong: live per-position
sums reproduce our numbers to the dollar (oliman2 +181,594 closed
-160,644 abandoned = ~+19k true vs leaderboard 112k; leegunner +323,707
-58,762 = ~274k true vs 347k). redeemable is exact (set on resolution
for winners AND losers); pinning misfolded a few unresolved longshots.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 11:59:36 -04:00
copybot[bot] 24c3b9aa1e copybot: live paper feed [skip ci] 2026-07-08 15:35:33 +00:00
jaxperro 542fe700b6 portfolio: align the backtest's booking with the live bot and Polymarket truth
Three fixes from the 2026-07-08 alignment audit (bot feed vs replay,
row-by-row):
1. sold-detection no longer trusts res_t alone — for in-play markets
   res_t is endDate metadata (game-DAY midnight, pre-dates the entry) so
   the timestamp test never fired and every in-play sell booked as
   held-to-resolution. Price is the fallback truth: a redeem prints
   exactly the payout, a real sell prints a mid price (>2c off payout).
2. round trips on resolved-on-chain markets are booked, not dropped —
   when the trusted cache row never qualifies (bogus forward res_t:
   Chidekh 'unresolved until Jul 14' on a Jul-5 match) the bet used to
   vanish; now redeem-closes book at chain truth, sell-closes mirror.
3. Set-D wallets gate on the bot's PINNED floors (copybot.paper.json),
   not a recomputed p80 that drifts a few % and takes different bets.
Also: resolved display slice 60 -> 250 rows.
Cross-check: 9 settled Set-D bot bets -> 7 agree, 0 absent, 2 diffs that
are real execution gaps (bot missed the sharp's exit, rode to
resolution) — each book records what actually happened to IT.
Equity 30d: $29.1k -> $17.4k (+1636%) — the flattering artifacts are gone.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 11:35:31 -04:00