Skip to content

Releases: microsoft/botbuilder-dotnet

Bot Framework SDK for .NET v4.7

16 Dec 18:58
5759a00
Compare
Choose a tag to compare

v4.7.0

Welcome to the 4.7 release of the Bot Framework SDK for .NET!

Changelog for v4.7.0:

  • Sets CallerId on outgoing activities from the skill [PR 3111]
  • add skill conv ref to turn state and update activity handler [PR 3110]
  • Adding instance when no entities returned [PR 3109]
  • add IsTemplate function [PR 3101]
  • additional error handling [PR 3098]
  • SkillUpdates [PR 3094]
  • [QnAMaker] Support for Ranker type and IsTest in Adaptive and Composer. [PR 3093]
  • add Conditional/True selector tests [PR 3092]
  • add resultProperty [PR 3090]
  • BotFrameworkAdapter: fix samples broken by constructor ambiguity [PR 3088]
  • fix paths in the channel service controller [PR 3087]
  • [QnA Maker] Support for IsTest and RankerType in QnAMaker.getAnswer() [PR 3085]
  • remove unused overload in JwtTokenExtractor [PR 3080]
  • Streaming: Re-enable named pipes [PR 3077]
  • SkillHandler updates using ContinueConversation and package updates [PR 3076]
  • SetPathValue needs to use ResolveMemoryScope() like GetPathValue does [PR 3075]
  • AppCredentials construction: Enable extension of credential construction [PR 3072]
  • support outputFormat as expression [PR 3069]
  • clean up misc warnings.. [PR 3068]
  • throw on expression error for set property value [PR 3067]
  • Change AdaptiveDialog to options as the initial state [PR 3066]
  • OAuthPrompt Updates for Skills [PR 3065]
  • update schema for strictFilters (and add missing top property) [PR 3064]
  • [BotBuilder-DotNet] Add optional logger parameter to Webex and Twilio Adapters [PR 3062]
  • Report error message when importResolver failed to resolve. [PR 3060]
  • Add KeySuffix and CompatibilityMode to CosmosDbPartitionedStorage [PR 3058]
  • use AppId from TurnState instead of out of CredentialProvider [PR 3057]
  • Upgrade Newtonsoft.json for Teams AdaptiveCards scenario [PR 3055]
  • Obsoleted payment schemas [PR 3054]
  • Update DialogManager.cs [PR 3051]
  • Added support for Events in skill responses and namespace updates [PR 3050]
  • Refactor of QnAMaker dialog [PR 3048]
  • support InputDialog.value as an expression [PR 3046]
  • fix escape issue and extract magic code [PR 3045]
  • Implement SetProperties and DeleteProperties [PR 3044]
  • Johtaylo/protocol test project [PR 3042]
  • Cleanup semantics around processing activity in begindialog [PR 3041]
  • Fix namespace on ChannelServiceHandler [PR 3038]
  • Add tests around memory access path [PR 3037]
  • rename internal property to _adaptive [PR 3036]
  • DialogSet dependencies not initialized correctly when created each turn [PR 3032]
  • Fix Warnings in Streaming Tests Codebase [PR 3029]
  • Johtaylo/controller updates [PR 3028]
  • Added unit tests for MessageFactory [PR 3026]
  • Make DialogStateManager non-static configurable and async load/save [PR 3025]
  • Chrimc/kind [PR 3024]
  • Enable BotState to work without serializing types [PR 3023]
  • Update schema to use union instead of unionType. [PR 3022]
  • upgrade newtonsoft package reference [PR 3020]
  • add source location property to dialogs and triggers [PR 3018]
  • LuisRecognizer refactor [PR 3017]
  • Fix multi-lang resource generator enumerate locale blindly [PR 3015]
  • fix file resource bug [PR 3014]
  • Clear activity.id before sending in BotFrameworkAdapter.OnSendActivities [PR 3012]
  • Skill Preview Updates [PR 3006]
  • fix expression escape issue [PR 3005]
  • Fix for CosmosDb test behavior change on netcoreapp3.0 [PR 3002]
  • [Lg] TestMultiExternalAdaptiveCardActivity [PR 2998]
  • [Docs] fix Explanation [PR 2997]
  • Make structured lg fully support Activity/Attachment/CardAction properties/types [PR 2996]
  • make inspection middleware inspect bot traffic within a team [PR 2995]
  • Change $type to $kind and move unit tests to declarative [PR 2994]
  • Consolidate most nuget packages [PR 2990]
  • Small refactoring, fix typos and small bugs [PR 2988]
  • Fixed typos [PR 2987]
  • Fix typo [PR 2986]
  • add attachment in the top level [PR 2985]
  • [Lg] add should fail tests for multi lang [PR 2982]
  • Multi-target all unit tests to core 2.1 and core 3.0 [PR 2980]
  • Set up a stale issues github action [PR 2974]
  • Adds ClaimValidator to AuthtentcationConfiguration [PR 2971]
  • Choice/Confirm Prompt Null locale cherry pick from 4.6 to Master [PR 2965]
  • Fix typo in local variable name emulateOAuthCardsValue [PR 2961]
  • refine activity factory [PR 2957]
  • Adapter updates ahead of GA [PR 2953]
  • remove adaptivecard package from LG [PR 2952]
  • pass on cancellation [PR 2951]
  • [Facebook Adapter] Add Handover Protocol Support [PR 2949]
  • external file reference in Attachment structured [PR 2937]
  • Fix library compat issues. [PR 2935]
  • Stevenic/cherry pick cancellation fix [PR 2933]
  • Skill bug fixes [PR 2926]
  • add capability of handling null in string related built-in functions [PR 2924]
  • IMemory as the interface to Expression [[PR 2923]](https://github.com/microsoft/botbuilder-dotne...
Read more

Bot Framework SDK for .NET v4.6

30 Oct 17:02
Compare
Choose a tag to compare

v4.6.0

Welcome to the 4.6 release of the Bot Framework SDK for .NET!

Bot Framework SDK for Microsoft Teams (GA)

The Bot Framework SDK v4.6 release fully integrates support for building Teams bots allowing users to use them in channel or group chat conversations. By adding a bot to a team or chat, all users of the conversation can take advantage of the bot functionality right in the conversation.

Bot Framework SDK Skills (Preview)

Create a reusable conversational skill to add functionality to a bot. Leverage pre-built skills, such as Calendar, Email, Task, Point of Interest, Automotive, Weather and News skills. Skills include language models, dialogs, QnA, and integration code delivered to customize and extend as required.

Adaptive Dialog (Preview)

Adaptive Dialogs enable developers to build conversations that can be dynamically changed as the conversation progresses. It allows developers to dynamically update conversation flow based on context and events. This is especially handy when dealing with conversation context switches and interruptions in the middle of a conversation.

Language Generation (Preview)

Language Generation enables developers to separate logic used to generate bot's respones including ability to define multiple variations on a phrase, execute simple expressions based on context, refer to conversational memory.

Common Expression Language (Preview)

Common Expression Language allows you to evaluate the outcome of a condition-based logic at runtime information. We provide a common language that can be used across the Bot Framework SDK and conversational AI components, such as Adaptive Dialogs and Language Generation.

Recognizers-Text Updates

Changes in recognized utterances resulting from consuming different versions of Recognizers-Text through BotBuilder-DotNet. See the changes here.

The issues list can be viewed here.

Changelog:

  • Teams members added. [PR 2822]
  • Removed send helpers from turncontext. [PR 2817]
  • Updated to reply to channel scenario. [PR 2816]
  • Removed Recognizer upgrade text from Dialogs lib. [PR 2812]
  • Renamed Prompt -> QnaMakerPrompt [PR 2810]
  • Added square brackets support in structured lg. [PR 2808]
  • Updated to automatically adapt the type of button in structured lg. [PR 2807]
  • Made card/activity type insensitive in structured lg. [PR 2806]
  • Cleaned up dead teams test projects. [PR 2798]
  • Fixed SettingsMemoryScope handling of mapping of arrays in settings. [PR 2797]
  • Updated SkillHostAdapter Constructor. [PR 2793]
  • Updated 'null' response to Invoke when using AspNetCore integration package. [PR 2792]
  • Added in-template comment support. [PR 2790]
  • Fixed regressions in Debugger support. [PR 2781]
  • Rewrote testflow using async/await. [PR 2779]
  • Fixed ObjectPath.GetValue to handle nested property paths. [PR 2778]
  • Ensured memory stream is at position 0 after Body is copied into it. [PR 2772]
  • Applied feedback to have WebexAdapter ready for release. [PR 2770]
  • Applied feedback to have Twilio adapter ready for release. [PR 2769]
  • Set AllowInterruptions property to be an expression instead of string for Adaptive Schema. [PR 2767]
  • Updatde Skills Package to use Preview semver tag. [PR 2764]
  • Implemented auth changes required to handle skills. [PR 2755]
  • Added more comments in structured lg test. [PR 2754]
  • Fixed structured-lg static checker. [PR 2753]
  • Fixed stylecop issue and add message to exception. [PR 2750]
  • Added teamId as an arg to functions [PR 2749]
  • Refactored streaming into adapter. General improvements and quality. [PR 2748]
  • Reverted "Rename some Teams classes and fields". [PR 2747]
  • Updated AdaptiveDialog to execute steps without using recursion. [PR 2745]
  • Added a flag to control the bubbling of cancellation events. [PR 2744]
  • Re-enable rules and fix error level messages. [PR 2742]
  • Addressed Teams hackathon feedback. [PR 2740]
  • Reworked InputDialogs core processing flow. [PR 2735]
  • Updated inspection middleware to pass through trace activities. [PR 2733]
  • Removed old ctor parameter which is not used anymore. [PR 2732]
  • Removed unused folders. [PR 2731]
  • Removed teams folders. [PR 2730]
  • Declarative tests for QnA Maker dialog and some bug fixes. [PR 2729]
  • Added structured lg list reference sample/test. [PR 2728]
  • Fixed empty string as expression issue. [PR 2726]
  • Fixed some small bugs in structured-lg and add more tests. [PR 2724]
  • Fixed Structure LG+ ActivityGenerator should work without Adaptive issue. [PR 2722]
  • Fixed structured-lg don't work when the last line contains space. [PR 2721]
  • Support whitespaces in the middle of "ELSE IF" condition key word. [PR 2717]
  • Added tab support in structuredd lg. [PR 2713]
  • Added sortBy/sortByDescending builtin function. [PR 2711]
  • Changed empty template body from error severity to warning severity. [PR 2710]
  • Fixed @ to resolve to first of array or first of array o arrays. [PR 2708]
  • Class Scope was being returned in Memory Snapshot. [PR 2707]
  • Fixed EventValue initialization from ctor. [PR 2705]
  • Added missed 'throw' keyword in EndDialogAsync method. [PR 2704]
  • Rename some Teams classes and fields. [PR 2703]
  • Consolidated LuisV3 => Luis assembly in LuisV3 namespace. [PR 2702]
  • Fixed props file to only include icon.png reference if you are nuget package. [PR 2701]
  • Removed unneeded namespace. [PR 2700]
  • Some renaming and removal. [PR 2699]
  • Fixed Async, Cleanup all warnings, nuget package definitions iconurl etc. [PR 2698]
  • Updated so any template reference is evaluated once during evaluation of a structured template. [PR 2696]
  • Added more structured-lg test. [PR 2694]
  • Updated schema to reflect supported http methods. [PR 2693]
  • Refactored assemblies. [PR 2692]
  • Remove manifest .zip files. [PR 2691]
  • Updated Microsoft.OAuthInput.schema. [PR 2687]
    -...
Read more

4.5.3

03 Oct 21:25
df981ff
Compare
Choose a tag to compare

This release adds:

  1. Support for certificate authentication for AAD apps
  2. More flexibility around AAD authentication, reducing strong coupling to password-based authentication and laying the foundation to easily support any of the AAD client credential flows down the line.

Details

C# SDK 4.5.3 release enables cert-based authentication of AAD apps. Currently we only support app id + password, but AAD also supports multiple client credential flows, such as using certificates.

image

This is the small first step towards using AppCredentials for AAD verifications, which currently supports Certs or Password, but as-is can simply be extended to support any of the 7 ADAL client flows.

The default paths still use ICredentialProvider and we are enabling AppCredentials for new scenarios. A second iteration will make AppCredentials be the default, but we want to stage that transition to minimize risk.

Bot Framework SDK for .NET v4.5

10 Jul 21:27
71a9528
Compare
Choose a tag to compare

v4.5.0

Welcome to the 4.5 release of the Bot Framework SDK for .NET!

Today, we are happy to announce the Bot Framework Emulator Channel Testing is generally available. This feature enables developers to debug and test your Bot Framework SDK v4 bots on channels like Microsoft Teams, Slack, Cortana, Facebook Messenger, Skype, etc. As you have the conversation, messages will be mirrored to the Bot Framework Emulator where you can inspect the message data that the bot received. Additionally, a snapshot of the bot state for any given turn between the channel and the bot is rendered as well. You can inspect this data by clicking on the "Bot State" element in the conversation mirror.

We also added capabilities for Unit Testing your bots. The Microsoft.Bot.Builder.Testing package simplifies the process of unit testing dialogs in your bot.

As with any release, we fixed a number of bugs, continue to improve LUIS and QnA integration and further clean our engineering practices. There were additional updates across other areas like Language, Prompts, Dialogs, State and Storage.

Review all changes that went into 4.5 in the detailed Change Log

Authentication and Security

  • Exposed AuthenticationConfiguration in BotFrameworkOptions so Asp.NET/Core integrations allow overriding required endorsements [PR 2141]
  • Updates ADAL, passing custom HttpClients through HttpClientFactory for AcquireToken [PR 2115]
  • Added AttemptCount to Activity and OAuth prompts [PR 2061]
  • Corrected how to pass the cancellation token [PR 2034]
  • Disabled the "Live" token refresh tests [PR 1481]
  • Endoresement validation fixes [PR 2030]
  • Removed code detection from OAuth BeginDialog [PR 1850]
  • Allowed the user to specify a tenant when acquiring a token [PR 1576]
  • Updated OAuthPrompt.cs for singin action [PR 1579]
  • Line channel updates [PR 1547]
  • Added UnauthorizedException handling to http adapter [PR 1541]
  • Dialog.ContinueDialogAsync returns by default cancellation token as a result [PR 1404]

Prompts and Dialogs

  • Set DialogSet TelemetryClient in Dialog.run extension [PR 1900]
  • Updated to know the number of attempts inside a validation [PR 1651]
  • ReplaceDialogAsync to formally end active dialog [PR 1555]
  • Optimized repeated code [PR 1540]
  • Updated accuracy from into to float [PR 1525]
  • Removed code duplication DialogContext.EndDialogAsync [PR 1411]

State and Storage

  • Fixed 'PartitionKey value must be supplied for this operation' error [PR 1537]

Connectors and Adapters

  • Added httpclient argument to http integration adapters [PR 1709]
  • Added UserAgent for BotFrameworkAdapter [PR 1643]
  • Fixed binary compat for QnAMaker [PR 1561]
  • Added timeout options for qna & luis for dotnet [PR 1635]
  • Retained binary compatibility for LUIS recognizer [PR 1527]
  • Gov fix for adapter (#1431) [PR 1435]

Testing and Configuration

  • Updated BotStateTests to fix test that was actually not running [PR 2166]
  • Removed LangVersion from csproj files and added it to DirProps [PR 2158]
  • Provided an extension method to add Telemetry with no Config [PR 2136]
  • Created unit tests for TestBot [PR 2084]
  • Updated project settings so it can generate nuget packages for the Testing library [PR 2078]
  • Added new Testing library to Code Coverage Metrics [PR 2075]
  • Added ChannelId constructor parameter to TestAdapter and DialogTestClient [PR 2066]
  • Refactored TestBot so we can unit test it (Unit tests to be added in another PR) [PR 2052]
  • Updated initial DialogTestClient and related classes and tests [PR 2050]
  • Added columns for bot deployment badges [PR 2049]
  • Updated to deploy to Linux on Azure using Azure Pipelines [PR 1961]
  • Configured an endpoint for each bot in TestBot [PR 1946]
  • Added unit test for inspection middleware [PR 1925]
  • Added Unit Test for "No Answer Found in KB" case [PR 1914]
  • Added QnA Telemetry Support [PR 1430]
  • Added new Telemetry Support for Luis Recognizer [PR 1424]
  • Corrected telemetry for QnA no answer found case [PR 1899]
  • Updatee tests to include LUIS and fix bug that would cause crashes on LUIS changes [PR 1939]
  • Fixed the daily functional tests [PR 2026]
  • Included test for #1859 [PR 1911]
  • Added -serviceName parameter [PR 1888]
  • Dropped unknown entity resolutions and test roles [PR 1844]
  • Fixed issues form testing with Teams [PR 1821]
  • Added test for TestBot in Functional Tests project [PR 1807]
  • Made BotState CRUD operations virtual so they can be mocked for testing. [PR 1764]
  • Enabled Sidecar debugging as a core SDK Feature [PR 1758]
  • Updated Readme to include Functional Tests build badge [PR 1665]
  • Removed references to FuseBox keys from Unit Tests [PR 1663]
  • Commented out failing LUIS test [PR 1662]
  • Creation of Functional Test project [PR 1632]
  • Fixed Cosmos DB tests [PR 1616]
  • Fixed testbot - construct LUIS Recognizer correctly [PR 1559]
  • Used CoreBot as the new TestBot [PR 1523]
  • Application Insights config from appsettings.json [PR 1402]

Parity and Refactoring

  • Updates to comments [PR 2189]
  • Added MessageReaction to ActivityHandler [PR 2185]
  • Updated DialogTestClient constructor and XUnitOutputMiddleware renames [PR 2176]
  • Fixed build warnings from recently accepted QnAMaker changes [PR 2172]
  • Made Stylecop errors as warnings [PR 2171]
  • Removed at mention for INSPECT [PR 2159]
  • Fixed documentation error for the release target. [PR 2153]
  • Updated LUIS Recognizer to support GeographyV2, OrdinalV2 and PersonName from LUIS [PR 2139]
  • Added /// comments to files in the Dialogs.Prompts directory. [[PR 2137]](https://github.com/microsoft/botbuilder-do...
Read more

v4.4

02 May 18:36
295c941
Compare
Choose a tag to compare

v4.4.0

Welcome to the 4.4 release of the Bot Framework SDK for .NET!

In this release, the team focused on improving and simplifying message and activities handling. The Bot Framework Activity Schema is the underlying schema used to define the interaction model for bots.

As with any release, we fixed a number of bugs, continue to improve LUIS and QnA integration and further clean our engineering practices. There were additional updates across other areas like Language, Prompts, Dialogs, State and Storage.

Review all changes that went into 4.4 in the detailed Change Log

Authentication and Security

  • Use sign-in action when using OAuth within Teams [PR 1579]
  • Allow the user to specify a tenant when acquiring a token to talk to the BF Connectors [PR 1576]
  • Add UnauthorizedException handling to HTTP adapter [PR 1541]

Language (LUIS, Recognizers, QnA)

  • Add timeout options for QnA & LUIS for .NET [PR 1635]
  • Allow LUIS endpoint to be null or empty [PR 1626]
  • Allow LuisRecognizer to handle textless messages [PR 1566]
  • Fix binary compatibility for QnAMaker [PR 1561]
  • Add method for instantiating new waterfalls [PR 1540]
  • Retain binary compatibility for LUIS recognizer [PR 1527]
  • Telelmetry support for QnA Maker [PR 1430]
  • Telelmetry support for Luis Recognizer [PR 1424]
  • Add Middleware component TelemetryLoggerMiddleware for message event logging [PR 1420]

Prompts and Dialogs

  • Expose the number of attempts inside a validation (issue 1257) [PR 1651]
  • Add ChoiceStyle property to PromptOptions, allowing override [PR 1606]
  • Await EndActiveAsync for dialogs [PR 1555]
  • Remove code duplication in DialogContext.EndDialogAsync [PR 1411]
  • Default null return value for Dialog.ContinueDialogAsync [PR 1404]
  • Fix null Action.Title check in ChoiceFactory [PR 1503]
  • Update exception text for DialogContext [PR 1689]

State and Storage

  • Share HttpClient to OpenIdConnectConfiguration when fetching a document [PR 1625]
  • Update PartitionKey value requirement for CosmosDB [PR 1537]
  • Enable use of other serializing formats and converters [PR 1417]

Integration Layer

  • Add middleware to address transitional location of tenantId field [PR 1754]
  • Add HttpClient argument to HTTP integration adapters [PR 1709]
  • Include the UserAgent when the BotFrameworkAdapter passes a custom HttpClient [PR 1643]
  • Allow TelemetryInitializer properties to be overridden by user [PR 1406]

Connectors and Adapters

  • The SDK4.4 now works correctly with Proxy servers.

General

  • Add ToChannelFromBotLoginUrl for binary compatibility [PR 1615]
  • Allow null Recipient field for CreateTrace and CreateReply [PR 1582]
  • Correct accuracy from float to int in score comparison [PR 1525]
  • Updates to Gov for adapter [PR 1435]
  • Application Insights config from appsettings.json [PR 1402]
  • Line channel updates [PR 1547]

Engineering Excellence (Build, Automation, Testability, Refactoring)

  • Modifications to number of attempts property behavior [PR 1774]
  • Make BotState CRUD operations virtual so they can be mocked for testing [PR 1764]
  • Enabling of Sidecar debugging as a core SDK feature [PR 1758]
  • Add comment header for build [PR 1728]
  • Delete binaries from build folder [PR 1688]
  • Parameterize coveralls files path [PR 1666]
  • Updated Readme to include functional tests build badge [PR 1665]
  • Remove references to FuseBox keys from unit tests [PR 1663]
  • Resolved failing LUIS test [PR 1662]
  • Add ExtractCompressNuGet.ps1 to build [PR 1654]
  • Create of functional test project [PR 1632]
  • Namespace change in Microsoft.Bot.Connector.Tests [PR 1621]
  • Update CosmosDB tests [PR 1616]
  • Fix testbot to construct LUIS Recognizer correctly [PR 1559]
  • Update WebApi to CoreBot [PR 1533]
  • Use CoreBot as the new TestBot [PR 1523]
  • Add documentation comments to ActivityHandler [PR 1516]
  • Fix various doc XML issues [PR 1397]
  • Disable the "Live" token refresh tests [PR 1481]
  • Remove unnecessary & duplicated references [PR 1619]

Conformance and Style Updates

Read more

4.3

04 Mar 18:51
107969e
Compare
Choose a tag to compare
4.3

In this release, the team focused on improving and simplifying message and activities handling. The Bot Framework Activity Schema is the underlying schema used to define the interaction model for bots.

With the 4.3 release, we have streamlined the handling of the most common activity types in the Bot Framework Activity Schema, exposing simple On* methods (OnMessage, OnEvent, OnConversationUpdate, etc.), simplifying the usage of these activities. On top of the activity handling improvements, for C# we have added MVC support, allowing developers to use standard ASP.NET core application and ApiController. We are in the process of updating the docs and samples to reflect these changes.

As with any release, we fixed a number of bugs, continue to improve LUIS and QnA integration and further clean our engineering practices. There were additional updates across other areas like Language, Prompts, Dialogs, Connectors and Adapters.

Review all changes that went into 4.3 in the detailed Change Log. See the list of all issues

V4.3.0

Language (LUIS, Recognizers, QnA)

  • Additional constructor that takes raw LUIS endpoint [PR 1378]
  • Update LUIS to new (Azure) C# SDK [PR 1367]
  • QnAMaker class now throws NotSupportedException for legacy v2.0 of QnA [PR 1345]
  • Fix: Can pass QnAMakerOptions into both constructor and QnAMaker.GetAnswersAsync() w/o unintentional overwrite [PR 1288]
  • Updating OAuthClient API based on latest service swagger [PR 1282]
  • Dialogs.OAuthPrompt.GetUserTokenAsync bugfix [PR 1243]

Prompts and Dialogs

  • Fix a few things regarding choices and actions [PR 1365]
  • Include test for FindChoices as an amendment to PR #1333 which [PR 1350]
  • Port of ComponentDialog search in Parent [PR 1343]
  • Added summary for WaterfallStepContext [PR 1340]
  • Added new HeroCard prompt style for ChoicePrompt as per #1170 [PR 1339]
  • Allow choice recognizer to accept null and empty string [PR 1333]
  • Bug fixes for OAuthCard & Teams, and Task.Run [PR 1329]
  • Fix method signature to eliminate warning [PR 1325]
  • Change 15-hour timeout to 15 minutes (#1307) [PR 1317]
  • in ChoiceFactory use StringBuilder instead of concatenating string [PR 1295]
  • Add implicit constructor to CardAction [PR 1327]

State and Storage

  • Added optimization around CreateIfNotExists and additional error handling [PR 1391]
  • Fixed concurrency and added unit tests [PR 1376]
  • Apply limits to the CosmosDB Key Length [PR 1370]
  • Change accessor to return null not throw with no factory [PR 1330]
  • Fixed state-dependant / order dependant bug in transcript tests [PR 1305]
  • Added new Azure Storage Exclusions [PR 1277]
  • Update WindowsAzure.Storage package reference [PR 1266]

Integration layer

  • Full implementation of ActivityHandler and MVC integration DCR [PR 1358]
  • remove events we don't want right now [PR 1380]
  • Fixing bug around request buffering [PR 1373]
  • Adds code to leave stream open for request body [PR 1352]
  • Add ContinueConversationAsync to IAdapterIntegration [PR 1289]
  • Add ChannelId to initializer [PR 1256]

Connectors and Adapters

  • Fix LINQ error in ActivityHandler conversationUpdate [PR 1396]
  • Fixing misspelled word "activty" to "activity" [PR 1395]
  • ConnectorClient and MicrosoftAppCredentials: Fix assembly binding-level breaking changes [PR 1386]
  • Proxy support: ConnectorClient accepts custom http client and BotFrameworkAdapter passes httpClient over to clients [PR 1382]
  • Add support for ChannelData field [PR 1362]
  • Token refresh: Cherry pick change from 4.2 [PR 1336]
  • Fix for #1255 - Added Skype for Business to channels list [PR 1319]
  • Clean up typos in Activity.cs [PR 1263]

Engineering (Build, Automation, Tests)

  • [Testing] Make Microsoft.Bot.Configuration.Tests netcoreapp [PR 1344]
  • Make the OAuth APIs in .NET testable [PR 1357]
  • Upgrade to NetCore21 for test projects. [PR 1337]
  • Suppress NU1701 for the Azure Project [PR 1334]
  • Consolidated packages across versions. [PR 1324]
  • Move Code Coverage to an explicit include model [PR 1316]
  • Cleanup and Standardization of .csproj files. [PR 1314]
  • Don't warn about docs during standard debug builds [PR 1313]
  • Fix stylecop warnings [PR 1312]
  • Cleanup of NuGet properties across all projects [PR 1311]
  • Updated Subscription key so tests run w/o Corpnet connection [PR 1304]
  • Fixes, mainly for docXML that brakes the docs build. [PR 1250]
  • Various docXML fixes: [PR 1257]
  • Update autorest.csharp dependency to 2.3.82 [PR 1249]
  • Add a configuration helper methods [PR 1363]
  • Update Author attribute for all Nuget packages [PR 1342]
  • Fix transcript logger queue scope [PR 1290]
  • Add validation utilities to BotConfiguration [PR 1262]
  • TranscriptLoggerMiddleware bugfix [PR 1261]
  • Make BotTelemetryClient methods virtual [PR 1238]

4.2.2 BotBuilder Release

28 Jan 17:20
3438b05
Compare
Choose a tag to compare

Release 4.2

In this release, the team focused on critical fixes to our token refresh code for OAuth credential flows with Microsoft Application Ids.

Revamping the token acquisition code that obtains a token given the bot App id and password. This is an effective execution of the OAuth client credentials flow, which is supported by the ADAL dotnet library.

Some implementation details and considerations below to complement the source changes:

Token cache: We use ADAL built-in token cache. Given that Adal handles much of the token caching nowadays, we consider it better to leverage ADAL library implementation, leaving less responsibilities in our code. However, after working with the ADAL team we are still responsible for maintaining low concurrency (done through semaphores in this case) and retrying, using the retry after headers received from AAD when we get HttpStatusCode 429.

Testing: We ran long haul load test, in addition to mini-load tests and unit tests. We were able to reproduce token renewal under extremely high load, and even though there were failures, these were retried and ZERO threads ended up without a token. The longest delay observed in our load test was 600 ms, which happened for a total of 40 requests, then going back to 1 millisecond when reading from cache.

Verifying assumptions Even though the ADAL team recommended limiting concurrency, we removed the semaphore and re-ran the load tests. These results were extremely bad, with latencies up to 5 seconds and multiple failures, confirming ADAL teams' recommendation.

Next steps: We would like to eventually expose the token cache to users so they can provide durable token caches (this is supported by adal). This scenario is awesome for horizontal scaling scenarios where multiple instances share perhaps a redis cache for example.

Coming soon: MSAL library: The ADAL team is working on the MSAL library, which will take care of the concurrency control as well. Eventually we'll move to that. GA for MSAL is coming soon.

Changelog V4.2.2

Token Refresh Revamping

4.2 BotBuilder Release

11 Dec 19:48
5e5512b
Compare
Choose a tag to compare

Release 4.2

In this release, the team focused on enhancing monitoring, telemetry, and analytics capabilities of the SDK by improving the integration with Azure App Insights. We have streamlined the integration and default telemetry emitted from the SDK. This include (Waterfall) dialog instrumentation, docs, and examples for querying data, and a PowerBI dashboard. As with any release, we fixed a number of bugs, continue to improve LUIS and QnA integration and further clean our engineering practices. There were additional updates across the other area like Language, Prompt and Dialogs, and Connectors and Adapters.

Review all changes that went into 4.2 in the detailed Change Log
See the list of all issues

Changelog V4.2.0

Monitoring, Telemetry and Analytics

  • Application Insights build fixes [PR 1221]
  • Application Insights integration : ASP.Net Core review [PR 1168]
  • Renamed Application Insights projects to have ".Integration" in them. [PR 1217]
  • Update Application Insights .Net Core 2 project for packaging [PR 1216]
  • Log TraceTelemetry with Application Insights telemetry [PR 1213]
  • Add DialogSet.SetTelemetryClient(), and modify ComponentDialog [PR 1210]
  • Replace await with ContinueWith in Transcript middleware [PR 1212]
  • Dialog exposing Logger property IBotTelemetryClient [PR 1179]
  • Add WaterfallDialog StartEvent for VA [PR 1198]
  • Telemetry: Add instanceId to WaterfallDialog logging [PR 1196]
  • Add user agent header to QnA calls [PR 1201]
  • Add user agent to LUIS calls [PR 1199]

Language (LUIS, Recognizers, QnA)

  • Add options to individual QnAMaker calls [PR 1200]
  • Role instead of entity type as property name in composites. [PR 1094]

Prompts and Dialogs

  • Fix confirmation prompt exception when locale on activity was empty string [PR 1178]

State and Storage

  • Add Delete function to BotState for parity with JavaScript [PR 1215]
  • Make CosmosDB provider consistent with Blob Storage provider [PR 1181]
  • Fixed force flag on save following clear [PR 1172]
  • Adds integration extensions for IServiceCollection [PR 1103]
  • Obsolete the BotFrameworkOptions::State property [PR 1102]

Connectors and Adapters

  • Allow the service to be null in the response from a CreateConversation call [PR 1193]
  • Update to validate JWT tokens from the emulator [PR 1174]
  • Update connector lib with latest swagger [PR 1078]
  • Add reply conversation ref method to activity [PR 1194]

Engineering (Build, Automation, Tests)

  • Adding 'channelService' property to the bot file's endpoint service type [PR 1163]
  • Update packages and fix compiler warning [PR 1104]
  • Cherry-pick pull request #1076 from 4.1 for US Gov Data centers [PR 1077]
  • Regen Swagger components, add autorest.csharp as a pinned devDependency [PR 1208]

General

  • Change serialization settings so anonymous supported [PR 1096]

Bot Framework Protocol Updates and Government Datacenter Support

05 Nov 23:37
Compare
Choose a tag to compare

The 4.1.5 release incorporates changes to the Bot Framework to support activity
PR #1078

  • duration
  • localtimezone
  • history api

Authentication in the US Government data centers has also been added.

4.1 BotBuilder Release

31 Oct 17:47
Compare
Choose a tag to compare

Release Notes

This page provides release notes for SDK Version 4.1 release. You can find information about daily and stable release here.

Release 4.1 (Oct 31)

In this release the team focused improving engineering practices with better builds, test automation and integration testing. We updated to the latest CosmosDB provider and fix a number of Cosmos DB bugs. There were additional updates across addigional area like Language, Prompt and Dialogs, and Connectors and Adapters.

Change Log

A detailed list of all pull requests that went into a given release is below.

v4.1.0:

Detailed merged pull-requests that went into 4.1.0

Storage providers

  • Rename CosmosDBKeyEscape to CosmosDbKeyEscape [PR 1054]
  • Update CosmosDbStorage.WriteAsync() to not throw if no changes are passed in [PR 1042]
  • Update Cosmos DB tests for empty keys and null keys [PR 1041]
  • Fixes and Updates to the CosmosDB Storage Provider [PR 1014]
  • Cosmos db changes [PR 1053]

Language (LUIS, Recognizers, QnA)

  • Update recognizer packages to 1.1.2 [PR 1036]
  • Update recognizer packages to 1.1.1 [PR 1016]
  • Add LuisRecognizer.TopIntent and tests [PR 1013]
  • Fix for 992 with additional unit test [PR 1010]
  • Fix LuisApplication bad endpoint error [PR 983]
  • Change Dutch translation in confirmPrompt ('niet' to 'nee') [PR 1017]

Prompts and Dialogs

  • Add constraint to NumberPrompt [PR 1037]
  • Confirm prompt fixes [PR 1024]
  • Add configuration based constructor [PR 1011]
  • Updated supportsSuggestedActions() for directline & webchat [PR 1018]

Connectors and Adapters

  • Missing adapter integration interface and InvokeResponse bugs [PR 1049]
  • Added channels to connector [PR 1005]

Monitoring and Analytics

  • Add simple trace messages to BotFrameworkAdapter [PR 1031]

Engineering (Build, Automation, Tests)

  • Add build status for 4.0 branch build. [PR 1026]
  • Add Daily Build badges to readme [PR 993]
  • Add more badges to readme. Fix build link to master branch. [PR 994]
  • The Readme now shows the last build status for master, not the last overall build status [PR 990]
  • Update to correct build status badge, based on unified build. [PR 989]
  • Fix npm vulnerabilities [PR 1052]
  • Remove Stack Overflow link to v4 tag [PR 1051]
  • Broken tests due to merge of PR #1017 [PR 1023]
  • Update UsingMyGet.md [PR 1021]
  • Remove incorrect contributors badge. [PR 996]
  • Added basic MyGet instructions. [PR 995]
  • Add Nuget Badges [PR 991]
  • Add CustomHeaders unit tests for Conversations [PR 1027]
  • Initial scripts for coveralls integration [PR 988]
  • Update Package Version for Microsoft.Test.SDK in prep for Coveralls [PR 985]
  • Replace powershell pack/unpack with C# packer.dll [PR 980]
  • Increase CC in Connector.Conversations Tracing features [PR 1007]
  • add two ActivityPrompt tests for ResumeDialog and failed validation [PR 986]