From: Aleksander Grygier Date: Fri, 3 Oct 2025 10:51:40 +0000 (+0200) Subject: Fix missing messages on sibling navigation (#16408) X-Git-Tag: upstream/0.0.6764~83 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=84c8e305e8010a1a3d43bdd0a25f737ac67809a4;p=pkg%2Fggml%2Fsources%2Fllama.cpp Fix missing messages on sibling navigation (#16408) * fix: resolve message disappearing issue when navigating between regenerated siblings by using current leaf nodes instead of cached sibling IDs * chore: update webui build output * chore: update webui build output --- diff --git a/tools/server/public/index.html.gz b/tools/server/public/index.html.gz index 03eba07f..2801319c 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 e7f59d01..3f9226ef 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