You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Problem (100x reliability audit, CRITICAL — reliability is the #1 challenge)
Alert SPEC is complete (deploy/observability/ALERTS.md defines PAGE/WARN thresholds) but alerting is NOT wired (deploy/RELIABILITY_UPGRADE_PLAN.md:916 "[ ] P7: alerts and dashboards live" UNCHECKED). No scheduled watcher exists in the repo. This is the "429 found by a miner, not monitoring" gap, generalized — and it just happened AGAIN with the 2026-07-05 submit outage (found by miner report, not an alert).
Signals that exist in code and go NOWHERE:
weights.refresh_health() (weights.py:1507) — a dead refresh thread is invisible until the 30-min 503 cliff.
verify-worker heartbeats written to DB (app.py:1654-1666) but no endpoint reads heartbeat age.
/v1/admin/validator-health (app.py:4635) computes level=page but nothing polls it.
Fix (~1 day)
One Cloudflare Worker cron (you already run two) every 1-5 min:
GET weights/next on all three validator URLs → assert 200 + generated_at age <5min + source != stale_fallback.
GET validator-health → assert no level=page, weights_feed_5xx flat, unresolved_ip_count flat (once wired), worker heartbeat age <60s.
Push failures to Discord/Telegram/email.
Converts every other finding in the audit from "a miner tells Fred" to "Fred knows first." Also: wire unresolved_ip_count() (from #333) and worker heartbeat age into validator-health so the cron can watch them.
Problem (100x reliability audit, CRITICAL — reliability is the #1 challenge)
Alert SPEC is complete (deploy/observability/ALERTS.md defines PAGE/WARN thresholds) but alerting is NOT wired (deploy/RELIABILITY_UPGRADE_PLAN.md:916 "[ ] P7: alerts and dashboards live" UNCHECKED). No scheduled watcher exists in the repo. This is the "429 found by a miner, not monitoring" gap, generalized — and it just happened AGAIN with the 2026-07-05 submit outage (found by miner report, not an alert).
Signals that exist in code and go NOWHERE:
weights.refresh_health()(weights.py:1507) — a dead refresh thread is invisible until the 30-min 503 cliff.ratelimit.unresolved_ip_count()(ratelimit.py:56-68) — the Harden client-IP derivation: trusted-proxy guard for rate limiting on un-proxied origins #333 fail-open counter has ZERO callers; the limiter can silently un-throttle whole paths./v1/admin/validator-health(app.py:4635) computes level=page but nothing polls it.Fix (~1 day)
One Cloudflare Worker cron (you already run two) every 1-5 min:
Converts every other finding in the audit from "a miner tells Fred" to "Fred knows first." Also: wire
unresolved_ip_count()(from #333) and worker heartbeat age into validator-health so the cron can watch them.