Skip to content

Bot Framework SDK 4.11.0

Compare
Choose a tag to compare
@cleemullins cleemullins released this 10 Nov 00:06
5017465

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

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 Javascript 4.11.0

  • Fix: add adaptive-expressions-ie11 to lerna.json [PR 2960]
  • Publish umd bundle to be used as script tag for expressions library [PR 2940]
  • Use QnAMakerOptions, Telemetry, and logPersonalInformation flag in QnAMakerDialog [PR 2939]
  • Revert "skip OrchestratorAdaptiveRecognizer tests (#2946)" [PR 2947]
  • Browserify botframework-streaming [PR 2942]
  • Fix fetch in token server used in E2E Streaming Test [PR 2944]
  • Update issuers [PR 2949]
  • Add trace activity-buffering logic when DeliveryMode is "expectReplies" [PR 2738]
  • Revert "Change vmImage to ubuntu for all JS pipelines (#2931)" [PR 2948]
  • Skip OrchestratorAdaptiveRecognizer tests [PR 2946]
  • Documentation updates [PR 2941]
  • Fix locale determination in confirm/choice prompts/inputs [PR 2534]
  • Remove trusted URL logic [PR 2938]
  • New botbuilder-azure-blobs package [PR 2923]
  • Skills: support update and delete activities [PR 2912]
  • Remove unnecessary verbose trace logging [PR 2936]
  • Teams: Get Participant meeting API [PR 2884]
  • Skills: local testing with no appId or password [PR 2909]
  • Move QnAMaker/Luis components into botbuilder-ai [PR 2235]
  • Fix "turn.recognized" does not include entities with "None" intent in Cross-Trained Recognizer Set [PR 2790]
  • Ignore the null or empty result of the OutputFormat in TextInput [PR 2922]
  • Make language policy in MultiLanguageRecognizer align with the policy in UseLanguagePolicy [PR 2890]
  • Change vmImage to ubuntu for all JS pipelines [PR 2931]
  • DialogContextMemoryScope [PR 2895]
  • Add missing documentation for botbuilder-dialogs-adaptive conditions folder 1/2 [PR 2928]
  • Replace multiple npm packs with one lerna exec --no-private npm pack [PR 2924]
  • Make adaptive expression library compatible with IE [PR 2906]
  • Add missing documentation for botbuilder-dialogs-adaptive converters/expressions/generators/luis/selectors folders [PR 2857]
  • Fall back to defaultLocale if locale is not found [PR 2914]
  • Filter continueConversation events when logging [PR 2903]
  • Pass Locale info from Activity to Adaptive-Expression and support locale in formatNumber prebuilt functions [PR 2692]
  • Add mising documentation for botbuilder-testing [PR 2920]
  • Throw exception when circular reference is detected in LG imports [PR 2913]
  • Add missing documentation for botbuilder-ai-orchestrator [PR 2921]
  • Add missing documentation for botbuilder/skills [PR 2818]
  • Add missing documentation for botbuilder [PR 2819]
  • Add missing documentation for botbuilder-lg files [PR 2830]
  • Add missing documentation for botframework-streaming websocket and payloads folders [PR 2825]
  • Teams: CacheInfo [PR 2910]
  • Add missing documentation for adaptive-expressions/converters [PR 2854]
  • Add missing documentation for adaptive-expressions/builtinFuntions files 2/10 [PR 2842]
  • Add missing documentation for botbuilder-dialogs-declarative files [PR 2837]
  • Add missing documentation for botbuilder-core files [PR 2832]
  • Add missing documentation for adaptive-expressions root files [PR 2856]
  • Add missing documentation for botbuilder-dialogs/Root [PR 2820]
  • Add missing documentation for botbuilder-dialogs/choices & /prompts [PR 2821]
  • Add missing documentation for botbuilder-dialogs/memory [PR 2824]
  • Add missing documentation for botbuilder-dialogs/memory/pathResolver [PR 2823]
  • Add missing documentation for botframework-streaming [PR 2826]
  • Add missing documentation for botframework-connector [PR 2827]
  • Add missing documentation for botbuilder-dialogs/memory/scopes [PR 2822]
  • Add missing documentation for botbuilder-lg root files [PR 2828]
  • Add missing documentation for botbuilder-dialogs-adaptive root [PR 2852]
  • Add missing documentation for botframework-config [PR 2829]
  • Add missing documentation for botbuilder-dialogs-adaptive entityRecognizers folder [PR 2915]
  • Teams: TeamsActivityHandler override comments [PR 2907]
  • Create yaml version of daily JS build [PR 2893]
  • Add missing documentation for botbuilder-azure [PR 2817]
  • Add missing documentation for adaptive-expressions/builtinFuntions files 1/10 [PR 2843]
  • Add missing documentation for botbuilder-ai [PR 2816]
  • Add missing documentation for adaptive-expressions/builtinFuntions files 3/10 [PR 2844]
  • Add missing documentation for adaptive-expressions/builtinFuntions files 4/10 [PR 2845]
  • Add missing documentation for adaptive-expressions/builtinFuntions files 5/10 [PR 2846]
  • Add missing documentation for adaptive-expressions/builtinFuntions files 6/10 [PR 2847]
  • Add missing documentation for adaptive-expressions/builtinFuntions files 7/10 [PR 2848]
  • Add missing documentation for adaptive-expressions/builtinFuntions files 8/10 [PR 2849]
  • Add missing documentation for adaptive-expressions/builtinFuntions files 9/10 [PR 2850]
  • Add missing documentation for adaptive-expressions/builtinFuntions files 10/10 [PR 2851]
  • Add missing documentation for adaptive-expressions/expressionProperties [PR 2855]
  • Add missing documentation for teams-scenarios root [PR 2839]
  • Add missing documentation for teams-scenarios files [PR 2841]
  • Add missing documentation for botbuilder-applicationinsights files [PR 2838]
  • Added useBotState() [PR 2504]
  • Fix formatDateTime function with "dd/MM/yyy" produces wrong results [PR 2889]
  • Adaptive objects initialization refactoring [PR 2873]
  • Recognizers should not return intents if utterance is empty [PR 2896]
  • Adjusted override/callback docstrings [PR 2902]
  • Add conversation parameters to createConversation [PR 2899]
  • Audit package.json "files" entries [PR 2886]
  • Add libraries/README.md [PR 2900]
  • Allow interrruptions in BeginSkill [PR 2771]
  • Fix signature of LanguageGenerator base class [PR 2881]
  • Add ChannelData checks in TelemetryLoggerMiddleware (#2781) [PR 2874]
  • Bump @azure/ms-rest-js to 1.9.0 [PR 2891]
  • Add reverse prebuilt function [PR 2887]
  • Fix bug in get conversation members action [PR 2885]
  • eslint --fix on adaptive-expressions again [PR 2883]
  • eslint --fix for botframework* [PR 2878]
  • Publish lib/src only botbuilder-adaptive-dialogs [PR 2880]
  • JoinOperator -> joinOperator [PR 2870]
  • LG: Redo the default fallback of namespace [PR 2882]
  • eslint --fix botbuilder-testing [PR 2876]
  • eslint --fix for botbuilder-lg [PR 2875]
  • Teams: Add fields to teams notifications [PR 2877]
  • Include dialogContext in errors [PR 2833]
  • Add new test to check waterfall step parent. [PR 2806]
  • Testing naughty strings against TextPrompt [PR 2809]
  • eslint --fix on botbuilder-dialog* libraries [PR 2866]
  • CI Improvements around runtime coverage, code coverage reports and add GitHub workflows [PR 2868]
  • TriggerTree and MostSpecificSelector [PR 2793]
  • Deprecate all botframework-config exports [PR 2834]
  • Add Chrome functional tests back to .yaml [PR 2807]
  • Support null/undefined result in LG output [PR 2794]
  • Only import lodash's sortBy method [PR 2858]
  • eslint --fix of botbuilder-core [PR 2865]
  • eslint --fix on botbuilder-ai* libraries [PR 2862]
  • eslint --fix bb-applicationinsights and bb-azure [PR 2863]
  • eslint --fix on botbuilder library [PR 2861]
  • Fixed some eslint issues in adaptive-expressions [PR 2859]
  • Increase coverage for adaptive dialogs [PR 2775]
  • SwitchCondition with number throws an exception when compared against a string [PR 2789]
  • [#2602] [JSDoc] Add missing documentation for botbuilder-dialogs-adaptive-testing [PR 2831]
  • eslint --fix on adaptive-expressions [PR 2835]
  • Updated to minimal standard eslint config [PR 2814]
  • Add test for AssertReply_Assertions_Failed script [PR 2808]
  • Plug mocha test leaks [PR 2698]
  • Increase AppInsights Coverage [PR 2713]
  • No typing activity if bot is running as a skill [PR 2795]
  • Browserify bundle of botframework-connector [PR 2802]
  • Bump node-forge from 0.6.30 to 0.10.0 in /tools [PR 2810]
  • Update readme.md badges to point to main branch [PR 2804]
  • Updates a number of references to "main" [PR 2803]
  • Fix format [PR 2711]
  • Fix QnA access levels, fix #2800, fix style [PR 2801]
  • Delete Conversation Reference from ConversationIdFactory when SkillDialog receives EndOfConversation while using ExpectReplies [PR 2787]
  • Update CODEOWNERS, rename UsingMyGet.md to dailyBuilds.md [PR 2799]
  • Mark LuisService class deprecated [PR 2798]
  • Change some utility functions in Adaptive-Expressions to internal [PR 2796]
  • Change autoEndDialog to BoolExpression [PR 2772]
  • Make telemetryMiddleware tests actually fail [PR 2700]
  • Catch errors in ShowTypingMiddleware [PR 2786]
  • Restructure adaptive-expressions tests [PR 2784]
  • Add Teams oauth signin link handling to OauthInput [PR 2788]
  • Added new Telemetry Track Event action [PR 2773]
  • Add CSP to E2E botframework-streaming DL ASE pipeline in botbuilder-js [PR 2763]
  • Add ActivityEx implementation [PR 2435]
  • Change error messages in pre-built functions to make the descriptions more accurate [PR 2768]
  • Enabled api-extractor in adaptive/declarative/adaptive-testing packages [PR 2758]
  • QnAMaker GenerateAnswer StrictFiltersCompoundOperationType for Metadata Join Operation [PR 2718]
  • LG: Add CacheScope option [PR 2777]
  • Allow the activity only with channelData property in sendActivity action [PR 2778]
  • Add fullName to resource class and keep resource consistent across lg resources [PR 2693]
  • Support deep data binding for some properties [PR 2552]
  • Add jsonStringify function [PR 2759]
  • Add schemaHelper test [PR 2659]
  • Add JS interdependency graph [PR 2750]
  • Allow calling an event driven dialog [PR 2774]
  • Add SkillValidation Claims tests [PR 2769]
  • Throw if IsSkillClaim and claimsValidator is null [PR 2761]
  • Optimize E2E Streaming Test Pipeline in botbuilder-js [PR 2667]
  • Address unsafe-eval CSP issues, additional cleanup [PR 2752]
  • Change some words in tests [PR 2746]
  • Support create obj with multi line in LG [PR 2756]
  • Fix ignoring new line characters in string interpolation [PR 2754]
  • Support accessing global memories in injecting LG templates as Expressions [PR 2710]
  • Rewrite tests for getNextViableDate, getNextViableTime, getPreviousViableDate, getPreviousViableTime pre-built functions [PR 2707]
  • Make 'string' function return the original content if the parameter is a string type [PR 2743]
  • Fix multiline bug [PR 2751]
  • Fix error in parsing empty string in string interpolation [PR 2748]
  • Use resource id as dialog id only if the dialog doesn't have an id [PR 2720]
  • CodeAnalysis pipeline fixes, eslint bump, test fixes [PR 2742]
  • Fix repromptDialog error message [PR 2724]
  • Set WaterfallStepContext.Parent correctly [PR 2728]
  • Make Language fallback consistent with current LanguagePolicy [PR 2661]
  • Appropriately remove test env vars [PR 2697]
  • Empty recognizer support in crosstrained recognizer set [PR 2708]
  • Set start/end index in qna maker recognizer [PR 2709]
  • Updated feature and bug templates to use new labels. [PR 2701]
  • Vishwac/orchestrator [PR 2654]
  • Installation update add and remove (#2687) [PR 2688]
  • Oauth prompt updates [PR 2681]
  • beginSkillDialog: store DialogOptions in state and regen for methods [PR 2676]