diff --git a/tools/server/public/index.html.gz b/tools/server/public/index.html.gz index 4f18a634ce545..4a9efbc2f5af3 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 4a6d3a8c61f60..5a24f3f356677 100644 --- a/tools/server/webui/src/lib/stores/chat.svelte.ts +++ b/tools/server/webui/src/lib/stores/chat.svelte.ts @@ -550,7 +550,6 @@ class ChatStore { await this.updateConversationName(this.activeConversation.id, title); } - const allMessages = await DatabaseStore.getConversationMessages(this.activeConversation.id); const assistantMessage = await this.createAssistantMessage(userMessage.id); if (!assistantMessage) { @@ -560,15 +559,23 @@ class ChatStore { this.activeMessages.push(assistantMessage); // Don't update currNode until after streaming completes to maintain proper conversation path - await this.streamChatCompletion(allMessages, assistantMessage, undefined, (error: Error) => { - if (error.name === 'ContextError' && userMessage) { - const userMessageIndex = this.findMessageIndex(userMessage.id); - if (userMessageIndex !== -1) { - this.activeMessages.splice(userMessageIndex, 1); - DatabaseStore.deleteMessage(userMessage.id).catch(console.error); + const conversationContext = this.activeMessages.slice(0, -1); + + await this.streamChatCompletion( + conversationContext, + assistantMessage, + undefined, + (error: Error) => { + if (error.name === 'ContextError' && userMessage) { + const userMessageIndex = this.findMessageIndex(userMessage.id); + + if (userMessageIndex !== -1) { + this.activeMessages.splice(userMessageIndex, 1); + DatabaseStore.deleteMessage(userMessage.id).catch(console.error); + } } } - }); + ); } catch (error) { if (this.isAbortError(error)) { this.isLoading = false; @@ -810,7 +817,6 @@ class ChatStore { this.currentResponse = ''; try { - const allMessages = await DatabaseStore.getConversationMessages(this.activeConversation.id); const assistantMessage = await this.createAssistantMessage(); if (!assistantMessage) { @@ -821,7 +827,9 @@ class ChatStore { await DatabaseStore.updateCurrentNode(this.activeConversation.id, assistantMessage.id); this.activeConversation.currNode = assistantMessage.id; - await this.streamChatCompletion(allMessages, assistantMessage); + const conversationContext = this.activeMessages.slice(0, -1); + + await this.streamChatCompletion(conversationContext, assistantMessage); } catch (regenerateError) { console.error('Failed to regenerate response:', regenerateError); this.isLoading = false;