Commit Graph

1024 Commits

Author SHA1 Message Date
copybot[bot] 70586b87cb copybot: live paper feed [skip ci] 2026-07-09 09:30:44 +00:00
copybot[bot] 93f7500b35 copybot: live paper feed [skip ci] 2026-07-09 09:30:10 +00:00
copybot[bot] ba7a5478b6 copybot: live paper feed [skip ci] 2026-07-09 09:20:32 +00:00
copybot[bot] 3894295db5 copybot: live paper feed [skip ci] 2026-07-09 09:17:42 +00:00
copybot[bot] d1f7e30184 copybot: live paper feed [skip ci] 2026-07-09 09:16:25 +00:00
copybot[bot] 166d3c594d copybot: live paper feed [skip ci] 2026-07-09 06:10:09 +00:00
copybot[bot] e08fa4fe7c copybot: live paper feed [skip ci] 2026-07-09 05:11:10 +00:00
copybot[bot] a3958a7402 copybot: live paper feed [skip ci] 2026-07-09 05:10:35 +00:00
copybot[bot] eaa13d52dc copybot: live paper feed [skip ci] 2026-07-09 04:53:06 +00:00
jaxperro 97a1138f49 live bot: per-fill Discord pings via DISCORD_WEBHOOK env secret (paper stays digest-only)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 00:52:17 -04:00
copybot[bot] adca812e9b copybot: live paper feed [skip ci] 2026-07-09 04:50:26 +00:00
jaxperro d4eacbd72b publish_feed: publish untracked (first-ever) feed files — real-money feed was stuck at 404
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 00:50:08 -04:00
copybot[bot] 86d4692c39 copybot: live paper feed [skip ci] 2026-07-09 04:42:43 +00:00
jaxperro 4adf80aee4 preflight book check: all wallets + active-market fallback
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 00:31:39 -04:00
jaxperro 82b0acd5f1 preflight: walk recent trades for a live book; auto_redeem off until the EOA is gassed
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 00:31:08 -04:00
jaxperro 95998aaca4 live env credentials: strip pasted whitespace; bankroll = actual $24.73 deposit
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 00:30:07 -04:00
jaxperro 1863eb3186 HANDOFF: venue fork — $32 landed on polymarket.us; live worker parked unarmed pending decision
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 23:48:26 -04:00
copybot[bot] c0fb549abf copybot: live paper feed [skip ci] 2026-07-09 03:42:07 +00:00
jaxperro 90ed5e98c8 preflight: --config arg + env credential overrides (Fly worker path, no key file on disk)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 23:41:43 -04:00
jaxperro ab2a160fb8 live config: bankroll $32 (actual deposit) @ 15.625% = $5 stakes, caps unchanged
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 23:34:19 -04:00
jaxperro aa4af0e9ec HANDOFF: wwf-copybot-live built, unarmed — Phase 2 funding is the gate
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 23:23:51 -04:00
jaxperro 58b89c106a real-money worker scaffolding (LIVE_ROLLOUT Phase 3 prep)
- 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>
2026-07-08 23:17:36 -04:00
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