diff --git a/frontend/src/pages/AssistantChatPage.tsx b/frontend/src/pages/AssistantChatPage.tsx index 1f675727..b3d40d3a 100644 --- a/frontend/src/pages/AssistantChatPage.tsx +++ b/frontend/src/pages/AssistantChatPage.tsx @@ -259,6 +259,10 @@ export default function AssistantChatPage() { }, []) const handleNewChat = async () => { + // Invalidate currentChatRef BEFORE the await so any in-flight handleSend/handleTaskSubmit + // for the previous session sees a mismatch and bails — prevents stale task lane appearing + // in the new empty session (same pattern as selectChat, which sets ref before its await). + currentChatRef.current = null // Clear stale state immediately — don't wait for API to return setShowTaskLane(false) setActiveQuestions([]) @@ -436,6 +440,8 @@ export default function AssistantChatPage() { } const handleResumeNew = async (summary: string) => { + // Invalidate currentChatRef BEFORE the await — same guard as handleNewChat + currentChatRef.current = null // Clear stale state immediately — don't wait for API to return setShowTaskLane(false) setActiveQuestions([])