From ad10f9bc6157f341affd20d2972988b543d3cc84 Mon Sep 17 00:00:00 2001 From: derekc Date: Fri, 27 Feb 2026 23:43:04 -0800 Subject: [PATCH] Fix End Day not updating dashboard without refresh Broadcast is_active in WS timer payload so the frontend can immediately clear the session when the backend marks it complete. Co-Authored-By: Claude Sonnet 4.6 --- backend/app/routers/sessions.py | 1 + frontend/src/stores/schedule.js | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/backend/app/routers/sessions.py b/backend/app/routers/sessions.py index c463916..2ae8b5a 100644 --- a/backend/app/routers/sessions.py +++ b/backend/app/routers/sessions.py @@ -153,6 +153,7 @@ async def timer_action( "session_id": session.id, "block_id": event.block_id, "current_block_id": session.current_block_id, + "is_active": session.is_active, } await manager.broadcast(session.child_id, ws_payload) diff --git a/frontend/src/stores/schedule.js b/frontend/src/stores/schedule.js index 0b45669..838de7b 100644 --- a/frontend/src/stores/schedule.js +++ b/frontend/src/stores/schedule.js @@ -31,6 +31,11 @@ export const useScheduleStore = defineStore('schedule', () => { applySnapshot(event) return } + // Session ended + if (event.is_active === false) { + session.value = null + return + } // Timer events update session state if (event.current_block_id !== undefined && session.value) { session.value.current_block_id = event.current_block_id