atproto relay in zig zlay.waow.tech
relay zig atproto

add host retention: dormant state, higher backoff, reconciliation master

hosts that exhaust max failures are now marked "dormant" (not "exhausted") and their thread stops. a reconciliation fiber runs every 5 minutes, queries active hosts from DB, and respawns any missing workers. on successful reconnect, reset_failures also flips the host back to "active", so recovered PDS instances are picked up automatically. other changes: - backoff is now a struct field on Subscriber, reset to 1 on connect - max_backoff raised from 60s to 1800s (30 min) for dormant-eligible hosts - "dormant" mapped to "offline" in getHostStatus API responses - reconcile thread added to design.md threading table - host status lifecycle documented in postgres tables section Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>