[Fix] Make channelData optional in ConversationUpdateActivity #243
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.
Fixes #239
Summary
Make
channel_dataoptional inConversationUpdateActivityto support Direct Line API 3.0, which sendsconversationUpdateactivities without thechannelDatafield. This fixes validation errors when receiving messages from Direct Line.Problem
When using Direct Line API 3.0 with the Teams SDK for Python, Direct Line automatically sends
conversationUpdateactivities withoutchannelDatawhen starting a conversation. The Teams SDK required this field, causing Pydantic validation errors:Changes
channel_dataoptional inConversationUpdateActivity- Removed the required field override, allowing it to inherit the optional definition from the base classactivity.channel_data is not None) before accessingevent_typein 13 selectors to prevent AttributeErrorTest Results
Files Changed
packages/api/src/microsoft_teams/api/activities/conversation/conversation_update.pypackages/apps/src/microsoft_teams/apps/routing/activity_route_configs.pypackages/api/tests/unit/test_conversation_update_directline.py(new)packages/apps/tests/test_conversation_update_routing.py(new)🤖 Generated with Claude Code