@@ -860,15 +860,18 @@ class ChatStore {
860
860
this . currentResponse = '' ;
861
861
862
862
try {
863
- const assistantMessage = await this . createAssistantMessage ( ) ;
863
+ const parentMessageId =
864
+ this . activeMessages . length > 0
865
+ ? this . activeMessages [ this . activeMessages . length - 1 ] . id
866
+ : null ;
867
+
868
+ const assistantMessage = await this . createAssistantMessage ( parentMessageId ) ;
864
869
865
870
if ( ! assistantMessage ) {
866
871
throw new Error ( 'Failed to create assistant message' ) ;
867
872
}
868
873
869
874
this . activeMessages . push ( assistantMessage ) ;
870
- await DatabaseStore . updateCurrentNode ( this . activeConversation . id , assistantMessage . id ) ;
871
- this . activeConversation . currNode = assistantMessage . id ;
872
875
873
876
const conversationContext = this . activeMessages . slice ( 0 , - 1 ) ;
874
877
@@ -1124,8 +1127,10 @@ class ChatStore {
1124
1127
( m ) => m . role === 'user' && m . parent === rootMessage ?. id
1125
1128
) ;
1126
1129
1127
- await DatabaseStore . updateCurrentNode ( this . activeConversation . id , siblingId ) ;
1128
- this . activeConversation . currNode = siblingId ;
1130
+ const currentLeafNodeId = findLeafNode ( allMessages , siblingId ) ;
1131
+
1132
+ await DatabaseStore . updateCurrentNode ( this . activeConversation . id , currentLeafNodeId ) ;
1133
+ this . activeConversation . currNode = currentLeafNodeId ;
1129
1134
await this . refreshActiveMessages ( ) ;
1130
1135
1131
1136
// Only show title dialog if we're navigating between different first user message siblings
0 commit comments