TeamsAgentExtension using Teams SDK models and ApiClient#740
Open
tracyboehrer wants to merge 152 commits intomainfrom
Open
TeamsAgentExtension using Teams SDK models and ApiClient#740tracyboehrer wants to merge 152 commits intomainfrom
tracyboehrer wants to merge 152 commits intomainfrom
Conversation
added 27 commits
February 2, 2026 15:45
# Conflicts: # src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/App/TeamsAgentExtension.cs
# Conflicts: # src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/App/TeamsAgentExtension.cs
added 15 commits
April 4, 2026 23:59
… 'using' statements
…ded to the higher level route helpers.
…onsistency across the extension
Contributor
There was a problem hiding this comment.
Pull request overview
Updates TeamsAgentExtension to rely on Microsoft Teams SDK models/clients, removing the legacy Teams extension model + serialization layer and introducing new Teams-specific route builders and analyzers to support the updated routing/extension patterns.
Changes:
- Added Teams-specific route builders (task modules, message extensions, message events, config invocations, meeting events, file consent).
- Removed a large set of legacy Teams models + JSON converters and moved conflicting converters into Dialogs serialization.
- Added Teams SDK dependencies + new Teams analyzers, and adjusted core/builder routing, logging, and serialization behaviors.
Reviewed changes
Copilot reviewed 271 out of 551 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/TaskModules/TaskSubmitRouteBuilder.cs | Add route builder for task/submit invoke using Teams SDK models |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/TaskModules/TaskModulesHandlers.cs | Add handler delegates for task module fetch/submit using Teams SDK types |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/TaskModules/TaskFetchRouteBuilder.cs | Add route builder for task/fetch invoke using Teams SDK models |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Serialization/SerializationInit.cs | Remove legacy Teams serialization initialization/converter registration |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Serialization/Converters/TeamsChannelDataSettingsConverter.cs | Remove legacy Teams JSON converter |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Serialization/Converters/TeamsChannelDataConverter.cs | Remove legacy Teams JSON converter |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Serialization/Converters/TaskModuleResponseConverter.cs | Remove legacy Teams JSON converter |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Serialization/Converters/TaskModuleResponseBaseConverter.cs | Remove legacy Teams JSON converter |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Serialization/Converters/TaskModuleMessageResponseConverter.cs | Remove legacy Teams JSON converter |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Serialization/Converters/TaskModuleContinueResponseConverter.cs | Remove legacy Teams JSON converter |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Serialization/Converters/TaskModuleCardResponseConverter.cs | Remove legacy Teams JSON converter |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Serialization/Converters/TabSubmitDataConverter.cs | Remove legacy Teams JSON converter |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Serialization/Converters/MessagingExtensionAttachmentConverter.cs | Remove legacy Teams JSON converter |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Serialization/Converters/MessagingExtensionActionResponseConverter.cs | Remove legacy Teams JSON converter |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/UserMeetingDetails.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TenantInfo.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TeamsPagedMembersResult.cs | Update back-compat model to use Teams SDK account types |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TeamsMeetingParticipant.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TeamsMeetingMember.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TeamsMeetingInfo.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TeamsChannelDataSettings.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TeamMember.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TeamInfo.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TaskModuleResponseBase.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TaskModuleResponse.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TaskModuleRequestContext.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TaskModuleRequest.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TaskModuleMessageResponse.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TaskModuleContinueResponse.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TaskModuleCardResponse.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TaskModuleAction.cs | Remove legacy Teams model/helper |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TargetedMeetingNotificationValue.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TargetedMeetingNotification.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TabSuggestedActions.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TabSubmitData.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TabSubmit.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TabResponsePayload.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TabResponseCards.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TabResponseCard.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TabResponse.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TabRequest.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TabEntityContext.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TabContext.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/SurfaceType.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/Surface.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/SigninStateVerificationQuery.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/ReadReceiptInfo.cs | Keep back-compat model; convert to file-scoped namespace and update remark/comment |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/OnBehalfOf.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/O365ConnectorCardViewAction.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/O365ConnectorCardOpenUriTarget.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/O365ConnectorCardOpenUri.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/O365ConnectorCardMultichoiceInputChoice.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/O365ConnectorCardImage.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/O365ConnectorCardHttpPOST.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/O365ConnectorCardFact.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/O365ConnectorCardDateInput.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/O365ConnectorCardActionQuery.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/O365ConnectorCardActionBase.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/NotificationInfo.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MessagingExtensionSuggestedAction.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MessagingExtensionResponse.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MessagingExtensionQueryOptions.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MessagingExtensionQuery.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MessagingExtensionParameter.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MessagingExtensionAttachment.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MessagingExtensionActionResponse.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MessageActionsPayloadUser.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MessageActionsPayloadReaction.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MessageActionsPayloadMention.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MessageActionsPayloadFrom.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MessageActionsPayloadConversation.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MessageActionsPayloadBody.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MessageActionsPayloadApp.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MembershipTypes.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MembershipSourceTypes.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MembershipSource.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MeetingTabIconSurface.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MeetingStartEventDetails.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MeetingStageSurface.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MeetingParticipantInfo.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MeetingNotificationResponse.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MeetingNotificationRecipientFailureInfo.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MeetingNotificationChannelData.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MeetingNotificationBase.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MeetingNotification.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MeetingInfo.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MeetingEventDetails.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MeetingEndEventDetails.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/MeetingDetailsBase.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/FileInfoCard.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/FileDownloadInfo.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/FileConsentCardResponse.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/ConversationList.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/ContentType.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/ConfigTaskResponse.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/ConfigResponseBase.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/ConfigResponse.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/ConfigAuthResponse.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/ClientInfo.cs | Remove legacy Teams entity model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/ChannelInfo.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/CacheInfo.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/BotConfigAuth.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/BatchOperationState.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/BatchFailedEntry.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/BatchFailedEntriesResponse.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/AppBasedLinkQuery.cs | Remove legacy Teams model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Microsoft.Agents.Extensions.Teams.csproj | Target net8 and add Teams SDK + analyzer reference; embed resources config |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Messages/MessageUndeleteRouteBuilder.cs | Add message undelete route builder |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Messages/MessageEventRouteBuilderBase.cs | Add shared base for message event routes using Teams channelData eventType |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Messages/MessageEditRouteBuilder.cs | Add message edit route builder |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Messages/MessageDeleteRouteBuilder.cs | Add message soft-delete route builder |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/MessageExtensions/SubmitActionRouteBuilder.cs | Add message extension submitAction invoke route builder |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/MessageExtensions/QueryRouteBuilder.cs | Add message extension query invoke route builder |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/MessageExtensions/MessagePreviewSendRouteBuilder.cs | Add message preview “send” handler route builder |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/MessageExtensions/MessagePreviewEditRouteBuilder.cs | Add message preview “edit” handler route builder |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/MessageExtensions/FetchActionRouteBuilder.cs | Add message extension fetchTask invoke route builder |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/MessageExtensions/AttachmentExtensions.cs | Add attachment conversion helper for Teams message extensions |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Meetings/MeetingStartRouteBuilder.cs | Add meeting start event route builder |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Meetings/MeetingParticipantsLeaveRouteBuilder.cs | Add meeting participant leave event route builder |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Meetings/MeetingParticipantsJoinRouteBuilder.cs | Add meeting participant join event route builder |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Meetings/MeetingEventRouteBuilderBase.cs | Add shared base for meeting event routes |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Meetings/MeetingEndRouteBuilder.cs | Add meeting end event route builder |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Integration/SerializationInit.cs | Add Teams extension serialization init hook (currently empty) |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Integration/HeaderPropagation.cs | Move header propagation attribute into Integration folder |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Errors/ErrorHelper.cs | Add Teams extension-local error definitions |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Constants/TeamsProactiveGlobalServiceUrls.cs | Remove proactive endpoint constants file |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Consent/FileConsentHandlers.cs | Add file consent handler delegate using Teams SDK type |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Consent/FileConsentDeclineRouteBuilder.cs | Add decline route builder for file consent |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Consent/FileConsentAcceptRouteBuilder.cs | Add accept route builder for file consent |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Connector/TimeSpanExtensions.cs | Remove legacy throttling helper |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Connector/ThrottleException.cs | Remove legacy throttling exception |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Connector/RetryAction.cs | Remove legacy retry helper |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Connector/RestTeamsConnectorClient.cs | Remove legacy Teams connector client wrapper |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Connector/ITeamsConnectorClient.cs | Remove legacy Teams connector interface |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Connector/HeaderPropagation.cs | Remove legacy header propagation file (moved) |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Configs/ConfigSubmitRouteBuilder.cs | Add config/submit invoke route builder |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Configs/ConfigRouteBuilderBase.cs | Add shared base for config invoke routes with validation |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Configs/ConfigFetchRouteBuilder.cs | Add config/fetch invoke route builder |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/AttachmentExtensions.cs | Remove legacy attachment conversion helper (replaced by Teams SDK version) |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/AssemblyInfo.cs | Remove legacy Teams serialization init import |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/App/TeamsAttachmentDownloader.cs | Remove obsolete wrapper around M365AttachmentDownloader |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/App/TaskModules/TaskModulesOptions.cs | Remove legacy TaskModules options |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/App/TaskModules/TaskModulesHandlers.cs | Remove legacy task module delegates |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/App/ReadReceiptHandler.cs | Remove legacy read receipt delegate |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/App/O365ConnectorCardActionHandler.cs | Remove legacy O365 connector delegate |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/App/FileConsentCardHandler.cs | Remove legacy file consent delegate |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/App/FeedbackLoopHandler.cs | Remove obsolete feedback loop delegate |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/App/FeedbackLoopData.cs | Remove obsolete feedback loop data types |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/App/ConfigHandlerAsync.cs | Remove legacy config delegate |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams.Analyzers/SignatureRule.cs | Add analyzer signature rule model |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams.Analyzers/Microsoft.Agents.Extensions.Teams.Analyzers.csproj | Add new Teams analyzers project |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams.Analyzers/AnalyzerReleases.Unshipped.md | Add unshipped analyzer rules tracking |
| src/libraries/Extensions/Microsoft.Agents.Extensions.Teams.Analyzers/AnalyzerReleases.Shipped.md | Add shipped analyzer rules tracking |
| src/libraries/Core/Microsoft.Agents.Core/Serialization/ProtocolJsonSerializer.cs | Remove converters that conflict with Teams serialization from core defaults |
| src/libraries/Core/Microsoft.Agents.Core/Models/VideoCard.cs | Add ToMessage convenience method |
| src/libraries/Core/Microsoft.Agents.Core/Models/TokenResponse.cs | Add JsonExtensionData for additional properties |
| src/libraries/Core/Microsoft.Agents.Core/Models/TokenExchangeInvokeResponse.cs | Add JsonExtensionData for additional properties |
| src/libraries/Core/Microsoft.Agents.Core/Models/TokenExchangeInvokeRequest.cs | Add JsonExtensionData for additional properties |
| src/libraries/Core/Microsoft.Agents.Core/Models/ThumbnailCard.cs | Add ToMessage convenience method |
| src/libraries/Core/Microsoft.Agents.Core/Models/ReceiptCard.cs | Add ToMessage convenience method |
| src/libraries/Core/Microsoft.Agents.Core/Models/MessageReaction.cs | Add JsonExtensionData for additional properties |
| src/libraries/Core/Microsoft.Agents.Core/Models/IActivityExtensions.cs | Change MakeTargetedActivity to return IActivity for chaining |
| src/libraries/Core/Microsoft.Agents.Core/Models/HeroCard.cs | Add ToMessage convenience method |
| src/libraries/Core/Microsoft.Agents.Core/Models/Entity.cs | Add JsonExtensionData for additional properties |
| src/libraries/Core/Microsoft.Agents.Core/Models/ConversationAccount.cs | Add JsonExtensionData for additional properties |
| src/libraries/Core/Microsoft.Agents.Core/Models/ChannelAccount.cs | Add JsonExtensionData for additional properties |
| src/libraries/Core/Microsoft.Agents.Core/Models/AudioCard.cs | Add ToMessage convenience method |
| src/libraries/Core/Microsoft.Agents.Core/Models/Attachment.cs | Add JsonExtensionData for additional properties |
| src/libraries/Core/Microsoft.Agents.Core/Models/AnimationCard.cs | Add ToMessage convenience method |
| src/libraries/Core/Microsoft.Agents.Core/HeaderPropagation/HeaderPropagationExtensions.cs | Guard against null HttpClient |
| src/libraries/Core/Microsoft.Agents.Core.Analyzers/Microsoft.Agents.Core.Analyzers.csproj | Track analyzer release notes via AdditionalFiles |
| src/libraries/Client/Microsoft.Agents.Connector/UserAgent.cs | Expose HttpClientExtensions publicly |
| src/libraries/Builder/Microsoft.Agents.Builder/ChannelServiceAdapterBase.cs | Improve invoke processing with warning + default 501 when not handled |
| src/libraries/Builder/Microsoft.Agents.Builder/App/TypeRouteBuilder.cs | Allow TypeRouteBuilder to match any activity when no type specified |
| src/libraries/Builder/Microsoft.Agents.Builder/App/RouteBuilder.cs | Remove extra blank line |
| src/libraries/Builder/Microsoft.Agents.Builder/App/RouteAttribute.cs | Mark RouteAttribute obsolete and fix static method delegate creation |
| src/libraries/Builder/Microsoft.Agents.Builder/App/Route.cs | Expand channelId matching (wildcard + string compare) |
| src/libraries/Builder/Microsoft.Agents.Builder/App/Proactive/Proactive.cs | Switch token handler parsing to RouteBuilder helper |
| src/libraries/Builder/Microsoft.Agents.Builder/App/Proactive/ContinueConversationRoute.cs | Fix static delegate creation and token handler parsing |
| src/libraries/Builder/Microsoft.Agents.Builder/App/MessageRouteBuilder.cs | Default selector for message routes |
| src/libraries/Builder/Microsoft.Agents.Builder/App/InvokeRouteBuilder.cs | Allow InvokeRouteBuilder to match any invoke when no name specified |
| src/libraries/Builder/Microsoft.Agents.Builder/App/IRouteAttribute.cs | Make IRouteAttribute public (for Teams/BotBuilder parity) |
| src/libraries/Builder/Microsoft.Agents.Builder/App/EventRouteBuilder.cs | Allow EventRouteBuilder to match any event when no name specified |
| src/libraries/Builder/Microsoft.Agents.Builder/App/AgentExtensionAttribute.cs | Add attribute for source-generated extension properties |
| src/libraries/Builder/Microsoft.Agents.Builder/App/AgentApplicationOptions.cs | Adjust TurnStateFactory + add HttpClientFactory injection |
| src/libraries/Builder/Microsoft.Agents.Builder/App/AgentApplication.cs | Use derived type name for logger category |
| src/libraries/Builder/Microsoft.Agents.Builder/AgentExtension.cs | Route creation via RouteBuilder instead of custom selector wrapper |
| src/libraries/Builder/Microsoft.Agents.Builder.Dialogs/Serialization/SerializationInit.cs | Add Dialogs serialization init with PersistedState + Array2D converters |
| src/libraries/Builder/Microsoft.Agents.Builder.Dialogs/Serialization/PersistedStateConverter.cs | Move dictionary-of-object converter into Dialogs and target PersistedState |
| src/libraries/Builder/Microsoft.Agents.Builder.Dialogs/Serialization/ArrayExtensions.cs | Move array serialization helpers into Dialogs namespace |
| src/libraries/Builder/Microsoft.Agents.Builder.Dialogs/Serialization/Array2DConverter.cs | Move array converter into Dialogs namespace |
| src/libraries/Builder/Microsoft.Agents.Builder.Dialogs/Prompts/ActivityPrompt.cs | Switch prompt persisted state to PersistedState |
| src/libraries/Builder/Microsoft.Agents.Builder.Dialogs/Microsoft.Agents.Builder.Dialogs.csproj | Add Core analyzers as analyzer reference |
| src/libraries/Builder/Microsoft.Agents.Builder.Dialogs/DialogInstance.cs | Replace state dictionary with PersistedState |
| src/libraries/Builder/Microsoft.Agents.Builder.Dialogs/DialogContext.cs | Initialize dialog instance state as PersistedState |
| Directory.Packages.props | Add Teams SDK package versions and EmbeddedFileProviders version pin |
Files not reviewed (1)
- src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Properties/Resources.Designer.cs: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
...nsions/Microsoft.Agents.Extensions.Teams/MessageExtensions/MessagePreviewSendRouteBuilder.cs
Show resolved
Hide resolved
...nsions/Microsoft.Agents.Extensions.Teams/MessageExtensions/MessagePreviewEditRouteBuilder.cs
Show resolved
Hide resolved
src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Models/TeamsPagedMembersResult.cs
Outdated
Show resolved
Hide resolved
src/libraries/Builder/Microsoft.Agents.Builder/ChannelServiceAdapterBase.cs
Outdated
Show resolved
Hide resolved
src/libraries/Builder/Microsoft.Agents.Builder.Dialogs/Serialization/PersistedStateConverter.cs
Outdated
Show resolved
Hide resolved
src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Integration/SerializationInit.cs
Show resolved
Hide resolved
src/libraries/Extensions/Microsoft.Agents.Extensions.Teams/Errors/ErrorHelper.cs
Outdated
Show resolved
Hide resolved
added 5 commits
April 6, 2026 07:12
# Conflicts: # src/libraries/Builder/Microsoft.Agents.Builder/ChannelServiceAdapterBase.cs
added 2 commits
April 9, 2026 15:27
# Conflicts: # src/Microsoft.Agents.SDK.sln
# Conflicts: # src/tests/Microsoft.Agents.Hosting.AspNetCore/CloudAdapterTests.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 #774
Fixes #288
Fixes #177
TLDR;
TeamsAgentExtensionnow uses the models and clients from Teams SDK. This eliminates almost all Teams related models and client code in Agents SDK.IRouteAttributesfor Teams specific AgentApplication routes.IRouteAttributesin a way consistent with the Teams version.AgentExtensionAttribute+ Analyzer to automatically create and register an AgentExtension and make it available as a property on the AgentApplication subclass.Details
DialogInstance.Stateto use a different type since theDictionaryOfObjectConverterconflicted with Teams serialization. That type was changed toPersistedStateand the converter moved to Dialogs.TeamsActivityHandlerandTeamsAgentExtensionApiClienttoITurnState.Servicesat beginning of turnOnBeforeTurnto set thisSetTeamsApiClientMiddlewareApiClientwould be available fromITurnContext.Serviceswithin a handler andTeamsInfogets the client internally.ITurnContext.GetTeamsApiClientSamples.MessageExtensionsfrom Teams SDK for comparison purposes.ITurnContextextensions:SendTargetedActivityAsyncConversationsRestClientto append query arg for targeted messages when neededActivityTreatmentEntityProtocolJsonSerializer.ToObject<T>will properly handle Teams SDK modelsAgentApplication.AddRoute. They are used internally to implement the various route helper methods. ex.MessageExtensions.OnQueryuses theQueryRouteBuilderto add the route.Cross-SDK compatibility
ActivityTreatmentEntity. However, it was never implemented until now. Teams SDK appears to handle this differently and some schema reconciliation is required.MemberClient.GetAsync. There does not appear to be a paged version.IConversations.GetConversationPagedMembersAsyncand does not use Teams SDK for this operation.ReadReceiptInfoin BF SDK and Agents SDK. Agents SDK retained this model for back-compat. This is used by TeamsAgentExtension and TeamsActivityHandler.ChannelData(aka TeamsChannelData) does not appear to contain information forMeetingas beforeChannelData.PropertiesTo resolve
application/vnd.microsoft.meetingParticipantJoinandapplication/vnd.microsoft.meetingParticipantLeave