From db3694d9cf72e62b33ee05bc1cbac5b28307e34d Mon Sep 17 00:00:00 2001 From: pyr0ball Date: Mon, 18 May 2026 18:51:56 -0700 Subject: [PATCH] fix(m1): wrap onMounted drain in try/catch so listen is always set up --- src/components/ChatPanel.vue | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/components/ChatPanel.vue b/src/components/ChatPanel.vue index 4a09c9d..3ec94b7 100644 --- a/src/components/ChatPanel.vue +++ b/src/components/ChatPanel.vue @@ -46,13 +46,16 @@ const messagesEl = ref(null) let unlisten: UnlistenFn | null = null onMounted(async () => { - // Drain any events that fired while the panel was closed - const pending = await invoke('get_pending_events') - for (const e of pending) { - pushRobinEvent(e) + try { + const pending = await invoke('get_pending_events') + for (const e of pending) { + pushRobinEvent(e) + } + } catch (err) { + console.warn('Robin: failed to drain pending events:', err) } - // Listen for live events while panel is open + // Always set up the live listener, even if drain failed unlisten = await listen('robin:event', ({ payload }) => { pushRobinEvent(payload) })