diff --git a/client/public/version.js b/client/public/version.js index 9612169..13b8d21 100644 --- a/client/public/version.js +++ b/client/public/version.js @@ -1,5 +1,5 @@ // Maintainer-controlled web client version. // Format: YYYY.MM.DD Rn (example: 2026.02.20 R2) -window.CHGRID_WEB_VERSION = "2026.02.22 R161"; +window.CHGRID_WEB_VERSION = "2026.02.22 R162"; // Optional display timezone for timestamps. Falls back to America/Detroit if unset/invalid. window.CHGRID_TIME_ZONE = "America/Detroit"; diff --git a/client/src/main.ts b/client/src/main.ts index f092a3c..7fc8c87 100644 --- a/client/src/main.ts +++ b/client/src/main.ts @@ -210,7 +210,7 @@ let audioLayers: AudioLayerState = { const signalingProtocol = window.location.protocol === 'https:' ? 'wss' : 'ws'; const signalingUrl = `${signalingProtocol}://${window.location.host}/ws`; -const signaling = new SignalingClient(signalingUrl, updateStatus); +const signaling = new SignalingClient(signalingUrl, handleSignalingStatus); const peerManager = new PeerManager( audio, @@ -490,6 +490,11 @@ function toggleAudioLayer(layer: keyof AudioLayerState): void { audio.sfxUiBlip(); } +/** Routes signaling transport status messages through chat buffer + status output. */ +function handleSignalingStatus(message: string): void { + pushChatMessage(message); +} + /** Appends a chat/system line to the bounded status history buffer. */ function pushChatMessage(message: string): void { messageBuffer.push(message); @@ -1081,7 +1086,7 @@ async function reconnectAfterHeartbeatTimeout(): Promise { if (reconnectInFlight || !state.running) return; reconnectInFlight = true; stopHeartbeat(); - updateStatus('Connection stale. Reconnecting...'); + pushChatMessage('Connection stale. Reconnecting...'); disconnect(); try { await connect(); @@ -1205,7 +1210,7 @@ async function onSignalingMessage(message: IncomingMessage): Promise { } await onAppMessage(message); if (restartAnnouncement) { - updateStatus(restartAnnouncement); + pushChatMessage(restartAnnouncement); audio.sfxUiConfirm(); } }