Repository navigation
fix(status): broadcast cue names after load on the :9190 channel (869fedahu) - #28
Merged
Merged
Conversation
One /engine/status/cue_name/<uuid> per cue after the load status, replayed to late joiners, emptied on unload; a second load without unload replaces the map (duplicated projects share cue uuids). Pure unit tests, safe on a live rig.
…fedahu)
The UI named the engine's next cue from whatever project its own page had
loaded, so a tab viewing X while the engine held Y showed a raw uuid. The
controller already pushes cue status and enabled flags per cue; the name is
the missing member of that family.
- cue_names built at load from the script (same walk as _collect_cue_ids;
item.get("name"), None -> "")
- one /engine/status/cue_name/<uuid> per cue, sent AFTER set_status("load"):
duplicated projects share cue uuids, so clients treat a change of load as
"new table" and refill it from this burst
- replayed in _on_ws_client_connect after cue_enabled, before mixer
- emptied on unload; nothing is sent then (clients clear on load "")
- "Cue names initialised for N cues" next to the cue status line
Node engine untouched. Verified on test2 (rc6-2+nodeadopt1 base): wire
capture order, late join, X->Y without unload, unload; full suite 1057 passed.
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.
What
The controller now sends one
/engine/status/cue_name/<uuid>(string) per cue of the loaded script, replays them to late-joining WebSocket clients, and empties the map on unload. Companion to the UI change in stagesoft/cuems-frontendfix/869fdvdk3-show-loaded-project.Why
The UI names the engine's next cue from a uuid→name table that only the page on screen filled. GO plays the project the engine holds, so a tab viewing X while the engine held Y showed a raw uuid. The engine already pushes
cue/andcue_enabled/per cue; the name is the missing member of that family.Contract (clients)
/engine/status/load <project>(unlikecue/andcue_enabled/, which precede it). Duplicated projects share cue uuids, so a client must treat a change ofloadas "new table" and refill it from the burst that follows.cue_enabled/, beforeaudio/mixer/.load "".Cue names initialised for N cuesnext to the cue-status line.Scope
ControllerEngine.pyonly. Node engine, NNG, OSCQuery untouched. Old UIs ignore the address (it falls through their switch); new UI + old engine keeps today's page-fed behaviour.Verification
tests/test_controller_cue_names.py(9, pure unit): walk incl. nested CueLists, burst afterload, two loads without unload, late join order, unload, UTF-8 round trip, existing bursts untouched. Full suite 1057 passed on test2 (engine idle).rc6-2+nodeadopt1, file patched in site-packages): journal N = N; wire capture with a WebSocket client: counts, order afterload, late join, X→Y without unload, unload; UI drills with two/three tabs incl. a duplicated pair with a renamed cue. Restored byte-exact afterwards,dpkg --verifyclean.Notes for the merge
feat/project-status-loaded(cdf8fcf, headed torc_1) touches the sameload_projecthunk (it blanksloadat the start of a load). Whichever lands second rebases; the burst must stay right afterset_status("load", project_name).Plan + two Opus reviews:
cuems-RELATIONS/Plans/2026-10-08-engine-cue-names-broadcast.md. ClickUp 869fedahu.