Skip to content

TeamsAgentExtension using Teams SDK models and ApiClient#740

Open
tracyboehrer wants to merge 152 commits intomainfrom
users/tracyboehrer/teams-api-int
Open

TeamsAgentExtension using Teams SDK models and ApiClient#740
tracyboehrer wants to merge 152 commits intomainfrom
users/tracyboehrer/teams-api-int

Conversation

@tracyboehrer
Copy link
Copy Markdown
Member

@tracyboehrer tracyboehrer commented Mar 9, 2026

Fixes #774
Fixes #288
Fixes #177

This is a breaking change for existing users of the TeamsAgentExtension. This would include both AgentApplication and TeamsActivityHandler based agents.

TLDR;

  • TeamsAgentExtension now uses the models and clients from Teams SDK. This eliminates almost all Teams related models and client code in Agents SDK.
  • Adds IRouteAttributes for Teams specific AgentApplication routes.
  • Adds new BotBuilder IRouteAttributes in a way consistent with the Teams version.
  • Adds a new AgentExtensionAttribute + Analyzer to automatically create and register an AgentExtension and make it available as a property on the AgentApplication subclass.

Details

  • A significant number of file changes are related to removed code
    • Removed Teams Extension models and related unit tests
    • Removed TeamsConnectorClient and related unit tests
    • Removed Microsoft.Agents.Extensions.Teams.AI
    • Removed existing Teams serialization converters
      • Had to modify DialogInstance.State to use a different type since the DictionaryOfObjectConverter conflicted with Teams serialization. That type was changed to PersistedState and the converter moved to Dialogs.
  • Using Teams SDK models in TeamsActivityHandler and TeamsAgentExtension
  • Adding Teams ApiClient to ITurnState.Services at beginning of turn
    • TeamsAgentExtension adds an OnBeforeTurn to set this
    • TeamsActivityHandler-based agents would require SetTeamsApiClientMiddleware
    • In either case, the ApiClient would be available from ITurnContext.Services within a handler and TeamsInfo gets the client internally.
    • Added extension for ITurnContext.GetTeamsApiClient
  • Added Teams Compat and AgentApplication samples
    • Ported Samples.MessageExtensions from Teams SDK for comparison purposes.
  • The following operations do not seem to be supported via Teams SDK and removed from Agents SDK
    • SendMeetingNotificationAsync
    • SendMessageToListOfUsersAsync
    • SendMessageToAllUsersInTenantAsync
    • SendMessageToAllUsersInTeamAsync
    • SendMessageToListOfChannelsAsync
    • GetOperationStateAsync
    • GetPagedFailedEntriesAsync
    • CancelOperationAsync
  • Targeted messages support
    • ITurnContext extensions: SendTargetedActivityAsync
    • Modified ConversationsRestClient to append query arg for targeted messages when needed
    • This relies on the ActivityTreatment Entity
  • Extensions to support conversion to/from key models
    • ChannelAccount
    • MessageReaction
    • Activity
    • ProtocolJsonSerializer.ToObject<T> will properly handle Teams SDK models
  • Added RouteBuilders for Teams routes. These can be used directly by the user via AgentApplication.AddRoute. They are used internally to implement the various route helper methods. ex. MessageExtensions.OnQuery uses the QueryRouteBuilder to add the route.
  • Added IRouteAttributes for all Teams route. Created matching AgentApplication versions for consistency.

Cross-SDK compatibility

  • Teams SDK 2.0.6, Agents SDK 1.5-beta
  • Agents SDK implements a different mechanism for targeted message support. This was negotiated some time back with Teams and defines the ActivityTreatment Entity. However, it was never implemented until now. Teams SDK appears to handle this differently and some schema reconciliation is required.
  • In BF SDK, the TeamsInfo.GetMembers was obsoleted in favor of a paged version. When Agents SDK started, we confirmed with Tatiana that the paged version should be used and the non-paged version dropped.
    • In Teams SDK, the non-paged version is MemberClient.GetAsync. There does not appear to be a paged version.
    • Agents SDK retained the use of IConversations.GetConversationPagedMembersAsync and does not use Teams SDK for this operation.
  • ReadReceipt Activity value does not appear to be defined. Previously this was ReadReceiptInfo in BF SDK and Agents SDK. Agents SDK retained this model for back-compat. This is used by TeamsAgentExtension and TeamsActivityHandler.
  • Teams ChannelData (aka TeamsChannelData) does not appear to contain information for Meeting as before
    • Reading this value from ChannelData.Properties

To resolve

  • The following models did not have a corresponding Teams SDK model and were retained for supporting functionality
    • MeetingParticipantsEventDetails - Activity.Value for application/vnd.microsoft.meetingParticipantJoin and application/vnd.microsoft.meetingParticipantLeave
    • ReadReceiptInfo - read receipt Activity.Value
    • TeamsPagedMembersResult - for paged get members

Tracy Boehrer 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
@github-actions github-actions bot added ML: Samples Tags changes to samples ML: Core Tags changes to core libraries ML: Tests Tags changes to tests labels Mar 9, 2026
@tracyboehrer tracyboehrer marked this pull request as ready for review April 6, 2026 11:40
@tracyboehrer tracyboehrer requested review from a team, ceciliaavila and sw-joelmut as code owners April 6, 2026 11:40
Copilot AI review requested due to automatic review settings April 6, 2026 11:40
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@tracyboehrer tracyboehrer added Teams This is related to Microsoft Teams labels Apr 9, 2026
Tracy Boehrer added 2 commits April 9, 2026 15:27
# Conflicts:
#	src/Microsoft.Agents.SDK.sln
# Conflicts:
#	src/tests/Microsoft.Agents.Hosting.AspNetCore/CloudAdapterTests.cs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ML: Core Tags changes to core libraries ML: Packages ML: Samples Tags changes to samples ML: Tests Tags changes to tests Teams This is related to Microsoft Teams

Projects

None yet

2 participants