Bot Framework DotNet SDK 4.13.0
November 2021 (version 4.13.8)
This release introduces a global flag called "Templates.EnableFromFile" that indicates whether the Adaptive Expression fromFile function is allowed in LG templates. If an application had previously made use of this function, it is now required to add the line "Templates.EnableFromFile = true;" to the Startup.cs code.
Version 4.13.2
Includes the following bug fixes:
- Enabling Application Insight with Bot Composer does not get "LuisResult" or "QnAMaker" name in telemetry data. Issue microsoft/BotFramework-Composer#7661
- Utterance (customDimensions['Text']) is not reported in AppInsights inhibiting conversation analytics. Issue microsoft/BotFramework-Composer#7533
- SDK Adapters should pass the component configuration to constructor. Issue #5581
Version 4.13.1
Includes the following bug fixes:
- Runtime: IBotTelemetryClient should be replaceable · Issue #5511
- Runtime: IBot should be registered through TryAddSingleton · Issue #5493
- Update Microsoft.BotFramework.Orchestrator in OrchestratorRecognizer to version to 4.13.1 · Issue #5524
- CloudAdapter - cannot call ContinueConversationAsync with an empty / null AppId · Issue #5491
- Runtime is not logging dialog telemetry events · Issue #5504
- People template bot producing a "SignoutUser(): not supported by the current adapter" message · Issue #5528
- OAuthInput fails to do SSO with adaptive runtime due to race condition with saving state · Issue #5544
- Timezone extraction does not work in 1.4.0 Bot Runtime · Issue #5552
April 2021 (version 4.13.0)
Welcome to the April 2021 release of the DotNet Bot Framework SDK. Orchestrator, a replacement for the Dispatch tool shipped in prior versions, is now generally available. BotComponent Registration has been improved with the introduction of BotComponent
and automatic discovery of package components within a new Adaptive Runtime. New activity types Command
and CommandResult
are introduced in support of the Telephony channel and further protocol extensibility. See also Other improvements. Refer to the change log and General SDK release notes for more SDK related updates.
Orchestrator (GA)
Orchestrator recognizer has been released to General Availability! Since PREVIEW 3 release we have:
- Improved performance.
- Fully integrated with Composer via the packages subsystem
- Integrated in user experience for skill routing
- Promoted BF CLI Orchestrator from plugin to embedded command
- Updated documentation & samples https://aka.ms/bf-orchestrator
Teams
- Introduction of Single Sign On Middleware for Microsoft Teams
- Teams Adaptive Component package includes triggers and actions for interacting with Microsoft Teams specific features
New Activity Types
Command
activities communicate a request to perform a specific action. They are identified by a type value of command and specific values of the name field. specificationCommandResult
activities communicate the result of a command activity. specification
BotComponent Registration
Adaptive Component registration has been updated to include BotComponent
and auto-discovery with the new Adaptive Runtime
Instructions for upgrading from the deprecated method to BotComponent
:
ComponentRegistration (deprecated method):
The deprecated method of component registration was accomplished through code in startup, and returning DeclarativeTypes
from GetDeclarativeTypes
of a custom ComponentRegistration
implementation.
Code: AdaptiveComponentRegistration:
public class AdaptiveComponentRegistration : ComponentRegistration, IComponentDeclarativeTypes
{
...
public virtual IEnumerable<DeclarativeType> GetDeclarativeTypes(ResourceExplorer resourceExplorer)
{
yield return new DeclarativeType<OnBeginDialog>(OnBeginDialog.Kind);
...
}
}
BotComponent (new method):
BotComponent
implementations will be loaded into the type system either
-
- automatically by the runtime when the referencing project contains an entry in the 'components' array within appsettings.json, or
-
- directly from startup.cs by calling
new MyBotComponent().ConfigureServices(services, configuration);
- directly from startup.cs by calling
Code: AdaptiveBotComponent
public class AdaptiveBotComponent : BotComponent
{
public override void ConfigureServices(IServiceCollection services, IConfiguration configuration)
{
services.AddSingleton<DeclarativeType>(sp => new DeclarativeType<OnBeginDialog>(OnBeginDialog.Kind));
}
}
Other improvements
- Extended
DialogExtensions.RunAsync
so it fully supportsAdaptiveDialogs
- Consolidated the implementation of
DialogManager
so it usesDialogExtensions.RunAsync
- Introduced
AdaptiveDialogBot
anIBot
implementation for runningAdaptiveDialogs
, follows the pattern established withDialogBot<T>
used across the samples and usesDialogExtensions.RunAsync
to execute theDialog
. It implementsIBot
directly rather than deriving fromActivityHandler
. Significantly the implementation captures theTurnState
dependencies that anAdaptiveDialog
has. - The adaptive runtime moves from Preview to GA. This introduces a new package called
Microsoft.Bot.Builder.Dialogs.Adaptive.Runtime
. In the process the coreServiceCollectionExtensions.AddBotRuntime
was re-implemented to use the newAdaptiveDialogBot
class. It also now injects most of the key dependencies for theAdaptiveDialog
(now explicitly modeled in theAdaptiveDialogBots
constructor) withTryAddSingleton
so they act as replace-able defaults. - Various Skill classes have been updated so they now aligns with the fully parameterizable Auth abstractions introduced in 4.12.0 with
CloudAdapter
.
Change log for DotNet 4.13.0:
- feat: Update to point at Orchestrator 4.13 (#5484) [PR 5484]
- SDK Adapters: include schemas guaranteeing no duplicates in package (#5478) [PR 5478]
- Add Teams SSO Token Exchange middleware (#5475)[PR 5475]
- Add AsCommandActivity and AsCommandResultActivity (#5452)[PR 5452]
- Add jsonProperty to TokenExchangeResource (#5461)[PR 5461]
- Runtime: Using ApplicationInsightsServiceOptions to initialize telemetry (#5456)[PR 5456 ]
- Remove Teams adaptive package (#5450)[PR 5450]
- Remove HostBuilderContext parameter from AddBotRuntimeConfiguration (#5439)[PR 5439]
- Updated default ResultProperty for HttpRequest (#5436)[PR 5436]
- turn memory scope includesnapshot to false (#5441)[PR 5441]
- Updated default property path for OAuthInput (#5437)[PR 5437]
- pass through StateConfiguration in DialogManager (#5440)[PR 5440]
- ResumeDialog is not called after resumption with adaptivedialog (#5426)[PR 5426]
- Fixes appsettings.[EnvironmentName].json (#5421)[PR 5421]
- cherry-pick: mark DialogManager property on DialogContext as obsolete (#5410) [PR 5418]
- make LanguagePolicy pluggable (#5416) [PR 5420]
- only load the resource on the first turn (#5414) [PR 5419]
- Update SetSpeakMiddleware to remove lang aligned with existing runtime (#5404) [PR 5407]
- Settings scope: support backward compat setting scope, remove ComponentRegistration in DialogStateManager (#5397) [PR 5398]
- Added AdaptiveTestingBotComponent (#5394) [PR 5400]
- Runtime: Rename assembly to Microsoft.Bot.Builder.Dialogs.Adaptive.Runtime [PR 5386]
- Adapters: Add components and schemas for Facebook, Slack, Twilio and Webex [PR 5385]
- have AdaptiveDialogBot pick up Dialogs from services collection [PR 5384]
- Components: Update tags to support msbot-* format and add 2nd order tags [PR 5381]
- Runtime: remove logger from bot component, exception handling on bot component load and pass IConfiguration to extensions [PR 5383]
- Fix FileTranscriptLogger [PR 5047]
- Rename OrchestratorAdaptiveRecognizer -> OrchestratorRecognizer, update RC build [PR 5379]
- update services collection in adaptive runtime [PR 5375]
- allow LuisRecognizer to recognize without turnContext [PR 5362]
- Adds skill processing for commands [PR 5374]
- Orchestrator: make a component by adding bf-component tag [PR 5369]
- Runtime: make the assembly GA instead of release [PR 5370]
- settings memory scope from configuration [PR 5366]
- Update Orchestrator Recognizer to point at latest R13 build [PR 5371]
- Hand-off: add converters to support hand off action [PR 5368]
- Johtaylo/issue5357 [PR 5367]
- Activity tracking for OrchestratorAdaptiveRecognizer needs to be done after entity scoring [PR 5365]
- [#4888] [Slack Adapter] Make messages with attachments into message activities [PR 5290]
- Components: improved authoring experience + component registration refactor [PR 5347]
- Updated Skills to use BotFrameworkAuthentication. [PR 5304]
- Deprecate HealthCheck Activity. [PR 5352]
- Fix CVE-2021-26701 [PR 5355]
- add middleware to services as IMiddlewware so they can be found [PR 5364]
- Add ObjectExpressionConverters to support Send Handoff Activity action [PR 5361]
- Update CoreBotAdapter to derive from CloudAdapter [PR 5353]
- Assign a default TemplateEngineLanguageGenerator to Generator [PR 5249]
- try add storage and its dependencies [PR 5351]
- changes for entities, need to update tests [PR 5264]
- Expose StreamingRequestHandler creation in BotFrameworkHttpAdapter [PR 5350]
- CoreBotAdapter is missing EoC logic (Skill bot) [PR 5336]
- Added SetSpeakMiddleware to Runtime [PR 5343]
- Add Command and CommandResult activity types [PR 5318]
- Check null for input prompt [PR 5322]
- Johtaylo/adaptivedialogbot [PR 5308]
- Add support of Expressions in BeginDialog Actions [PR 4880]
- Do nothing when the activity is null [PR 5320]
- add TelemetryClient to Dialog used in RunAsync [PR 5332]
- Enforce that tests.schema must be up to date [PR 5317]
- Log missing update activity and fix infinite loop [PR 5287]
- Change ChoiceSet to support LG [PR 5309]
- Johtaylo/dialogrunasync [PR 5294]
- Better binary data support in Expression/LG functions [PR 5118]
- Update Orchestrator package to point at correct label version [PR 5279]
- Fixes Runtime to depend on preview version of Adaptive.Teams. [PR 5296]
- move allowed callers and skill conversation factory [PR 5286]
- [PORT] Add properties property to Template class [PR 5182]
- Make syntax error message more readable in Expression [PR 5275]
- Fix warnings as errors [PR 5274]
- Dispose created HttpClient in HttpRequest [PR 5268]
- Register the SendHandoffActivity action [PR 5270]
- Add an additional wait to fix race in Web socket connect test [PR 5234]
- change priority to float [PR 5259]
- remove bad copy/paste [PR 5251]
- Add missing 'Teams.' in kind (#5247) [PR 5248]
- Action Policy updates (#5243) [PR 5246]
- fix the bug about built-in function 'titleCase' [PR 5238]
- Fixing synonym parsing in list entity [PR 5242]
- Runtime: Fix bug in CoreAdapter registration. SkillHttpClient needs a BotAdapter registered. [PR 5241]
- Version bump of main preview packages from 4.12 to 4.13 [PR 5236]
- uischema: port uischema 'trigger' part to component schema files [PR 5160]