Bot Framework SDK 4.11.0
November 2021 (version 4.11.3)
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.
November 2020 (version 4.11.0)
Welcome to the November 2020 release of the Bot Framework SDK. We continue to focus on code quality, improving developer experience, customer requests, overall SDK improvements and partner support. We are previewing a new Cloud Adapter and other exciting things, including:
- Teams Introduction of Teams Meeting Participant API along with new features and fixes.
- Skills We continue our 'skills everywhere!' mission by reducing development friction, enabling interruptions, and additional features.
- Composer Continued improvements in deployment, Skills integration, features flags, and more!
- Orchestrator (preview) Improved samples, models, and Bot Framework Composer support
- Bot Framework Documentation We've added Adaptive Dialog support, updated docs around Adaptive Expressions, and custom .lg functions.
- CLI Improvements to merging and importing of dialogs and assets
- Virtual Assistant Improved core runtime, advancements in skills features
- Power Virtual Agents Thanks to the Bot Framework SDK, it is easier and easier to build a PVA Bot!
- HealthBot Health Bot, built using the Bot Framework, continues to advance in support of multiple Health related initiatives!
Insiders: Want to try new features as soon as possible? You can download the nightly Insiders build [C#] [JS] [Python] [CLI] and try the latest updates as soon as they are available. And for the latest Bot Framework news, updates, and content, follow us on Twitter @msbotframework!
Microsoft Teams
Continued improvements enabling features for creating bots and apps in Teams.
- Get Participant Meeting API
- CacheInfo support on Invoke responses
- OAuthInput fix
- Meeting specific notification support
- Add on_teams_team_renamed (python only)
Skills
To reduce development friction, you can now run and test skills locally with the Emulator without needing an AppId and password.
Quality for skills is critical, and we're making large invements in automated testing. That work is (mostly) still in the design phase, and feedback is very welcome:
We're also continuing to bring features to skills to enable additional scenarios:
- Interruptions are enabled in BeginSkill.
- Update and Delete activities from a skill.
Overall SDK Improvements
Code quality and testing infrastructure have continued to be a focus for the this SDK release.
- The default branch on all repositories has been renamed to 'main'.
- We have improved typing and transcript logger middleware behavior and error handling.
- Dotnet SDK tests have been ported to xunit.
- Configurable Adaptive Dialog cycle detection.
- Form Dialog preview
Documentation
Updates and improvements to existing documentation have continued.
- Updated and expanded documentation for adaptive dialogs.
- Updated and reorganized the security and authentication topics.
- Updated information about: .lg custom functions, adaptive expressions, and memory scopes.
- Added Java (preview) reference documentation: https://docs.microsoft.com/en-us/java/api/?term=microsoft.bot.builder
- Added information on how to use the Bot Framework CLI commands in support of various adaptive dialog features.
- Updated skills documentation.
- The claims validator is now required for bot a skill and skill consumer.
- Updated information about Direct Line extensions.
- Updated how to connect to some of the channels: Slack, Webex.
- Archived the SDK v3 content, available at: https://docs.microsoft.com/previous-versions/azure/bot-service/index-bf-sdk
- Updated information about the dialogs library and the overall architecture of a bot.
Cloud Adapter (not yet feature complete, dotnet only)
The Cloud Adapter introduces an enriched configuration model and enables hosting a bot in any cloud environment.
- Supports the Bot Framework protocol and auth model.
- All the constants defining the auth model are configurable.
- Note: 4.11.0 does not have full feature parity with BotFrameworkAdapter
- Streaming support, OAuthPrompt support and full Skill support are coming soon.
- Preview: The recommendation is to continue using BotFrameworkAapter in the 4.11.0 release unless the environment requires configurable auth constants.
Orchestrator Preview
Orchestrator is a Language Understanding arbitration (“dispatch”) technology to route incoming user utterances to an appropriate skill or to subsequent language processing service such as LUIS or QnA Maker.
- It is a transformer based solution that is optimized for conversational AI applications.
- It is built to run locally in your bot.
- It is written in C++ and is available as a library in C#, Node.js and soon Python and Java.
- The current release is designed to be used only for intent detection. Entity recognition is on the roadmap.
- Orchestrator can be used in code-first solutions or directly in Composer.
This is a preview release with improved documentation and language models.
CLI
- The CLI will now download an merge dialog assets.
- Ordering of names while merging.
- Expose import resolver interface for cross-train/luis:build/qnamaker:build
- Region support in lg translate
Virtual Assistant
- Skills improvements
- Core runtime design updates
Composer
- Please see the detailed Bot Framework Composer release notes
HealthBot
The Health Bot Service is a cloud platform for virtual health assistants and health bots, Health Bot uses Bot Framework under the hood. With the latest upgrade to the Bot Framework SDK V4 foundation, Health Bot can be called as a Bot Framework skill or call subsequent custom Bot Framework skills. See more here: Health Bot Overview.
Power Virtual Agents
Power Virtual Agents (PVA) is part of Microsoft Power Platform. In PVA, chatbots can be created with a guided, no-code graphical interface - and without the need for data scientists or developers. In the latest integration with Bot Framework SDK, PVA can be extended to create custom solutions.
- Use Bot Framework Composer to create and connect to Bot Framework skills.
- Publish directly from Bot Framework Composer to PVA portal into PVA Topics runtime (coming soon).
4.11.0 Change Logs
Change log for DotNet 4.11.0
- Teams: MeetingParticipantInfo.InMeeting might be null, if unknown [PR 4868]
- Fix issues with ExpectReplies and Invoke [PR 4845]
- Enable middleware in TestScript and refactor BeginSkill tests [PR 4866]
- DialogContext: tactical change to decouple from TurnContext to remediate breaking changes [PR 4860]
- LU Parser switch to supported Antlr Runtime and Unit Testing [PR 4856]
- Teams: Dispose TeamsConnectorClient [PR 4864]
- IDictionary to ConcurrentDictionary in StreamingRequestHandler [PR 4859]
- Additional values in the issuers list [PR 4857]
- Fix error caused by backtick in stringExpression and valueExpression [PR 4847]
- Reduce concept count by making all entity recognizers to be simple Recognizer [PR 4848]
- Cloudadapter proactive message support [PR 4844]
- Update dependency graph to 4.10.0 [PR 4852]
- Add support for choosing assignment or operations [PR 4855]
- Add new NormalizeMentionsMiddleware class [PR 4843]
- Adaptive: Container dialogs registered in dialog manager and ReplaceDialog now works [PR 4839]
- Change type of property EventType.Item from string to JObject in Slack Adapter [PR 4809]
- Removes Skills functional tests projects [PR 4840]
- Remove trusted service url check in appcredentials [PR 4827]
- Declarative Debugging: Breakpoint to instance mapping from 'first wins' to 'last wins' [PR 4824]
- Update tests.schema and tests.uischema [PR 4834]
- Perf + Resource Utilization: Ensure proper dispose of disposable members [PR 4832]
- Write unit tests for BeginSkill [PR 4816]
- Teams: Get Participant meeting API [PR 4826]
- Performance: significant resource optimization around garbage collection, memory and connection utilization [PR 4727]
- Make languagePolicy configurable in TestScript [PR 4794]
- ResourceExplorer: Pass original exception as inner exception to improve debuggability. [PR 4812]
- Add StreamingRequestHandler.Audience for Streaming + Skills [PR 4805]
- Additional issuers in emulator validation [PR 4828]
- Remove extra skill dialog trace activities [PR 4819]
- Adding UI schema to handle form dialogs [PR 4818]
- Update resource explorer load to use GetComponentRegistration instead of static loaded components (#4745) [PR 4815]
- Adds check to TranscriptLoggerMiddleware doesn't log continue conversation event activities [PR 4797]
- Ignore the null or empty result of the OutputFormat [PR 4814]
- Throw exception when circular reference is detected in LG imports [PR 4779]
- Thread dialogcontext/activity through LuisRecognizer so it can be passed to ExternalEntityRecognizer [PR 4811]
- Teams: GetParticipant [PR 4770]
- Drop the use of IsBuildServer [PR 4791]
- Updating schema titles to sentence case. [PR 4799]
- Teams: Add CacheInfo for invoke responses [PR 4548]
- Teams: Add fields to teams notifications [PR 4763]
- Consolidate some implementation in OAuthInput and OAuthPrompt [PR 4800]
- Delete nuget.config [PR 4798]
- Set PR filters to include the host .yml file [PR 4792]
- Skills: support update and delete activities [PR 4786]
- Skills: local testing with no appId or password [PR 4757]
- Add AssertNoActivity [PR 4785]
- Consolidate duplicate Test project and test code [PR 4736]
- Add unit tests to generated dialogs [PR 4723]
- LG & Expression: Switch Antlr.Runtime to Antlr.Runtime.Standard [PR 4777]
- Make languagepolicy in Recognizer align with the policy in UseLanguagePolicy [PR 4784]
- Expression: Add reverse prebuilt function [PR 4781]
- Add 'state' to MessagingExtensionAction [PR 4718]
- Change vmImage: setting [PR 4766]
- Update README [PR 4445]
- Use wildcard reference for Microsoft.BotFramework.Orchestrator [PR 4771]
- Prefer default operation [PR 4760]
- Update tests.schema with changes to Microsoft.ContinueConversationLater. [PR 4769]
- Fix the default behavior when cloud environments are configured [PR 4764]
- Updated reference to Microsoft.BotFramework.Orchestrator [PR 4767]
- Refactor of Microsoft.Bot.Builder.Azure.Queues. [PR 4692]
- Change Assert.Inconclusive() to Assert.Fail() in tests [PR 4754]
- Allow API Compatibility Validation to be disabled [PR 4761]
- Update BotFrameworkAdapter, Fixes : #4710 [PR 4711]
- LG: Redo the default fallback of namespace [PR 4724]
- LG: Enable debuggability [PR 3791]
- Add comments for CreateFacebookMessageFromActivity [PR 4751]
- Adds CreateMessageFromActivity method to facebook adapter. [PR 4746]
- Skills: Send context.Activity if none provided in BeginSkill [PR 4705]
- Fix DialogStateMamager TryGetValue method throwing FormatException [PR 4604]
- Make missing test environment vars cause a functional test build to fail [PR 4719]
- Enable overriding AttachmentInput dialog [PR 4726]
- Add obsolete tag to AzureBlob classes [PR 4735]
- Add a default user agent for httpRequest [PR 4693]
- Let ADO define triggers [PR 4706]
- Fix DefaultValueResponce can't access DialogContext.State [PR 4691]
- Hide DialogInspector and centralize resetting retries[PR 4715]
- Updated reference version of Microsoft.BotFramework.Orchestrator [PR 4699]
- Disable build warning CS8002 in Microsoft.Bot.Builder.FunctionalTests [PR 4668]
- Adding mappings between components and intellisense options [PR 4704]
- Refactored and cleaned up ShowTypingMiddleware [PR 4701]
- Add branch lu-parser to CI builds [PR 4703]
- Change Assert to verify collection size. [PR 4697]
- Skills: Avoid sending typing activity when bot is invoked as skill [PR 4479]
- Skills: Delete Conversation Reference from ConversationIdFactory when SkillDialog receives EndOfConversation while using ExpectReplies [PR 4685]
- Add ThrowException action to pass exception out for string error message [PR 4656]
- Support null result in LG output [PR 4669]
- Expression: Support Nullish Coalescing feature [PR 4686]
- Expression: Add conditional operator [PR 4689]
- Make cycle detection throw an exception instead of returning null. [PR 4606]
- Expression: Add resolve function for resolving TimexProperty values to string values [PR 4573]
- Add exception to missing predicate condition. [PR 4678]
- Remove NoWarn suppression [PR 4563]
- Remove xUnit2000 error from templates test in Microsoft.Bot.Builder.LanguageGeneration.Tests [PR 4667]
- Fix special character problem by making FindValues prefer exact matches [PR 4671]
- Add missing XML documentation to the Bot.Builder.Dialogs.Adaptive Root folder [PR 4637]
- Undo blocking on token polling ops; add docs & comments (#4675) [PR 4680]
- Adds missing doc to Recognizers [PR 4636]
- Fix "turn.recognized" does not include entities with "None" intent in Cross-Trained Recognizer Set [PR 4655]
- Bot Cache state public [PR 4627]
- Cache reference dialog into a dictionary when loading dup dialogs [PR 4616]
- Revert TranscriptMiddleware to not wait on logging [PR 4644]
- CloudAdapter [PR 4661]
- Teams: Add OnInstallationUpdateActivity in adaptive trigger conditions [PR 4629]
- Make DisplayQnAResultAsync protected [PR 4574]
- Fix retries and extend testing [PR 4665]
- Fix Microsoft.Bot.Builder.Dialogs.Adaptive.Templates.Tests xUnit warnings [PR 4560]
- Remove MSTest packages from Microsoft.Bot.Builder.Dialogs.Tests [PR 4632]
- Add missing XML documentation to Bot.Builder.Dialogs.Adaptive Functions, Generators, Input, Memory, Selectors and Templates folders [PR 4635]
- Add missing XML documentation to Bot.Builder.Dialogs.Adaptive/TriggerConditions [PR 4638]
- Add missing XML documentation to Bot.Builder.Dialogs.Adaptive/Actions [PR 4634]
- Migrate Microsoft.Bot.Builder.TemplateManager.Tests to xUnit [PR 4587]
- Migrate Microsoft.Bot.Builder.Azure.Tests project to xUnit [PR 4633]
- Support null result in stack memory [PR 4666]
- Teams: Fix OAuthInput on Teams [PR 4660]
- Fix badges, switching from master to main branch [PR 4659]
- Migrate Microsoft.Bot.Builder.Dialogs.Tests to xUnit [PR 4630]
- Migrate Microsoft.Bot.Builder.Dialogs.Tests to xUnit [PR 4631]
- Move version tagging to parent signing yaml [PR 4649]
- Fix the timeout login in OAuthInput [PR 4607]
- Migrate Microsoft.Bot.Builder.Dialogs.Declarative.Tests project to xUnit [PR 4622]
- Migrate Microsoft.Bot.Builder.Dialogs.Adaptive.Tests to xUnit [PR 4623]
- Fix split function result with whitespace separator [PR 4646]
- Remove env prefix from pipeline variables [PR 4652]
- Migrate Microsoft.Bot.Builder.AI.QnA.Tests to xUnit [PR 4588]
- Facebook and Webex adapter functional test, validate required variables to correct inconclusive results [PR 4585]
- mock qna recognizer and dialog like http request action [PR 4531]
- Add specific owners for TestBot.Json & TestProtocol (#4553) [PR 4564]
- QnAMaker GenerateAnswer StrictFiltersCompoundOperationType for Metadata Join Operation [PR 4446]
- Migrate Microsoft.Bot.Builder.ApplicationInsights.Tests to xUnit [PR 4608]
- Migrate Microsoft.Bot.Builder.Dialogs.Tests to xUnit [PR 4624]
- Migrate Microsoft.Bot.Builder.Integration.ApplicationInsights.Core.Tests to xUnit [PR 4589]
- Stop building twice in the dotnet functional test pipelines [PR 4611]
- Update CODEOWNERS: [PR 4626]
- Fix issues on Microsoft.Bot.Builder.Ai.LuisV3.Tests [PR 4558]
- Fix issues on TemplateDiagnosticTest & TemplatesParseTreeTest files [PR 4559]
- Fix Microsoft.Bot.Builder.Tests xUnit warnings [PR 4561]
- Migrate Bot.Streaming.Tests to Xunit [PR 4592]
- LG: Add CacheScope option [PR 4602]
- Migrate Microsoft.Bot.Builder.AI.Luis.Tests to xUnit [PR 4610]
- Add commit hash to package versions [PR 4613]
- Migrate Microsoft.Bot.Builder.Dialogs.Tests to xUnit [PR 4625]
- Migrate Microsoft.Bot.ApplicationInsights.WebApi.Tests to xUnit [PR 4591]
- Update LuisRecognizer.cs [PR 4577]
- Migrate Payloads folder's tests to Xunit [PR 4590]
- Migrate Microsoft.Bot.Configuration.Tests to xUnit [PR 4609]
- Switch to ESRP Code Signing Connection 2020a [PR 4618]
- Change json serialization format [PR 4463]
- Add version expression property to luisadapter and make options expression properties [PR 4535]
- Fix null object reference in MultiLanguageRecognizer [PR 4344]
- Fix LuisAdapterRecognizer by correctly cloning the temporary TurnContext for adaptiing to legacy LuisRecognizer [PR 4537]
- Add a throw to FacebookClientWrapper.cs [PR 4614]
- Fix issues on TemplatesTest file [PR 4562]
- Fix facebook and webex functional test pipelines [PR 4583]
- Add missing documentation to Dialogs files [PR 4541]
- Migrate Microsoft.Bot.Builder.Dialogs.Debugging.Tests to xUnit [PR 4586]
- Retries should be removed when property is set since there is no active Ask query. [PR 4584]
- Fix issues on AdaptiveExpressions.Tests [PR 4557]
- Skills: Add SkillValidation Claims tests [PR 4598]
- Add catch for JsonException in GetBodyContent. [PR 4596]
- Allow resource explorer to accept the set of declarative type registrations [PR 4575]
- Improve error message for tests. [PR 4554]
- Add "jsonStringify" builtin function [PR 4571]
- LG: Support create object with multi lines in LG [PR 4517]
- Fix new line in string interpolation [PR 4551]
- Make "merge" support any kind of object type [PR 4529]
- Update runtime to support new generation model [PR 4481]
- Fix the issue while multiline content starts with "#" [PR 4516]
- Set link to latest dependency graph [PR 4525]
- Update coveralls parameter [PR 4513]
- use HttpRequestMock to mock Luis [PR 4453]
- Fix coverage publishing conditionals [PR 4498]
- fix error in parsing empty string in string interpolation [PR 4504]
- fix string trim issue [PR 4503]
- Fix "git push azure master" [PR 4497]
- Add delay signing configuration for Orchestrator. [PR 4495]
- Fix issue when non-text activity received, the CrossTrainedRecognizer will always returns OnChooseIntent [PR 4484]
- Switch branch master to main [PR 4494]
- Always assign sourcemap.path [PR 4488]
- Set WaterfallStepContext.Parent correctly [PR 4480]
- Add StatusCode & ReasonPhrase to HttpResponseMock [PR 4426]
- Fixes for test scripts. [PR 4482]
- Skills: Support AllowInterruptions in BeginSkill [PR 4476]
- Fix Random thread safety and control random seed to improve testability [PR 4429]
- Update platform target for Release-Windows configuration of Orchestrator. [PR 4470]
- Enable schema tests. (Although needed to filter out one test which is valid but fails validation.) [PR 4474]
- Fix ARM template template-with-new-rg.json for the other DotNet func test builds [PR 4450]
- LG: Add fullName to resource class and keep resource consistent across lg resources [PR 4340]
- Fix bugs in getNextViableTime, getPreviousViableDate, getPreviousViableTime [PR 4466]
- Fix ARM template template-with-new-rg.json for Slack [PR 4441]
- Support accessing global memories in injecting LG templates as Expressions [PR 4452]
- Updated issue templates to apply default labels [PR 4457]
- Fix AdaptiveExpressions tests failing [PR 4428]
- Temporarily ignore failing Adaptive test [PR 4459]