Repository navigation
Highlights
- Respond inside the thread of the message a user acted on in 1:1 chats, in addition to channels.
ctx.sendandctx.replyplace responses for you, and Plan completion lands in the same thread (#968, #980). - Add
Plan,Step,StepSourceandPlanInfoEntity, withctx.plan()for showing progress while your agent works (#966). - Mark a message or an individual citation with a Microsoft Purview sensitivity label by its label ID (#976).
- Let HTML widgets send their own handshake and report their own height (#977).
- Targeted messages are now generally available (#959).
- Replace Socket Mode sockets gracefully and drain in-flight work, with a simplified public options surface (#957, #967).
- Socket Mode (experimental). Develop new agents without exposing a public HTTP endpoint—receive activities over outbound WebSocket connections. (#716, #875).
- List and download pasted inline images through
ctx.files(#937). - Let agentic users receive files shared with them (#887).
- Extended markdown text format is now generally available (#934).
Deprecations, removals, and migration notes
- Socket Mode options (experimental):
startupTimeout,readinessTimeout,reconnectDelays,keepAliveIntervalandserverTimeoutare removed. OnlynegotiateBaseUrlandgeosremain. Remove any assignments to the removed options. Defaults and retry behavior are unchanged (#967). - HTML widgets (preview):
injectWidgetProtocol,IInjectWidgetProtocolOptionsandIHtmlWidgetMarkdownOptions.protocolOptionsare removed. Widget markup is now sent as authored, so your widget must sendui/initializeandui/notifications/initializeditself and report its size withui/notifications/size-changed(#977). - Stream stop button removed:
StreamCancelledError,IStreamer.canceledandHttpStream.canceledare deprecated, andcanceledalways returnsfalse. Remove any handling that depends on them. Streaming now follows the service's 10-minute time limit, up from 2 minutes (#975). ctx.replyquoting:ctx.replyquotes the inbound message only when its id is a plain numeric message id. In card, dialog and feedback handlers it now sends without a quote instead of failing with HTTP 400.ctx.quoteandctx.sendare unchanged (#971).- Sensitivity labels:
CitationUsageInfois deprecated in favor ofSensitivityUsageInfo. CitationusageInfois now typed asSensitivityUsageInfo, so code that readsnameordescriptionfrom it should handleundefined(#976). - Threading (experimental):
ConversationActivityClient.createReplyChainandcreateTargetedReplyChainare markedExperimentalTeamsThreadingand may change.ctx.sendandctx.replyare stable and place responses in the right thread automatically. Apps that persist Plan state should savereplyChainwith it so a rebuilt Plan completes in the same thread (#968, #980). withReplyToId()removed:ActivityInput.withReplyToId()is removed. Usectx.quote()oraddQuote()on a message activity to reply pointing to a specific message. When set on an outbound activity,replyToIdhad no effect on threading (#905).- Sign-in listeners are awaited:
app.event('signin')listeners now run inside the turn, soctx.stateis live and writes are persisted instead of throwingTurnStateSealedError(#862). @azure/msal-browser5:@microsoft/teams.clientnow depends on@azure/msal-browser5 (previously 4), which is a major version bump for browser apps that import MSAL directly (#947).
What's Changed
Features & Improvements
- Update the threading endpoint and add threading support for 1:1 chats by Corina (@corinagum) in #968
- Post Plan completion to the reply chain in 1:1 threads by Corina (@corinagum) in #980
- feat: add support for plans and steps by Lily Du (@lilyydu) in #966
- Add Purview sensitivity labels to agent messages by Corina (@corinagum) in #976
- feat: HTML widgets send their own handshake and height by Corina (@corinagum) in #977
- feat(apps): inbound Socket Mode transport by Kavin (@singhk97) in #716
- List and download pasted inline images through
ctx.filesby Corina (@corinagum) in #937 - Let agentic users receive files by Corina (@corinagum) in #887
- Mark extended markdown text format as generally available by Corina (@corinagum) in #934
- Remove
withReplyToId()fromActivityInputby Corina (@corinagum) in #905 - Mark targeted messages as GA by Corina (@corinagum) in #959
- Limit public Socket Mode options to endpoint and geos by teddy arida-moody (@teddyam) in #967
- fix: remove stop button logic for streaming and updates for 10 min timeout by Lily Du (@lilyydu) in #975
Bug Fixes
- fix(apps): stop retrying Socket Mode negotiate on 401/403 and parse envelope metadata by teddy arida-moody (@teddyam) in #875
- fix: validate caller app on Entra inbound Agent ID tokens by Corina (@corinagum) in #935
- fix: await signin event listeners so ctx.state is live and persisted by Lily Du (@lilyydu) in #862
- fix(api): make JoinUrl optional on start and end events by Corina (@corinagum) in #854
- fix: improvements on socket replacement and graceful draining by Lily Du (@lilyydu) in #957
- fix: quote the inbound message in ctx.reply only when its id is a numeric message id by Corina (@corinagum) in #971
Documentation
- docs(socket): note Socket Mode availability on Canary and Pilot1 by teddy arida-moody (@teddyam) in #924
- Remove test-environment references from Socket Mode sample by teddy arida-moody (@teddyam) in #979
- docs: require public API change disclosure in PRs by @Copilot in #972
CI/Chores
- fix: stabilize inline image performance test by Lily Du (@lilyydu) in #970
Dependencies
- chore(deps): bump @azure/msal-browser from 4.29.0 to 5.25.0 by Dependabot (@dependabot)[bot] in #947
- chore(deps): bump openai from 4.104.0 to 7.32.0 by Dependabot (@dependabot)[bot] in #954
- chore(deps): bump camelcase from 9.0.0 to 10.0.0 by Dependabot (@dependabot)[bot] in #964
- chore(deps): bump the npm-security group across 1 directory with 5 updates by Dependabot (@dependabot)[bot] in #969
- chore(deps): bump the npm-minor-patch group across 1 directory with 19 updates by Dependabot (@dependabot)[bot] in #951
- chore(deps): bump the npm-minor-patch group with 3 updates by Dependabot (@dependabot)[bot] in #953
- chore(deps): bump the npm-minor-patch group with 14 updates by Dependabot (@dependabot)[bot] in #961
- chore(deps): bump the npm-minor-patch group across 1 directory with 15 updates by Dependabot (@dependabot)[bot] in #974
- chore(deps): bump step-security/harden-runner from 2.22.1 to 2.22.2 in the github-actions group by Dependabot (@dependabot)[bot] in #960
Full Changelog: v2.1.1...v2.2.0