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:
- 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.
- 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.
Summary
Five plugins declare
transition.*settings inconfig_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
.pyfile in its directory:nfl-draftlooked 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 atransitionconfig key, and there is no implementation offade,slide,wipe,dissolveorpixelateanywhere.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 separatehigh_performance_transitionsboolean, also unreadweb-ui-info:redraw,fade,slide,wipeEach also carries
transition.speed("1=slow, 10=fast") andtransition.enabled.Suggested fix
Either is reasonable, and it is one decision covering all five:
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.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_sizeon christmas-countdown separately. Documented as non-functional in #379 and #381 in the meantime.