Prevent conversation collision (#1266)
## Motivation When a user switched conversations while a response was still streaming, the streaming content would be written to the currently selected conversation instead of the original one. For streamed image generation, each partial image would be written to the open conversation ## Changes Added helper methods to track and update the correct conversation during streaming: - updateConversationMessage() - Update a message in a specific conversation by ID - syncActiveMessagesIfNeeded() - Sync this.messages from target conversation only if it's active - conversationExists() - Check if a conversation still exists (handles mid-stream deletion) - persistConversation() - Persist a specific conversation to storage - addMessageToConversation() - Add a message directly to a specific conversation ## Why It Works Capturing the conversation ID at the start of the request ensures we know which conversation to update ## Test Plan ### Manual Testing Tested switching conversation during generation across each model type
This commit is contained in: