Skip to content

v2.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 13 Aug 18:39
· 4 commits to main since this release
983bdbd

Changes published to npm after v1.11.6

GitHub Release automation started with v2.0.0. Versions 1.11.7 and 1.11.8 were published to npm without corresponding GitHub Releases, so their changes are included here for continuity.

1.11.8 - 2026-01-29

  • Fixed: Corrected conversational survey handling when a customer ends a conversation in React Native.
  • Security: Fixed eight npm audit vulnerabilities.
  • Security: Upgraded @babel/helpers, brace-expansion, js-yaml, and ESLint to patched versions.
  • Changed: Updated @microsoft/ocsdk to 0.5.21.
  • Changed: Upgraded the TypeScript ESLint packages and added the globals development dependency.
  • Changed: Migrated to the ESLint 9 flat configuration and removed obsolete disable directives.
  • Changed: Added a pull-request build step to detect TypeScript compilation errors before merge.

1.11.7 - 2026-01-23

  • Added: Added edited-message handling to ChatSDK.onNewMessage().
  • Added: Added ChatSDK.getPersistentChatHistory() for authenticated chats.
  • Added: Added V2 data-masking coverage, including the parallel-initialization path.
  • Added: Added failure logging for file-attachment downloads.
  • Fixed: Corrected SDK version information for React Native and other bundled platforms.
  • Fixed: Corrected chat-token refresh timer cleanup to avoid a potential infinite loop.
  • Fixed: Prevented data-masking crashes from invalid or zero-width regular expressions.
  • Changed: Migrated package-lock.json from lockfile version 2 to version 3.
  • Changed: Parallelized survey-invite link requests in getPostChatSurveyContext().
  • Changed: Removed V1 onAgentEndSession logic.
  • Changed: Updated @microsoft/omnichannel-amsclient to 0.1.12 and @microsoft/ocsdk to ^0.5.20.

Breaking

  • Raised the supported consumer runtime to Node.js >=22.12.0, matching the remediated OC SDK and AMS client dependencies. This support-policy change requires a major release.

Added

  • Added onStreamingMessage public API for progressive bot message rendering via ACS streaming
  • Added OmnichannelStreamingMessage, StreamingMetadata, PolicyViolation, OnStreamingMessageOptionalParams exported types
  • Added streaming message telemetry events: StreamingMessageReceived, StreamingDuplicateFinal, StreamingChunkNoContent, StreamingChunkAfterFinal, StreamingPolicyViolation, StreamingMetadataMissingType, StreamingFinalMissingReason, StreamingCounterEvicted, StreamingHandlerThrew, StreamingHandlerAsyncRejected
  • Added StreamingMessagePrinter for structured telemetry logging of streaming events
  • Added duplicate final detection and LRU-bounded sequence counter management in createOmnichannelStreamingMessage
  • Added getUnreadMessageCount public method to fetch unread message count for authenticated users (auth-only, pre-session badge use case)
  • Added sendReadReceipt public method to mark messages as read (authenticated: via MRT, unauthenticated: via ACS directly)
  • Added sendReadReceipt to ACSClient for direct ACS read receipt delivery (unauthenticated path)
  • Added GetUnreadMessageCount and SendReadReceipt telemetry events
  • Added SendReadReceiptFailure, SendReadReceiptInvalidParams, UnreadMessageCountRetrievalFailure to ChatSDKErrorName enum
  • Added throw helpers in exceptionThrowers.ts for read receipt error handling
  • HTTP error mapping: 404 → InvalidConversation, 400 → SendReadReceiptInvalidParams, others → retrieval/send failure
  • Added en-AU (Australian English) locale code 3081 to locale mapping

Changed

  • Standardized local, pull-request, release, and consumer runtime support on Node.js >=22.12.0.
  • Updated @microsoft/ocsdk to 0.6.0 and @microsoft/omnichannel-amsclient to 0.2.0.
  • Hardened official releases with tag validation, scoped GitHub permissions, and one tarball shared by npm and GitHub Releases.
  • Added public migration guidance and API examples for streaming messages and read-state APIs.
  • Added a complete 2.0.0 migration, validation, deployment, and rollback guide.
  • Documented streaming and read-state prerequisites for the new public APIs.
  • Replaced the obsolete release-agent prompt with the canonical pull-request and tag workflow.
  • Removed unused direct Axios, form-data, and follow-redirects dependencies; the remediated OC SDK now owns the patched HTTP dependency floor.
  • Removed the obsolete brace-expansion override after the regenerated lockfile resolved patched dev-only versions.
  • Pinned @microsoft/botframework-webchat-adapter-azure-communication-chat to exact version 0.0.1-beta.8 (removed caret). The previous ^0.0.1-beta.6 range resolved (per semver §11) to the rogue prerelease 0.0.1-beta-1, which ships an older adapter build whose 15s polling watchdog caused a ~15s delay before the first bot reply rendered in LCW. Pinning forces npm to install the intended beta.8 build, which contains the fast-poll fix (iteration <= 45 ? 1000 : delaytm).
  • Added a github.repository guard to release workflows to prevent them from running on forks
  • Switched npm publishing to GitHub Actions OIDC trusted publishing (no NPM_TOKEN needed)
  • Configured dev versions to publish automatically on pushes to main (for example, 1.11.9-main.abc1234)
  • Added the hotfix/** branch trigger to the npm release workflow
  • Published GitHub Releases with changelog notes and the exact npm .tgz for v* tags

Fixed

  • Corrected ACS adapter telemetry to report the installed 0.0.1-beta.8 version.
  • Fixed streaming final messages not delivered to onStreamingMessage when ACS sends them as chatMessageReceived (event 200) instead of streamingChatMessageChunkReceived (event 251)
  • Fixed streamingMessageType never being "start" — ACS sends "streaming" for start events; SDK now overrides to "start" based on event name
  • Preserved backward compatibility by continuing to deliver the final complete message to onNewMessage
  • Fixed an unhandled exception in the WebSocket onNewMessage callback wrapper in OmnichannelChatSDK. Transformation failures are now recorded and the bad message is skipped, which keeps message reception active.
  • Fixed silent error handling in the ACSClient polling path. Message-processing failures now record a MessageProcessingError fail scenario while the polling loop continues.
  • Fixed a null reference in createOmnichannelMessage when the ACS message sender is absent
  • Fixed V2 onNewMessage and getMessages losing the ACS message-type field. The SDK now normalizes signaling and REST values to lowercase text or html.
  • Fixed sendTypingEvent for authenticated and persistent chat when OCClient.sendTypingIndicator() returns 404
  • Fixed prerelease npm publishing by adding --tag latest
  • Used npx npm@11.12.1 to support OIDC trusted publishing
  • Fixed onAgentEndSession firing during customer-initiated endChat()
  • Fixed onAgentEndSession missing agent-ended sessions while the backend state transitions
  • Fixed duplicate onAgentEndSession callbacks
  • Reset the isEndingChat flag at the start of internalStartChat()
  • Added unit coverage for customer-close suppression, agent-close delivery, flag reset, and error cleanup

Security

  • Updated Azure Communication dependencies and constrained vulnerable Axios, form-data, follow-redirects, and Babel runtime dependencies to patched versions through their owning packages and local development overrides.
  • Azure Communication Signaling still declares UUID 8 because no compatible fixed release exists; its only UUID call is uuidv4() without the vulnerable buffer argument. First-party consumers continue to pin UUID 14.