mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-08-11 21:58:05 +00:00
Compare commits
base: rick/LEDMatrix:main
rick/LEDMatrix:main
rick/LEDMatrix:fix/odds-user-agent
rick/LEDMatrix:docs/b6-decision-of-record
rick/LEDMatrix:fix/odds-cache-stampede
rick/LEDMatrix:fix/vegas-crop-window-defects
rick/LEDMatrix:test/harness-display-contract
rick/LEDMatrix:feat/vegas-uncap-by-default
rick/LEDMatrix:fix/git-pull-no-upstream
rick/LEDMatrix:claude/coderabbit-findings-review-2y75u0
rick/LEDMatrix:feat/gate-reads-compatible-versions
rick/LEDMatrix:fix/vegas-keys-not-schema-violations
rick/LEDMatrix:docs/changelog-3.2.0-gate
rick/LEDMatrix:fix/compatibility-gate-onto-main
rick/LEDMatrix:push/version-reporting
rick/LEDMatrix:docs/rollout-plan-sunset-gate
rick/LEDMatrix:push/compatibility-gate
rick/LEDMatrix:claude/sports-unification-phase1
rick/LEDMatrix:claude/sports-unification-safety-net
rick/LEDMatrix:feat/plugin-global-config
rick/LEDMatrix:feat/vegas-mode-density
rick/LEDMatrix:claude/double-sided-disabled-validation-uplvi6
rick/LEDMatrix:feat/web-ui-mobile-onboarding
rick/LEDMatrix:claude/system-logs-improvements-glapcd
rick/LEDMatrix:feat/plugin-composer
rick/LEDMatrix:chore/ncaa-logos-march-madness
rick/LEDMatrix:fix/mock-cache-manager-strategy-method
rick/LEDMatrix:perf/dirty-tracking
rick/LEDMatrix:fix/snapshot-viewer-gating
rick/LEDMatrix:fix/atomic-plugin-update
rick/LEDMatrix:perf/hot-path-micro
rick/LEDMatrix:feat/adaptive-layout
rick/LEDMatrix:fix/core-cache-hardening
rick/LEDMatrix:claude/global-schedule-bug-ebx7m2
rick/LEDMatrix:chore/remove-march-madness-bundled
rick/LEDMatrix:feat/pi5-ui-and-hardware-status
rick/LEDMatrix:update-rgb-matrix-pi5
rick/LEDMatrix:fix/post-install-service-control-rebased
rick/LEDMatrix:fix/post-install-service-control-and-ap-mode
..
compare: rick/LEDMatrix:fix/odds-user-agent
rick/LEDMatrix:main
rick/LEDMatrix:fix/odds-user-agent
rick/LEDMatrix:docs/b6-decision-of-record
rick/LEDMatrix:fix/odds-cache-stampede
rick/LEDMatrix:fix/vegas-crop-window-defects
rick/LEDMatrix:test/harness-display-contract
rick/LEDMatrix:feat/vegas-uncap-by-default
rick/LEDMatrix:fix/git-pull-no-upstream
rick/LEDMatrix:claude/coderabbit-findings-review-2y75u0
rick/LEDMatrix:feat/gate-reads-compatible-versions
rick/LEDMatrix:fix/vegas-keys-not-schema-violations
rick/LEDMatrix:docs/changelog-3.2.0-gate
rick/LEDMatrix:fix/compatibility-gate-onto-main
rick/LEDMatrix:push/version-reporting
rick/LEDMatrix:docs/rollout-plan-sunset-gate
rick/LEDMatrix:push/compatibility-gate
rick/LEDMatrix:claude/sports-unification-phase1
rick/LEDMatrix:claude/sports-unification-safety-net
rick/LEDMatrix:feat/plugin-global-config
rick/LEDMatrix:feat/vegas-mode-density
rick/LEDMatrix:claude/double-sided-disabled-validation-uplvi6
rick/LEDMatrix:feat/web-ui-mobile-onboarding
rick/LEDMatrix:claude/system-logs-improvements-glapcd
rick/LEDMatrix:feat/plugin-composer
rick/LEDMatrix:chore/ncaa-logos-march-madness
rick/LEDMatrix:fix/mock-cache-manager-strategy-method
rick/LEDMatrix:perf/dirty-tracking
rick/LEDMatrix:fix/snapshot-viewer-gating
rick/LEDMatrix:fix/atomic-plugin-update
rick/LEDMatrix:perf/hot-path-micro
rick/LEDMatrix:feat/adaptive-layout
rick/LEDMatrix:fix/core-cache-hardening
rick/LEDMatrix:claude/global-schedule-bug-ebx7m2
rick/LEDMatrix:chore/remove-march-madness-bundled
rick/LEDMatrix:feat/pi5-ui-and-hardware-status
rick/LEDMatrix:update-rgb-matrix-pi5
rick/LEDMatrix:fix/post-install-service-control-rebased
rick/LEDMatrix:fix/post-install-service-control-and-ap-mode
1
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
0e0b89388d |
fix(odds): identify the odds requests to ESPN
The odds fetch used a bare requests.get, so it went out as python-requests/x.y -- the one agent ESPN is known to reject. Around 2026-08-04 it began 403ing browser strings and bare custom tokens alike; what it accepts is a token carrying a URL that says who is calling. Every other ESPN caller in the tree already sends that header (src/common/api_helper.py, src/base_classes/data_sources.py); this path was simply missed. It is the worst one to miss. Odds are fetched per live game from inside the live update loop, so its failures are the ones that cost the caller its whole update budget -- the same path the 5s timeout and the cooldown were added to protect. Sent via a session rather than per-call, which also reuses the connection across a slate. Deliberately no retry adapter, unlike api_helper: retries multiply request_timeout, which is 5s precisely to stay inside the 30s operation budget. The existing tests patched the module's requests.get, which this change bypasses -- test_base_odds_manager was consequently reaching the real ESPN and taking 404s. Both files now patch the session, and the new tests pin the agent against api_helper's live value so the two cannot drift apart the next time ESPN moves the goalposts. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Udr6MfaFLUPhX5Fgo67Jf5 |