From bcd6850c438977f993f254520033ee28e0e2527d Mon Sep 17 00:00:00 2001 From: jaayslaughter-cpu Date: Sun, 17 May 2026 11:00:33 -0700 Subject: [PATCH] =?UTF-8?q?fix(steamer):=20raise=20Tier=204=20DraftEdge=20?= =?UTF-8?q?cascade=20threshold=2050=E2=86=92100=20to=20match=20health=20ga?= =?UTF-8?q?te?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DraftEdge returning 65 players was being accepted by Tier 4 (threshold >= 50) but then failing the pre-dispatch health gate in tasklets.py (requires >= 100). This mismatch silently blocked all dispatches for 3+ days. Raising threshold to >= 100 causes 65-player results to cascade to Tier 5 static CSV (5,663 players), which passes the health gate cleanly." --- steamer_layer.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/steamer_layer.py b/steamer_layer.py index 4e24d18..b2790ec 100644 --- a/steamer_layer.py +++ b/steamer_layer.py @@ -341,10 +341,10 @@ def _get_cache(hub: dict | None = None) -> dict[str, dict]: today, ) de_data = _fetch_steamer_draftedge(hub) - # Require >= 50 players from DraftEdge — when hub=None at startup, - # the live DraftEdge API only returns ~32 players and blocks the - # 5,663-player static CSV (Tier 5). Treat thin results as a miss. - if de_data and len(de_data) >= 50: + # Require >= 100 players from DraftEdge — must match the health gate in + # tasklets.py. DraftEdge returns ~65 players in degraded state; that is + # below the gate so we cascade to Tier 5 (5,663-player static CSV). + if de_data and len(de_data) >= 100: _CACHE = de_data _CACHE_DATE = today logger.info( @@ -357,7 +357,7 @@ def _get_cache(hub: dict | None = None) -> dict[str, dict]: if de_data: logger.warning( "[Steamer] Tier 4 DraftEdge only returned %d players " - "(< 50 threshold) — falling through to Tier 5 static CSV.", + "(< 100 threshold) — falling through to Tier 5 static CSV.", len(de_data), ) # Tier 5: static CSV bundled in data/fg/steamer_ros_2026.csv