Skip to content

Transition settings are declared in five plugin schemas and read by none of them #381

Description

@ChuckBuilds

Summary

Five plugins declare transition.* settings in config_schema.json. None of them read those settings, and the core implements no display transitions either. That is roughly sixteen configuration options across the repo that present a dropdown or a switch in the web UI and do nothing.

The sweep

Checking each plugin's schema against every .py file in its directory:

Plugin Declares transitions Code reads them
christmas-countdown yes no
masters-tournament yes no
olympics yes no
web-ui-info yes no
nfl-draft yes no — its only match is a comment about a state transition

nfl-draft looked like the exception until I read it:

# is_draft_live state so the live transition is detected within 10 min.

The core does not implement them either

I checked before concluding. Every occurrence of "transition" under LEDMatrix/src/ is a comment about plugin state-machine transitions or Vegas-mode cycle boundaries. Nothing reads a transition config key, and there is no implementation of fade, slide, wipe, dissolve or pixelate anywhere.

What the schemas promise

The declarations are not identical, which suggests they were copied and edited rather than sharing a source:

  • christmas-countdown: redraw, fade, slide, wipe, dissolve, pixelate — plus a separate high_performance_transitions boolean, also unread
  • web-ui-info: redraw, fade, slide, wipe

Each also carries transition.speed ("1=slow, 10=fast") and transition.enabled.

Suggested fix

Either is reasonable, and it is one decision covering all five:

  1. Remove transition.* from the five schemas. Nothing can break — no configuration using them works today. It is a schema removal so it wants a major bump on each, but the practical risk is nil.
  2. Implement transitions in the core display controller, so every plugin benefits rather than five declaring it individually. If that is the intent, the schemas are a reasonable placeholder — but they should probably not be visible in the UI until the feature exists.

Happy to do the removal across all five in one PR if you want option 1 — it is mechanical and I can verify each plugin still renders identically afterwards.

Supersedes the plugin-specific part of #377, which also covers tree_size on christmas-countdown separately. Documented as non-functional in #379 and #381 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