# Ops log 8 Oct 2026 (Bangkok), done by Claude for Ben

## Live trading
- 12:40 autoswitch.py (D-003 v3 deadline) moved the live wallet from fm_mc5 to the merged w2coder engine at $10.
- 12:50 UNDONE at Ben's request: w2coder config restored from config.json.pre_switch_1791438020 (merged_live off), w2coder restarted, SW_FW_ROUTE removed on firstmin (kept as SW_FW_ROUTE.off_*). autoswitch is run once (SWITCHED file), it will not fire again.
- fm_mc5 code unchanged since 7 Oct 16:41 (same as trade #8). Config = trade #8 rules with size_usd 50 and kill_dd_tickets 10.
- LIVE_MC5 is NOT created. Ben creates it himself: `touch /opt/fm/LIVE_MC5` on firstmin.

## Feed outage 12:10 to 12:41 and 6 h Price Predict gap: root cause
- 06:35 paid dRPC balance ran out ("User balance exceeded"). crewlive, ponstape, signer used ONLY paid dRPC, so they stopped.
- ~12:10 Alchemy hit its monthly cap. rhfast lost its last backup and fell 17 min behind. Restarts could not help.
- hist-rh-meta was calling Alchemy nonstop, most likely what drained the monthly cap.
- Ben topped up dRPC (~12:58).

## Fixes
- /opt/common/rpcpool.py: one sender with fallback (paid dRPC, free dRPC, public node, Alchemy; a source answering 401/402/403/429 is skipped 60 s). crewmap.py, ponstape.py, signer.py now use it.
- rhfast.py: paid dRPC first, then free dRPC, public, Alchemy; backoff on repeated errors.
- crewmap.py live: catches up in 5000-block steps (one huge span failed after the outage).
- hist-rh-meta moved off Alchemy to the free public node.
- livewatch: new checks "BILLING dRPC paid", "BILLING Alchemy" (Telegram at once, only Ben can top up), "crew collector", "pons collector" (restart, then alert).
- Backups of every changed file next to it (*.bak_pre429_*, *.bak_prepool_*, *.bak_prechunk_*, *.bak_prepublic_*, *.bak_prebilling_*).

## Gaps filled
- rhfast, ponstape, crewlive resumed from their saved block and are at chain head. signer backfill runs by itself.

## Open for Ben
- Alchemy still over its monthly cap (backup only).
- Loss stop: fm_mc5 kill_dd_tickets 10 = $500 at $50, vs D-017 org loss cap $200.
- decisions.md D-003 v3 no longer matches what runs.

## Manager pushed run ~19:40-20:00 Bangkok (board)
- ROT stack moved main -> rot-box (Ben approved), main pulls outputs every 2 min, 7 mesh checks: http://159.223.88.168/hx-c9ois/mgr/rot-move.md
- KEEP/KILL: KILLs switched off, restarters patched (super, livewatch2, sentinel, pickguard, judgeguard, w2guard): http://159.223.88.168/hx-c9ois/mgr/to-tm-30-31.md
- A2 ramp grader off; shadow grader to 14 Oct. pretag/v3live mesh heartbeat 180 s.
- Review page: new gate "Paper 1b (fml2v)".
- Old guards routed to owners, deadline 15 Oct: http://159.223.88.168/hx-c9ois/mgr/guard-routing.md
- Seen, not mine: mesh "M PP feed runtrack (runners)" BAD (heartbeat 74 min) at 19:45 -> in PP Feeds' task #37.
