fix: one retry layer for background fetches; CI installs the web requirements; one Discord invite (#657)

- BackgroundDataService: the session adapter retried connection errors 3x
  inside each attempt of the service's own retry loop (up to 16 connection
  attempts per request on a dead network). The adapter no longer retries;
  ESPN date chunks, which bypass the loop and skip a failed chunk, get a
  small connection retry of their own (_ConnectionRetryingSession).
- CI installs web_interface/requirements.txt. The brotli header test now
  checks its intent (core never hand-sets br; requests may advertise it when
  a decoder is installed) instead of failing whenever brotli is present.
- Every Discord link uses the LEDMatrix server's invite (RdrC37rEag).

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Chuck
2026-09-28 11:08:43 -04:00
committed by GitHub
co-authored by Claude Opus 5.5
parent 6cfcf2e384
commit 724673ba0b
10 changed files with 95 additions and 12 deletions
+8 -1
View File
@@ -34,7 +34,14 @@ class TestSharedHeaders:
assert APIHelper().session.headers['User-Agent'] == USER_AGENT
def test_api_helper_does_not_hand_set_brotli(self):
assert 'br' not in APIHelper().session.headers.get('Accept-Encoding', '')
# Accept-Encoding is left to requests, which advertises br only when
# a brotli decoder is installed (flask-compress pulls one in, so the
# web requirements do). What must not happen is core adding it by
# hand, advertising a body the client may not be able to read.
import requests
assert 'accept-encoding' not in _lower_keys(DEFAULT_HTTP_HEADERS)
assert (APIHelper().session.headers.get('Accept-Encoding')
== requests.utils.default_headers()['Accept-Encoding'])
def test_logo_helper_sends_the_same_user_agent(self):
from src.common.logo_helper import LogoHelper