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