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;