diff --git a/tools/server/public/index.html.gz b/tools/server/public/index.html.gz index 03eba07ff8776..2801319c98d70 100644 Binary files a/tools/server/public/index.html.gz and b/tools/server/public/index.html.gz differ diff --git a/tools/server/webui/src/lib/stores/chat.svelte.ts b/tools/server/webui/src/lib/stores/chat.svelte.ts index e7f59d0117d08..3f9226efeb3b4 100644 --- a/tools/server/webui/src/lib/stores/chat.svelte.ts +++ b/tools/server/webui/src/lib/stores/chat.svelte.ts @@ -860,15 +860,18 @@ class ChatStore { this.currentResponse = ''; try { - const assistantMessage = await this.createAssistantMessage(); + const parentMessageId = + this.activeMessages.length > 0 + ? this.activeMessages[this.activeMessages.length - 1].id + : null; + + const assistantMessage = await this.createAssistantMessage(parentMessageId); if (!assistantMessage) { throw new Error('Failed to create assistant message'); } this.activeMessages.push(assistantMessage); - await DatabaseStore.updateCurrentNode(this.activeConversation.id, assistantMessage.id); - this.activeConversation.currNode = assistantMessage.id; const conversationContext = this.activeMessages.slice(0, -1); @@ -1124,8 +1127,10 @@ class ChatStore { (m) => m.role === 'user' && m.parent === rootMessage?.id ); - await DatabaseStore.updateCurrentNode(this.activeConversation.id, siblingId); - this.activeConversation.currNode = siblingId; + const currentLeafNodeId = findLeafNode(allMessages, siblingId); + + await DatabaseStore.updateCurrentNode(this.activeConversation.id, currentLeafNodeId); + this.activeConversation.currNode = currentLeafNodeId; await this.refreshActiveMessages(); // Only show title dialog if we're navigating between different first user message siblings