fix(desktop): poll the buffer while a scene fade is in flight - #284
Merged
Conversation
A recall writes the buffer from the backend for its whole fade, and the bufferSet events that carry those ticks never reach the webview on iOS — so on a solo desk the lights faded while the faders stayed frozen. The buffer poll previously ran only while a remote peer or guest was connected. recallScene now marks the fade window (the scene's fadeMs plus slack) and kicks the buffer query; useBuffer's refetch interval keeps polling at 200 ms until the window closes, then stops, so an idle solo desk still never polls.
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.
Clicking a scene on a solo desk faded the lights but left the faders frozen on iOS: the fade's
bufferSetticks never reach the iOS webview, and the 200 ms buffer poll from #278 runs only while a remote peer or guest is connected.recallScene(both the scenes panel and the plan desk go through it) now records the fade window — the scene'sfadeMsplus 500 ms slack, defaulting to 2 s on a cache miss — and invalidates the buffer query to start the interval from its idle state.useBuffer'srefetchIntervalis now a function: 200 ms while a peer is connected or a fade is in flight, off otherwise, so the solo idle desk still never polls. The fade clock lives in its own module so the action that sets it and the hook that reads it don't import each other.Frontend-only; all gates green locally.