From 5022a23aeb9e92c766f1f5e244164b1157f2b6eb Mon Sep 17 00:00:00 2001 From: Gemini AI Date: Sat, 27 Dec 2025 13:10:39 +0400 Subject: [PATCH] fix: flush session persistence on chat unmount to prevent data loss on navigation --- packages/ui/src/components/chat/multix-v2/index.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/ui/src/components/chat/multix-v2/index.tsx b/packages/ui/src/components/chat/multix-v2/index.tsx index 026e628..f803e73 100644 --- a/packages/ui/src/components/chat/multix-v2/index.tsx +++ b/packages/ui/src/components/chat/multix-v2/index.tsx @@ -10,7 +10,8 @@ import { createSignal, Show, onMount, For, onCleanup, batch } from "solid-js"; import toast from "solid-toast"; import { sessions, activeSessionId, setActiveSession } from "@/stores/session-state"; -import { sendMessage, compactSession, updateSessionAgent, updateSessionModelForSession, forceReset, abortSession, loadMessages, fetchSessions } from "@/stores/session-actions"; +import { loadMessages, fetchSessions, flushSessionPersistence } from "@/stores/sessions"; +import { sendMessage, compactSession, updateSessionAgent, updateSessionModelForSession, forceReset, abortSession } from "@/stores/session-actions"; import { addTask, setActiveTask, archiveTask } from "@/stores/task-actions"; import { messageStoreBus } from "@/stores/message-v2/bus"; import { formatTokenTotal } from "@/lib/formatters"; @@ -233,6 +234,8 @@ export default function MultiXV2(props: MultiXV2Props) { onCleanup(() => { clearInterval(interval); scrollContainer?.removeEventListener('scroll', handleScroll); + // Ensure any pending task updates are saved immediately before we potentially reload them + flushSessionPersistence(props.instanceId); }); });