diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index 609a4ae6d..bd378f4b3 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -839,13 +839,15 @@ if (res !== null && res.messages) { // Update chat history with the new messages for (const message of res.messages) { - history.messages[message.id] = { - ...history.messages[message.id], - ...(history.messages[message.id].content !== message.content - ? { originalContent: history.messages[message.id].content } - : {}), - ...message - }; + if (message && message.id) { // Add null check for message and message.id + history.messages[message.id] = { + ...history.messages[message.id], + ...(history.messages[message.id].content !== message.content + ? { originalContent: history.messages[message.id].content } + : {}), + ...message + }; + } } } @@ -1348,7 +1350,7 @@ history.currentId = responseMessageId; // Append messageId to childrenIds of parent message - if (parentId !== null) { + if (parentId !== null && history.messages[parentId]) { // Add null check before accessing childrenIds history.messages[parentId].childrenIds = [ ...history.messages[parentId].childrenIds, responseMessageId @@ -1526,7 +1528,7 @@ : undefined }, - files: files.length > 0 ? files : undefined, + files: (files?.length ?? 0) > 0 ? files : undefined, tool_ids: selectedToolIds.length > 0 ? selectedToolIds : undefined, features: { web_search: webSearchEnabled diff --git a/src/lib/components/common/RichTextInput/AutoCompletion.js b/src/lib/components/common/RichTextInput/AutoCompletion.js index 733ac4975..67907df41 100644 --- a/src/lib/components/common/RichTextInput/AutoCompletion.js +++ b/src/lib/components/common/RichTextInput/AutoCompletion.js @@ -158,14 +158,16 @@ export const AIAutocompletion = Extension.create({ if ( view.state.selection.$head.pos === view.state.selection.$head.end() ) { - view.dispatch( - newState.tr.setNodeMarkup(currentPos, null, { - ...newNode.attrs, - class: 'ai-autocompletion', - 'data-prompt': prompt, - 'data-suggestion': suggestion - }) - ); + if (view.state === newState) { + view.dispatch( + newState.tr.setNodeMarkup(currentPos, null, { + ...newNode.attrs, + class: 'ai-autocompletion', + 'data-prompt': prompt, + 'data-suggestion': suggestion + }) + ); + } } } })