mirror of
https://relay.ngit.dev/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/ngit-grasp.git
synced 2026-10-05 15:08:24 +00:00
Unrelated events arriving during recovery reset the shared no-progress budget, allowing persistently unavailable IDs to keep retrying indefinitely. Track failed fetches per ID and rotate bounded requests in FIFO order instead. Only attempted unresolved IDs consume their twelve-fetch budget. Preserve backoff for remaining failures and keep the relay degraded after any expiry, even when younger IDs subsequently recover. Disconnected deferrals and daily rediscovery remain unchanged; this does not alter event authorization. Validation: all 945 library tests passed, including regressions for unrelated progress, registration during a fetch, partial expiry and fair request rotation. Assisted-by: GPT-6