Guards

Updated 23 Oct 16:07:02 BKK by kookwatch. Alert sender (leader): kookwatch. Open problems that every layer failed to fix: 7
- research-box: history rebuild moving (one-time, paid) - no progress for 9.8 h (bad 8.8 h; 18 fix(es), last: restart hist-rh (rc 0))
- research-box: M picker learning loop ran (hourtrain, hourly) - 352.2 h old (max 4.0 h) (bad 341.8 h; no automatic fix exists)
- kookwatch: machine - disk 88% used, 5555 MB RAM free, load 5.31 (bad 42.7 h; no automatic fix exists)
- kookwatch: M runtrack snapshots freshness (Test Manager, from super) - 129.1 h old (max 75 min) (bad 127.9 h; 746 fix(es), last: restart runtrack.service (rc 0))
- kookwatch: M 10 s holder and buy/sell tape freshness (Test Manager, from super) - 113.8 h old (max 30 min) (bad 113.3 h; 661 fix(es), last: restart rhfast.service (rc 0))
- kookwatch: M Picker retrain freshness (Test Manager, from super) - 191.2 h old (max 36.0 h) (bad 155.2 h; 905 fix(es), last: restart hist-retrain.service (rc 0))
- kookwatch: M Launch catch-up (reconcile) freshness (Test Manager, from super) - 153.3 h old (max 10 min) (bad 153.1 h; 893 fix(es), last: restart reconcile.timer (rc 0))

Layer 1 = each box's own guard (twice a minute). Layer 2 = the other boxes call its entry over SSH every minute (revive guard, start dead units). Telegram only when both fail. To stop a unit on purpose: systemctl disable --now X or touch /opt/guard/hold/X.

firstmin-trader - local guard 31 s ago
AI pick feed reaches this boxOK0 s old
L Git snapshot cron jobOK1 jobs present
L Git snapshot ranOK80 s old
L live-change log cron jobOK1 jobs present
LIVE bot fmmc5 (real money)OKrunning, heartbeat 2 s
S stop rule: 10 losses in a row (paper/live test 2 only; Ben 8 Oct: none for fmmc5)OK1 jobs present
dashboard pnl.html (live)OK12 s old
dashboard pnl2.htmlOK17 s old
dashboard pnl2v.htmlOK17 s old
dashboard tests.jsonOK21 s old
gmgnd (live sells) runningOKrunning
gmgnd answersOKanswers ping {"warmOk": 1816, "warmErr": 1, "lastWarmMs": 204}
guard triggersOKcron + timer present
machineOKdisk 38% used, 402 MB RAM free, load 5.08
outside-money cardOK79 s old
paper test 1 fml2OKrunning, heartbeat 0 s
paper test 1b fml2vOKrunning, heartbeat 2 s
safety + dashboard cron jobsOK12 jobs present
kookwatch - local guard -1 s ago
60 s AI picker (feeds paper tests)OKrunning, heartbeat 2 s
L Git snapshot cron jobOK1 jobs present
L Git snapshot ranOK49 min old
L ROT chains.json from rot-box (Manager)OK31 min old
L ROT closes.json from rot-box (Manager)OK116 s old
L ROT map-data.json from rot-box (Manager)OK15 min old
L ROT rh_drill.json from rot-box (Manager)OK52 min old
L ROT rotation.json from rot-box (Manager)OK45 min old
L ROT rotmap.json from rot-box (Manager)OK41 min old
L ROT sync main<->rot-box (Manager)OK56 s old
L judge guard ok (PP Data)OK6 s old
L lane check ok (PP Data)OK0 s old
L lane price tracker (PP Data)OK6 s old
L lane stats page (PP Data)OK6 min old
L live-change log cron jobOK1 jobs present
L nightly review cron jobOK1 jobs present
L nightly review pageOK8.4 h old
M 10 s holder and buy/sell tape freshness (Test Manager, from super)BAD113.8 h old (max 30 min)661 fix(es): restart rhfast.service (rc 0)
M AI picker round 5 (paper) freshness (Test Manager, from super)OK0 s old
M Ben Telegram buttons (benbot)OKrunning
M Ben Telegram line in cronOK2 jobs present
M Launch catch-up (reconcile) freshness (Test Manager, from super)BAD153.3 h old (max 10 min)893 fix(es): restart reconcile.timer (rc 0)
M Live job checker (sentinel) freshness (Test Manager, from super)OK24 s old
M PP Feeds layer-2 guard (ppfeedguard2)OKrunning, heartbeat 14 s
M PP data cron lines (PP Data)OK3 jobs present
M PP data liquidity table (liqinc) (PP Data)OK43 min old
M PP data picker-box copy (pbsync pull) (PP Data)OK11 s old
M PP data ponstape (PP Data)OKrunning
M PP data ppexit honest-exit tracker (PP Data)OK-1 s old
M PP data venuepick paper picker (PP Data)OK0 s old
M PP feed GMGN board (price-predict-rh)OKrunning, heartbeat 0 s
M PP feed crewlive (crews)OKrunning, heartbeat 24 s
M PP feed klinesOKrunning, heartbeat 97 s
M PP feed ponstape (Pons curve)OKrunning, heartbeat 13 s
M PP feed rhledgerOKrunning
M PP feed runtrack (runners)OKheartbeat 129.1 h old but log live (not hung)
M Picker guard (pickguard) freshness (Test Manager, from super)OK6 s old
M Picker retrain freshness (Test Manager, from super)BAD191.2 h old (max 36.0 h)905 fix(es): restart hist-retrain.service (rc 0)
M SW engine w2coder (paper)OKrunning, heartbeat 23 s
M bot watchdog freshness (Test Manager, from super)OK4 min old
M cleaner freshness (Test Manager, from super)OK7 min old
M daily miss review in cronOK1 jobs present
M gmgn feeds recorder freshness (Test Manager, from super)OK70 s old
M instant miss watch ranOK109 s old
M lane price tracker (lanetrack) freshness (Test Manager, from super)OK6 s old
M lane radar v3 (laneradar3) freshness (Test Manager, from super)OK0 s old
M lane radar v3 beat (PP Data)OK0 s old
M lane stats page (lanestats) freshness (Test Manager, from super)OK6 min old
M meta radar (metaradar) freshness (Test Manager, from super)OK22 min old
M paper test (pp-paper) freshness (Test Manager, from super)OK29 s old
M picker learning loop cron (hourly)OK1 jobs present
M ppinc hourly new pools + supply (PP Data)OK3 min old
M rate-limit review in cronOK2 jobs present
M rate-limit review ran (heartbeat)OK41 min old
M runtrack snapshots freshness (Test Manager, from super)BAD129.1 h old (max 75 min)746 fix(es): restart runtrack.service (rc 0)
S AI picker (paper) freshness (Test Manager, from super)OK2 s old
S P3 mirror cross (a1pull@cross)OKrunning
S P3 mirror early (a1pull@early)OKrunning
S backup checker (livewatch2) freshness (Test Manager, from super)OK6 s old
S fast checker (livewatch) freshness (Test Manager, from super)OK2 s old
S fast checker livewatchOKrunning, heartbeat 2 s
S live scanner rhfast (feeds Price Predict)OKrunning, heartbeat 78 s
S live settings watchdogOK1 jobs present
S live settings watchdog ranOK113 s old
backup picker aipick5b stays offOKoff (as decided)
drpc_paid.json is freeOKpoints to robinhood.drpc.org
guard triggersOKcron + timer present
machineBADdisk 88% used, 5555 MB RAM free, load 5.31
paid key: no stray copiesOKpaid key only in the opt-in files (scanned 37 min ago)
paid key: only allowed processesOKonly allowed processes use the paid key
pick feed file l2picks.jsonOK0 s old
pick feed l2feedOKrunning, heartbeat 0 s
published tests dashboardOK48 s old
rpc_keys.json is freeOKpoints to robinhood.drpc.org
rpcpool.py healthyOKcompiles
testspub cron jobOK1 jobs present
picker-box - local guard 1 s ago
L Git snapshot cron jobOK1 jobs present
L Git snapshot ranOK49 min old
M lab paper books-on hold (/opt/guard/hold/labbooks)
M shadow picker pbshadowOKrunning
free RPC relay (2nd IP)OKrunning
guard triggersOKcron + timer present
machineOKdisk 33% used, 542 MB RAM free, load 0.28
rpc_keys.json is freeOKpoints to robinhood.drpc.org
research-box - local guard 2 s ago
L Git snapshot cron jobOK1 jobs present
L Git snapshot ranOK49 min old
L kitbOK5 min old
L shadow grid report (Test Manager, nightly 02:30)OK13.1 h old
L trending feedOK60 s old
M KITFAST kit feed (PP Feeds)OKrunning, heartbeat 3 s
M PP Feeds layer-1 guard (ppfeedguard)OKrunning, heartbeat 5 s
M auditq ranOK6 min old
M crew tagger pretagOKrunning, heartbeat 16 s
M datajob runner ranOK59 s old
M flowwatch ranOK0 s old
M ideaq ranOK3 min old
M killbot ranOK55 min old
M paper cards ranOK118 s old
M picker learning loop ran (hourtrain, hourly)BAD352.2 h old (max 4.0 h)
M v3 live feed v3liveOKrunning, heartbeat 5 s
M v3 mc5 paper bookOKrunning, heartbeat 3 s
S A1 early + cross feed (a1feed)OKrunning, heartbeat 0 s
drpc_paid.json is freeOKpoints to robinhood.drpc.org
guard triggersOKcron + timer present
history rebuild moving (one-time, paid)BADno progress for 9.8 h18 fix(es): restart hist-rh (rc 0)
machineOKdisk 88% used, 14140 MB RAM free, load 3.06
paid key: no stray copiesOKpaid key only in the opt-in files (scanned 12 min ago)
paid key: only allowed processesOKonly allowed processes use the paid key
rebuild moves to free when done (cron)OK1 jobs present
rpc_keys.json is freeOKpoints to robinhood.drpc.org
rpcpool.py healthyOKcompiles