Problem: Race notified every second (noisy for long waits), never re-fetched start times (stale if rescheduled), and had no retry on setup failure at T=0 — the highest-stakes moment. Solution: Gate notifications by remaining time (15m/1m/10s/1s tiers). Re-fetch contest list every 10 minutes to correct drift. At T=0, retry `scrape_contest_metadata` up to 15 times at 3s intervals via `race_try_setup`. Token guard prevents stale retries after cancellation. |
||
|---|---|---|
| .. | ||
| cp | ||