🔻 fix: Role and System Message Handling for ChatGPT Imports #9524
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Closes #9505
Closes #9491
I fixed bugs in the ChatGPT import functionality that were causing incorrect sender assignment and broken conversation flows when encountering system messages.
findNonSystemParent
helper function to traverse parent hierarchy and skip system messages when establishing parent-child relationshipsChange Type
Testing
I added comprehensive unit tests that verify the fixes work correctly:
Test Configuration:
Sender Assignment Test: Validates that user messages retain 'user' sender and assistant messages get correct GPT-4/GPT-3.5 sender based on model, covering multiple model types (gpt-4, gpt-4o-mini, gpt-3.5-turbo).
System Message Handling Test: Creates a conversation with a system message between assistant and user messages, then verifies the parent-child relationships remain intact by checking that the second user message correctly references the first assistant message as its parent rather than being orphaned.
Checklist