Python: Bugfix: issue-3364: detect and preserve custom store state #3378
+75
−8
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.
Motivation and Context
Fix issue-3364: #3364
Description
Intelligently detect and preserve custom store state while maintaining backward compatibility with standard
ChatMessageStore.The key insight is to distinguish between:
typeandmessages[expected] fields → Convert toChatMessageStoreStateobject (existing behavior)redis_url,thread_id) → Keep as dictionary to preserve all dataContribution Checklist
Test Update Required
One test needs updating:
test_init_with_chat_message_store_state_no_messages(line 448 intests/core/test_threads.py)Why: This test uses Redis store data (with custom fields like
thread_id,redis_url) but expects the state to be converted to aChatMessageStoreStateobject with.messagesattribute. With our fix, custom store states are correctly preserved as dictionaries to retain all configuration.