mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-10 00:16:59 +00:00
The drain classifier had two "act on it" verdicts, HARD (drop now) and TRANSIENT (strike a few times, might clear). Re-probing hop-8's failed relays fresh showed the TRANSIENT bucket almost never clears: 503 Service Unavailable 0/12 reachable, 502 Bad Gateway 3/15, connection-establishment failures 0/30; the codes that were alive (402/403) are gated and will never serve us, and 200 isn't a relay. So the extra dials TRANSIENT bought were spent on hosts that stay dead for the run. Collapse to a single DEAD verdict, dropped on the first strike, and carve out the only two connect failures that genuinely recover so they stay retryable (null): a READ timeout (relay answered the handshake, slow — 67% reachable fresh, kept on the clear-on-success authority-strike path) and an HTTP 429 rate-limit (alive, 4/4 reachable — retrying spaced by the limiter is how we get its data). Removes the now-unused relayStrikes map, MAX_DEAD_STRIKES, and the HARD/TRANSIENT merge. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MSW59hJtP4Yn8fnRUxc7F5