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);
(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