From 24e02e674f7181b22f2b4e29aa334dcd3b2f4af8 Mon Sep 17 00:00:00 2001 From: jamesread Date: Sun, 10 May 2026 21:49:56 +0100 Subject: [PATCH] Refetch Init after EventConfigChanged for live UI updates Co-authored-by: Cursor --- frontend/js/websocket.js | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/frontend/js/websocket.js b/frontend/js/websocket.js index 0fffb88..bfb6345 100644 --- a/frontend/js/websocket.js +++ b/frontend/js/websocket.js @@ -50,6 +50,27 @@ async function reconnectWebsocket () { }, RECONNECT_DELAY_MS) } +async function refreshInitAfterConfigChange () { + if (!window.client) { + return + } + + try { + window.initResponse = await window.client.init({}) + + if (typeof window.updateHeaderFromInit === 'function') { + window.updateHeaderFromInit() + } + } catch (err) { + console.error('Failed to refresh config from server after EventConfigChanged:', err) + } +} + +async function handleConfigChangedEvent (j) { + await refreshInitAfterConfigChange() + window.dispatchEvent(j) +} + function handleEvent (msg) { const typeName = msg.event.value.$typeName.replace('olivetin.api.v1.', '') @@ -57,8 +78,12 @@ function handleEvent (msg) { j.payload = msg.event.value switch (typeName) { - case 'EventOutputChunk': case 'EventConfigChanged': + handleConfigChangedEvent(j).catch((err) => { + console.error('EventConfigChanged handler failed:', err) + }) + break + case 'EventOutputChunk': case 'EventEntityChanged': window.dispatchEvent(j) break