Skip to content

[sports] Two schema settings are never read by the shared sports engine #373

Description

@ChuckBuilds

Plugins

All scoreboards carrying the shared sports engine — found in afl-scoreboard 1.19.2, and the settings are present in the sibling schemas too.

Describe the bug

Two settings appear in the configuration UI with defaults, and nothing reads them.

dynamic_duration.min_duration_seconds (default 30)

Only max_duration_seconds is consulted:

if "max_duration_seconds" in source:
    cap = float(source.get("max_duration_seconds"))

There is no corresponding floor, so setting a minimum has no effect on how long a mode stays on screen.

background_service.max_workers (default 3)

request_timeout, max_retries and priority are all read from the config, but the service is constructed with a hard-coded single worker:

self.cache_manager, max_workers=1

So the setting is inert, and a user raising it to speed up fetching gets nothing.

Why this matters

Both are the kind of setting someone reaches for when a board feels slow or a mode flashes past. Silently doing nothing sends them looking in the wrong place.

Suggested fix

For each: either wire it up, or remove it from the schema. Whichever you prefer, it wants doing across the lineage in one change — these files are copied per scoreboard, so a fix in one has to be ported to its siblings in the same PR (per docs/plugin-development/08-shared-sports-code.md).

I have deliberately not touched these while #359 and #366 are open, since both already touch all seven scoreboards. Happy to take it once they land — say the word.

Documented as known limitations in #358 in the meantime.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions