Skip to content

v2.2.0

Latest

Choose a tag to compare

@corinagum corinagum released this 05 Nov 22:44
f71f055

Highlights

  • Respond inside the thread of the message a user acted on in 1:1 chats, in addition to channels. ctx.send and ctx.reply place responses for you, and Plan completion lands in the same thread (#968, #980).
  • Add Plan, Step, StepSource and PlanInfoEntity, with ctx.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, keepAliveInterval and serverTimeout are removed. Only negotiateBaseUrl and geos remain. Remove any assignments to the removed options. Defaults and retry behavior are unchanged (#967).
  • HTML widgets (preview): injectWidgetProtocol, IInjectWidgetProtocolOptions and IHtmlWidgetMarkdownOptions.protocolOptions are removed. Widget markup is now sent as authored, so your widget must send ui/initialize and ui/notifications/initialized itself and report its size with ui/notifications/size-changed (#977).
  • Stream stop button removed: StreamCancelledError, IStreamer.canceled and HttpStream.canceled are deprecated, and canceled always returns false. Remove any handling that depends on them. Streaming now follows the service's 10-minute time limit, up from 2 minutes (#975).
  • ctx.reply quoting: ctx.reply quotes 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.quote and ctx.send are unchanged (#971).
  • Sensitivity labels: CitationUsageInfo is deprecated in favor of SensitivityUsageInfo. Citation usageInfo is now typed as SensitivityUsageInfo, so code that reads name or description from it should handle undefined (#976).
  • Threading (experimental): ConversationActivityClient.createReplyChain and createTargetedReplyChain are marked ExperimentalTeamsThreading and may change. ctx.send and ctx.reply are stable and place responses in the right thread automatically. Apps that persist Plan state should save replyChain with it so a rebuilt Plan completes in the same thread (#968, #980).
  • withReplyToId() removed: ActivityInput.withReplyToId() is removed. Use ctx.quote() or addQuote() on a message activity to reply pointing to a specific message. When set on an outbound activity, replyToId had no effect on threading (#905).
  • Sign-in listeners are awaited: app.event('signin') listeners now run inside the turn, so ctx.state is live and writes are persisted instead of throwing TurnStateSealedError (#862).
  • @azure/msal-browser 5: @microsoft/teams.client now depends on @azure/msal-browser 5 (previously 4), which is a major version bump for browser apps that import MSAL directly (#947).

What's Changed

Features & Improvements

Bug Fixes

Documentation

CI/Chores

Dependencies

Full Changelog: v2.1.1...v2.2.0