docs(afl-scoreboard): document every setting, with real finals-series renders - #356
Conversation
… renders Documentation only; no plugin behaviour changes. The README covered roughly fifteen of the plugin's 120-odd settings, had no images, and its "Key settings" table had drifted from the schema -- it listed show_favorite_teams_only as defaulting to false (it is true), display_duration as 30 (it is 15), and showed show_odds: false in an example labelled as the defaults. It is rewritten around real rendered output and now documents every option, grouped by what you would be trying to achieve. Game selection gets its own section, because it is the part that surprises people. There are three distinct code paths -- no favourites, favourites exclusively, and favourites-first-then-others -- and which one runs depends on whether favorite_teams is empty and whether show_favorite_teams_only is on. Most importantly, upcoming_games_to_show and recent_games_to_show mean a per-team budget in the exclusive path and a total in the other two, so three favourites and a value of 3 is nine cards or three depending on one unrelated checkbox. That is now a table rather than something to discover on the panel. Four dead ends are recorded, each verified rather than assumed: - show_odds defaults to true but ESPN publishes no odds block for any AFL fixture -- a full finals-week payload contains zero, and the rendered card is identical either way. It is not free: the plugin still issues one odds request per selected game per update, so the README tells AFL users to turn it off. - show_ranking has no poll to read for this league. - dynamic_duration.min_duration_seconds is in the schema with a default of 30 but is never read; only max_duration_seconds is. - background_service.max_workers is in the schema with a default of 3 but the service is constructed with a single worker regardless. Also documents the missing-logo failure mode found while rendering: a failed logo download is cached as a sub-kilobyte placeholder that is never retried, so the team stays a grey text box until the stub file is deleted. Screenshots come from archived ESPN payloads of the 2026 finals series with a frozen clock, so they are reproducible and `--check` verifies them. The live card is that same real data with one match rewound to three-quarter time and its score set to the real cumulative three-quarter total (Carlton 56, Melbourne 52), so it shows a moment that genuinely happened rather than an invented scoreline. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
The rewrite dropped it. It documents core config (display.vegas_scroll.*) rather than plugin config, which is exactly why it is worth keeping here: a live game takes over the panel by default, and the settings that instead keep the marquee running and weight this scoreboard's slots are somewhere the reader would not think to look. Reworded to name filtering.favorite_live_boost and live_update_interval by their full paths, so it lines up with the reference sections above it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Up to standards ✅🟢 Issues
|
… renders Re-lands #356, which merged but never reached main: I based it on docs/7-segment-clock-readme so it could use the render tooling before that tooling existed on main, and #355 squash-merged that branch to main *before* at since. This is the same content, cut from main instead. Documentation only; no behaviour change. The README covered roughly fifteen of the plugin's 120-odd settings, had no images, and its "Key settings" table had drifted from the schema -- it listed show_favorite_teams_only as defaulting to false (it is true), display_duration as 30 (it is 15), and showed show_odds: false in an example labelled as the defaults. Game selection gets its own section, because it is the part that surprises people. There are three distinct code paths -- no favourites, favourites exclusively, and favourites-first-then-others -- and which one runs depends on whether favorite_teams is empty and whether show_favorite_teams_only is on. Most importantly, upcoming_games_to_show and recent_games_to_show mean a per-team budget in the exclusive path and a total in the other two, so three favourites and a value of 3 is nine cards or three depending on one unrelated checkbox. Four dead ends are recorded, each verified rather than assumed: show_odds is a no-op for AFL because ESPN publishes no odds block for the league (a full finals-week payload contains zero) though it still issues one odds request per selected game; show_ranking has no poll to read; and dynamic_duration.min_duration_seconds and background_service.max_workers are in the schema but never applied. Re-verified against main rather than assumed still-current: every documented default still matches config_schema.json after #353 and #354, and the committed images re-render byte-identical against main's sports.py, which those PRs changed. The harness passes 24/24. Version bumped from main's current 1.19.0 rather than the 1.17.3 the stranded branch carried. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* docs(afl-scoreboard): document every setting, with real finals-series renders Re-lands #356, which merged but never reached main: I based it on docs/7-segment-clock-readme so it could use the render tooling before that tooling existed on main, and #355 squash-merged that branch to main *before* at since. This is the same content, cut from main instead. Documentation only; no behaviour change. The README covered roughly fifteen of the plugin's 120-odd settings, had no images, and its "Key settings" table had drifted from the schema -- it listed show_favorite_teams_only as defaulting to false (it is true), display_duration as 30 (it is 15), and showed show_odds: false in an example labelled as the defaults. Game selection gets its own section, because it is the part that surprises people. There are three distinct code paths -- no favourites, favourites exclusively, and favourites-first-then-others -- and which one runs depends on whether favorite_teams is empty and whether show_favorite_teams_only is on. Most importantly, upcoming_games_to_show and recent_games_to_show mean a per-team budget in the exclusive path and a total in the other two, so three favourites and a value of 3 is nine cards or three depending on one unrelated checkbox. Four dead ends are recorded, each verified rather than assumed: show_odds is a no-op for AFL because ESPN publishes no odds block for the league (a full finals-week payload contains zero) though it still issues one odds request per selected game; show_ranking has no poll to read; and dynamic_duration.min_duration_seconds and background_service.max_workers are in the schema but never applied. Re-verified against main rather than assumed still-current: every documented default still matches config_schema.json after #353 and #354, and the committed images re-render byte-identical against main's sports.py, which those PRs changed. The harness passes 24/24. Version bumped from main's current 1.19.0 rather than the 1.17.3 the stranded branch carried. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * chore(afl-scoreboard): re-bump to 1.19.2 after the logo fix landed #357 took the plugin to 1.19.1 while this was open, so the docs bump moves to 1.19.2 and sits on top of it. Images re-verified byte-identical after the rebase; plugins.json regenerated. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Summary
Documentation only; no plugin behaviour changes. Second plugin in the pass to bring
every ChuckBuilds-owned plugin README to a consistent standard.
The README covered roughly fifteen of the plugin's ~120 settings, had no images, and
its "Key settings" table had drifted from the schema — it listed
show_favorite_teams_onlyas defaulting tofalse(it istrue),display_durationas
30(it is15), and showedshow_odds: falsein an example labelled as defaults.Game selection now has its own section
This is the part that surprises people, and it was undocumented. There are three
distinct code paths, chosen by whether
favorite_teamsis empty and whethershow_favorite_teams_onlyis on:upcoming_games_to_showmeansThree favourites with a value of
3is nine cards or three, depending on oneunrelated checkbox. Also documented: the rotating window that advances non-favourite
games every
other_rotation_interval_seconds, thatexclude_teamsbeats everything,and that
show_favorite_teams_only: truewith an empty favourites list showseverything rather than nothing.
Four dead ends, each verified
show_oddsdoes nothing for AFL. Defaults totrue, but ESPN publishes no oddsblock for any AFL fixture — a full finals-week payload contains zero, and the
rendered card is byte-identical either way. Not free, though: the plugin still
issues one odds request per selected game per update. The README tells AFL users to
turn it off.
show_rankingdoes nothing for AFL — no poll to read for this league.dynamic_duration.min_duration_secondsis in the schema with a default of30but is never read; only
max_duration_secondsis.background_service.max_workersis in the schema with a default of3but theservice is constructed with a single worker regardless.
The last two are in shared sports code copied across seven scoreboards, so fixing or
removing them is a lineage-wide change rather than something to slip into a docs PR.
Flagging rather than fixing.
Also found
A failed team-logo download is cached as a sub-kilobyte placeholder that is never
retried, so that team stays a grey text box permanently. Documented in Troubleshooting
with how to clear it. Hit this for real while rendering — five of eleven cached AFL
logos on my machine were stubs.
Images
Real output from archived ESPN payloads of the 2026 finals series, frozen clock, so
they are reproducible and
--checkverifies them against the code.The live-mode card deserves a note on honesty: it is the real Carlton–Melbourne
semi-final with the status rewound to three-quarter time and the score set to the real
cumulative three-quarter total from ESPN's own linescores (Carlton 56, Melbourne 52).
It shows a moment that genuinely happened, not an invented scoreline.
Verification
python scripts/check_plugin.py --plugin afl-scoreboard— 24/24 PASS (8 sizes × 3 modes)python scripts/render_docs_assets.py --plugin afl-scoreboard --check— images matchpython scripts/check_module_collisions.py— OK across 43 pluginsplugins.jsonregenerated viaupdate_registry.py🤖 Generated with Claude Code