Skip to content

feat(baseball-scoreboard): game activity pop-ups for the live scorebug (1.56.0) - #606

Merged
ChuckBuilds merged 2 commits into
mainfrom
claude/baseball-game-activity
Oct 2, 2026
Merged

ChuckBuilds merged 2 commits into
mainfrom
claude/baseball-game-activity

Conversation

@ChuckBuilds

Copy link
Copy Markdown
Owner

Stacked on #605 (celebrations and scorer card); the base branch is that PR's, so this diff is only the pop-ups. GitHub retargets it to main when #605 merges.

What

Hockey has a game-activity banner; baseball had nothing like it. This adds one: a one-line banner along the bottom of the live scorebug for the plays between runs, held for a few seconds, then faded back to the scorebug.

  • Harper SINGLE! Top 8th
  • Acuna Jr. STEALS 3RD Bot 1st
  • McFarlane IN RELIEF Bot 7th
  • also strikeouts, walks, double plays, errors, and (at the top detail level) outs and sacrifices

Runs are left to the celebration and the scorer card, as hockey leaves goals: a play flagged scoringPlay is never a pop-up.

How

ESPN's baseball summary has one row per pitch plus a play-result row per at-bat ("Harper singled to left, Turner scored."). Checked against the real PHI @ ATL summary from 2026-09-30 (623 rows): the pop-up is built from the result sentence, pitch rows and lineup bookkeeping are ignored, and none of the game's 7 runs came through. It polls the same summary the celebration and scorer card read, for the game on screen, in a thread, and shares the celebration's fetch when a run has just scored. The render path only reads a queue.

  • A first look at a game only records where the feed is, so joining mid-inning replays nothing; a poll that loses its place re-baselines.
  • A burst keeps the newest three; a pop-up for a game the rotation has left is dropped.
  • Wording ladder: a smaller font is tried before any word is given up, then the surname, the short label (1B, SB, K), the short inning (T8), then the inning itself. Accents are folded (Acuna) because the 4x6 face has no n-tilde.
  • Text fades rather than the banner cross-fading, so two lines of text never overlap; steady between frames at 1 FPS.

Settings (per league, MLB and NCAA only; MiLB has no play data)

display_options.show_game_activity (off), game_activity_detail (highlights; or hits_and_steals, everything), game_activity_dwell_seconds (6), game_activity_fade_seconds (3). Only on panels 32 px tall or more. One extra ESPN request per live update for the game on screen. Forwarded by _adapt_config_for_manager; README, schema and CHANGELOG updated.

Files

New: baseball_activity.py, test_baseball_activity.py. Edited: baseball.py (mixin, poll in update(), one call before the frame is presented), baseball_celebration.py (_fetch_summary takes a timeout), manager, schema, README, CHANGELOG, manifest 1.55.0 -> 1.56.0, plugins.json. sports.py is untouched.

Tests

  • New test_baseball_activity.py: extraction, wording, queue and poll rules, fade, every panel size 64x32 to 256x64, and a pass over the real ESPN game when $TMP/sum.json is present.
  • Every other baseball test passes except test_odds_placement, which fails the same way on origin/main.
  • Schema-settings, settings-reach-the-manager, version-bump, registry and module-collision checks pass.
  • Not run: core check_plugin.py on this branch, or against a live game.

Known limits

The banner covers the scorebug's bottom row (the team abbreviations and scores in the corners) while it shows, as hockey's does.

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: c3886f7f-f39b-41d1-b476-440ce1d919f9

  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codacy-production

codacy-production Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 1010 complexity

Metric Results
Complexity 1010

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

Base automatically changed from claude/baseball-celebrations to main October 2, 2026 21:18
…g (1.56.0)

A one-line banner along the bottom of the live scorebug for the plays between
runs, as the hockey scoreboard does for shots and penalties. Off by default,
MLB and NCAA only. Rebased onto main after the celebrations PR was squashed.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@ChuckBuilds
ChuckBuilds force-pushed the claude/baseball-game-activity branch from 0b5aa00 to 43c19f7 Compare October 2, 2026 21:19
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@ChuckBuilds
ChuckBuilds merged commit 637a6ae into main Oct 2, 2026
5 checks passed
@ChuckBuilds
ChuckBuilds deleted the claude/baseball-game-activity branch October 2, 2026 21:22
ChuckBuilds added a commit that referenced this pull request Oct 2, 2026
main released baseball-scoreboard 1.55.0 and 1.56.0 (#605, #606), so the
has_live_content() DEBUG re-log moves from 1.54.4 to 1.56.1 on top of them,
with its own versions[] entry and CHANGELOG section. plugins.json regenerated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant