This commit is contained in:
legop3
2026-07-16 21:36:44 -04:00
parent 9177e53fbf
commit 7bc08af160
21 changed files with 1887 additions and 153 deletions
@@ -20,6 +20,10 @@ const { getState: getHomeAssistantState, homeAssistantEvents } = require('../hom
const { getState: getNeatoState, neatoEvents } = require('../neatoService');
const { getState: getLiftState, liftEvents } = require('../liftService');
const { getState: getKinectState, kinectEvents } = require('../kinectService');
const {
getState: getBalanceBoardState,
balanceBoardEvents,
} = require('../balanceBoardService');
const { getVoteStatus: getOverseerVoteStatus } = require('../overseerControlService');
const { getNickname, nicknameEvents } = require('../nicknameService');
const {
@@ -197,6 +201,7 @@ function buildSession(socket) {
neato: getNeatoState(),
lift: getLiftState(),
kinect: getKinectState(),
balanceBoard: getBalanceBoardState(),
replay: getReplayState(),
replaySources: getReplaySources(socket),
health: getHealthSnapshot(),
@@ -397,6 +402,14 @@ kinectEvents.on('change', () => {
syncAll();
});
balanceBoardEvents.on('change', () => {
// Live load frames use their own Socket.IO room. Only lifecycle transitions
// and captured results reach this listener, keeping session sync inexpensive
// while still making reconnects and completed measurements durable UI state.
logger.info('Balance Board state change; syncing all clients');
syncAll();
});
replayEvents.on('update', () => {
logger.info('Replay cooldown updated; syncing all clients');
syncAll();