copybot: one-shot 10s re-quote retry for FAK no-match OPENs

'no orders found to match with FAK order' is the #1 miss class (13 of the
last 48h's misses) — the copy lands in the crater the sharp just swept,
before makers requote. Instead of recording the miss at the first
rejection, hand the OPEN to Copybot.fak_requote_retry: sleep fak_retry_s
(default 10, 0 disables) OUTSIDE the bot lock, then re-run the whole gated
buy path (fresh quote, price guard, depth gate) exactly once, mirroring
the webhook call site's fill drain so a retry fill books lag + bet rows.
A second rejection records the miss tagged 'twice (re-quote retry)'.
Paper-parity: the hook is installed in both modes, and PaperExecutor's
FAK model re-decides on the fresh book. tests/test_fak_retry.py covers
hook scheduling, no-double-count sizing (their_size=0 re-entry), ADD and
non-FAK bypasses, and the end-to-end retry thread.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
jaxperro
2026-07-20 14:52:15 -04:00
parent 57b549abb0
commit 01687f4a44
5 changed files with 255 additions and 4 deletions
+3 -1
View File
@@ -40,7 +40,9 @@ push through.
6-wallet Set E rev 4, 4% of working equity/bet, alarm-free after the
07-19 reconcile. **wwf-copybot** (paper $1k): same set, FAK-parity fills.
Both on the audit-hardened build (locks, chain-gated sweep, boot-id
single-writer guard, TLS'd user-ws — HANDOFF_ARCHIVE rev 16).
single-writer guard, TLS'd user-ws — HANDOFF_ARCHIVE rev 16). 2026-07-20:
FAK no-match OPENs get one 10s re-quote retry on both bots (`fak_retry_s`,
paper-parity; misses from a second rejection tag "twice (re-quote retry)").
- **wwf-recorder**: the FULL firehose (trades + order matches + comments
+ crypto ticks, ~8M events/day, dual-socket ~99.9% capture, 25GB volume,
NOTHING deleted until the Mac verifiably ingests it) → nightly →