feat: sequences and playlists that know which rig they are for - #122
Merged
Conversation
Looks declare what they need (any / grid / ring / named layout), so sequences and playlists list everything with the entries this rig cannot show marked rather than hidden, and filter chips (All / 7x7 / Grace / Nova) judge presets against a chosen rig. Ships Nova amber and Grace shows, plus the trans looks existing sequences referenced but never had. Audio defaults to energy + replace, and the range slider track starts light enough to read.
Contributor
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Sequences and playlists were built for the 7×7: hardcoded animation/scene lists and three presets whose steps (
heart-breathe,i-heart-sf) mean nothing on a ring. Both surfaces now come from a shared registry, and each look declares what it needs rather than carrying a geometry hash — a hash answers "which rig is this?", which is the question the layout ID already answers, and it can't say the heart is meaningless on a ring.Nothing is hidden:
looksForLayout(layout)andshowPresetsForLayout(layout, kind)return everything, fitting entries first, each carrying areasonthe UI shows and dims by. An operator can still run a mismatched preset — they know more about the room than the layout does.Filter chips (All / 7×7 / Grace / Nova) pick the rig presets are judged against, using the real generators (
presets['grid-7x7'](),presets['grace-cathedral'](),presets.nova()) so there's no second description of a rig to drift.Alljudges against the layout actually running, from/api/config— which is what removes the baked-in 7×7 assumption.Pre-populated in
SHOW_PRESETS: generic shows (solid vibes, pride, ambient, high energy), 7×7 (heart night, SF showcase), Nova amber (amber hour, slow burn, circle, house lights, chase), and Grace (vigil, rose, playlist) — as both sequences and playlists.Two fixes fell out of building it:
trans-flow/trans-breathe/trans-ringwere referenced by existing sequence definitions but never registered, so those steps were silently dead. Implemented, and a test now asserts every preset step resolves to a real animation or scene, plus that the catalog and the registries never drift apart.energy+replace(wasplasma+brighten), and the range slider track starts at#4a4a63instead of near-background#1a1a2aso the travel is visible.Link to Devin session: https://app.devin.ai/sessions/ec43152136134467a853ec0bbf783ea9
Requested by: @pyramation