fix(signage): remember remote pause and retry template loads - #528
Conversation
- Overlapping single-pass takeovers clear only after the playlist that owns the last valid item reports a full pass. - Remember a remote pause. Players that start while paused stay paused, and the background does not resume after a takeover. - Load each template on its own and retry failed templates, plugins and backgrounds with a capped backoff. - Ignore a cleared debug time input, share the debug storage key, and pin the floating layout default in a test.
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
A retry where every template, or the background, failed to load cleared content an earlier attempt had shown, leaving the screen blank until the next attempt. Failed parts of a load now keep what is on screen. Content is cleared only when the mappings become empty.
|
Deployment failed for project frontend-templates with the following error: Learn More: https://vercel.com/placeos?upgradeToPro=build-rate-limit |
| non_merge.filter(({ mapping }) => mapping.schedule).at(-1) || | ||
| non_merge[0] || | ||
| merge.shift(); | ||
| if (!base) return false; |
There was a problem hiding this comment.
Old content survives assignment changes
When the assigned template changes from A to B and B fails to load, this return leaves A on screen even though it is no longer assigned. If B loads but its background fails, the page shows B over A’s old background. Retries can leave that wrong content visible indefinitely. Keep working content on a retry of the same assignment, but not after the assignment changes.
There was a problem hiding this comment.
Fixed in 4f90cec. Content is now kept only on a retry of the same assignment: _shown_load_id records which load put the template on screen, and _load_id changes only when the mappings change. If no template loads and what is on screen came from other mappings, the template and background are cleared. A background that fails to load is kept only when it is still the template's background_item_id. Tests: "clears a template that is no longer assigned when the new one fails" and "clears the old background when the new template background fails". The same-assignment retry tests still pass.
…nment Keeping content after a failed load also kept a template, or a background, that was no longer assigned. Content is now kept only when it came from the same mappings, and a background only when it is still the template's background. Otherwise a failed load clears it.
A floating panel with no saved position now defaults to 0, 0, so it fills the frame. The player makes the same change in #528.
A floating panel with no saved position now defaults to 0, 0, so it fills the frame. The player makes the same change in #528.
Three issues in the player panel and templates:
playlist_throughcleared it, cutting the second short.Changes
signage.component.ts:remote_pausedstate (also insignage.state()) pauses any player that starts while paused, and keeps the background paused during a takeover.template.component.ts: templates load withallSettled. Template, plugin and background failures retry after 15 s, doubling to 5 min. Changing the mappings cancels the retry, and loads that finish after destroy are ignored.DEBUG_STORAGE_KEY, a cleared debug time input is ignored, and newDEBUGGING.mdrows.Testing
nx test signage(424) andnx build signagepass.Notes
Independent of the other signage PRs from this review. Based on
develop.Changes made by Claude Opus 5.5 (1M context) in Claude Code, running in T3 Code.
🤖 Generated with Claude Code