Skip to content

Bot Framework SDK 4.10

Compare
Choose a tag to compare
@cleemullins cleemullins released this 17 Aug 23:13
339b6ec

August 2020 (version 4.10.0)

Welcome to the August 2020 release of the Bot Framework SDK. We are introducing some exciting Additional New Features with Updates and Enhancements. This milestone we focused on all-up quality and engineering debt, broken down across the following pillars:

  • Documentation Includes improvements to existing documentation and net new documentation centered on recurring issues and developer pain points.

  • Customer Supportability Improvements focused on developers seeking assistance using the Bot Framework, tools and SDKs.

  • Customer Ask Implemented enhancements and feature requests from the developer community and 3rd parties using the Bot Framework SDK and tools.

  • Code Quality Enforcement of code styling and format rules, increased testing code coverage, and functional tests.

  • Team Agility Improved validation of SDK code and integration with supporting libraries and environments. Continuous integarion and build pipleline improvements.

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!

Documentation

BF Docs GitHub

Following feedback from customers and the Bot Framework Support Team, a number of net new documents have been written as well as updates to existing documentation. These are helpful towards providing answers and information relating to recurring issues from bot developers.

  • Code comment documentation
  • Samples readme improvements
  • SDK repository readme and wiki updates
  • New documents addressing recurring bot developer issues

Customer Supportability

BF Supportability GitHub

Developers using the Microsoft Bot Framework have many avenues for getting help. See additional resources Internal tools have been improved to increase the responsiveness of the engineering team in areas of most interest to developers.

  • Creation of internal bots and improved tools for customer support
  • Improved analytics of trends in customer reported feature requests and issues
  • Coordination of labels across GitHub repositories

Customer Ask

BF Customer Ask GitHub

  • Additional Teams channel lifecycle events
  • Improved Application Insights integration
  • Coordination of labels across Git Hub repositories
  • Add Locale to ConversationUpdate
  • Update CardAction to support alt text for images on buttons
  • Update Skill Handler to return Resource Response
  • Release of library using latest Azure Blobs storage
  • Enable custom fields for Entity
  • Fixes to OAuthPrompt timeout and addition of EndOnInvalidMessage
  • Various bug fixes and telemetry improvements

Code Quality

  • Analyzer rules in place and running (code style and format)
  • Unit test code coverage and quality
  • Increased profiling of the code base
  • Swagger file unified across SDK repositories and version # introduced
  • Specific SDKs asks and needs:
    • Settings object pattern for C# adapters
    • LG dependent files testing (C#)
    • Dependency policing (JS)
    • Integration tests with Direct Line JS and adaptive cards

Team Agility

BF Team Agility GitHub

Improvements have been made across SDK repositories towards decreased CI pipeline times, improved testing, including both functional integration and unit tests.

Speed​

  • Reduce time to build for SDKs (local and remote)​
  • Reduce SDK unit test duration through refactoring and/or concurrent approaches​
  • Refactor ADO pipelines into smaller, separate jobs or stages​
  • Run as-applicable pipelines (e.g. no style-checks on .yaml files)​

​Reliability​

  • Refine or replace current monorepo/”mono-solution” setups as necessary​
  • Address nondeterministic build/test failures
  • Enable continuous integration for forked pull request submissions
  • Complete integration tests added with bots dynamically created

Other Updates and Enhancements

Microsoft Teams

  • SDK and OAuthPrompt now support Teams SSO
  • Increased Adaptive Dialog support for Teams events
  • SDK supprot for lifecyle events: ChannelRestored, TeamArchived, TeamUnarchived,TeamRestored, TeamDeleted, and TeamHardDeleted
  • InstallationUpdate activity type support
  • LinkToMessage added to MessageActionsPayload

Bot Framework CLI Tools

  • Lg added as BF-CLI core plugin
  • Enhancements and fixes to lu parser
  • QnaMaker support extended
  • Publish daily builds and RCs of botframework-cli to npm

Samples

  • Readme updates and consolidation across language samples
  • Build pipelines for samples CI
  • Demonstreate using Locale in ConversationUpdate welcome message sample
  • Additional Teams samples in Typescript
  • Teams TaskModule samples now includes HTML/JavaScript task modules

Composer

  • The Bot Framework SDK continues to support the Bot Framework Composer.

See Composer 1.1.1 Release Notes

Web Chat

  • Many accessibility improvements and fixes
  • Group activity by timestamp and sender
  • Convert emoticon to Emoji
  • Added scrolling API: allow save/restore scroll position and scroll to specific activity

Emulator

  • Added an additional log panel entry on conversation start that displays the current bot's endpoint
  • Fixed a bug where trying to open the sign-in link on an OAuth card when ngrok was not configured would cause the Windows File Explorer to open
  • Improved CONTRIBUTING.md to more accurately reflect requisites to build the Emulator from source
  • Updates to Cosmos DB service editor dialog

Additional New SDK Features

Changelog for v4.10.0:

  • Refactor SkillDialog to call ConversationFactory.createConversationId only once [PR 2666]
  • Adding unit test for custom entity strip checking [PR 2665]
  • [Port] properly escape slashes in constant strings with StringExpression/ValueExpression [PR 2660]
  • Change AdaptiveExpressions pre-built classes from Public to Internal [PR 2658]
  • Add additionalProperties to Entity [PR 2648]
  • Track unhandled events in dialog container [PR 2645]
  • Removed dependency on mocha-logger. Defaulting to console. [PR 2633]
  • Created constants for ChannelServiceRoutes [PR 2632]
  • [Engineering] Lower time for botbuilder-testing tests [PR 2631]
  • [Engineering] Lower time for botframework-connector tests [PR 2630]
  • [Engineering] Lower time for botbuilder-azure tests [PR 2629]
  • [Engineering] Lower time for botframework-config tests [PR 2625]
  • [Engineering] Lower time for botframework-streaming tests [PR 2624]
  • [Engineering] Lower time for botbuilder-dialogs-adaptive-testing tests [PR 2623]
  • [Engineering] Lower time for botbuilder-dialogs tests [PR 2613]
  • [Engineering] Lower time for botbuilder-dialogs-adaptive tests [PR 2612]
  • [Engineering] Lower time for botbuilder-ai tests [PR 2610]
  • [Engineering] Lower time for adaptive-expressions tests [PR 2609]
  • [Engineering] Lower time for BotBuilder-core tests [PR 2604]
  • [PORT] Add getNextViableDate, getPreviousViableDate, getNextViableTime, getPreviousViableTime pre-built functions [PR 2601]
  • add SpeechConstants and tests for CallerIdConstants [PR 2597]
  • Fix intermittent test error due to time change [PR 2596]
  • [PORT]Fix anonymous template name conflict [PR 2595]
  • [Engineering] Lower time for botbuilder tests [PR 2594]
  • [Engineering] Lower time for botbuilder-applicationinsights tests [PR 2593]
  • SSO + Teams cherry pick from 4.9 [PR 2589]
  • Fix intermittent expressions test error due to hour change [PR 2588]
  • Telemetry client test fix [PR 2587]
  • Correctly Call QnA Train API & Handle 204 No-Content Response [PR 2586]
  • add eslint-plugin-jsdoc to build-steps.yml [PR 2584]
  • [Streaming, Engineering] Add integration tests for ChannelServiceRoutes [PR 2582]
  • Fixed a typo in skill extensions [PR 2581]
  • Update botbuilder-dialogs-declarative README [PR 2575]
  • End-to-End Streaming Tests in botbuilder-js [PR 2569]
  • Restore and activate nock [PR 2564]
  • Add installation update to activity handler [PR 2562]
  • adding require-jsdoc functionality per library [PR 2555]
  • Updated HTTP request to parse binary response [PR 2553]
  • Clean up emulator check in Cosmos Test [PR 2547]
  • [Engineering] Cleanup dependencies/use same dep version where possible [PR 2545]
  • [Teams] Fix onSelectedItem in Teams Search Extension Bot [PR 2544]
  • [PORT] Added support for declarative custom dialogs [PR 2542]
  • Increase code coverage in botbuilder library - InspectionMiddleware class [PR 2541]
  • Increase code coverage in botbuilder library - ChannelServiceRoutes class [PR 2540]
  • [PORT] Added StringUtils [PR 2536]
  • [PORT] Add support for operations on arrays [PR 2535]
  • Increase code coverage in botbuilder library - TeamsInfo class [PR 2531]
  • Added specific telemetry for Teams channel [PR 2528]
  • [Engineering] update CODEOWNERS [PR 2526]
  • Preload LG test files [PR 2522]
  • Remove Slack from the list of channels that support Suggested Actions [PR 2517]
  • add readableFlowing property to INodeSocket [PR 2515]
  • Update lerna config & related cleanup/enhancements [PR 2514]
  • Adaptive Telemetry Instrumentation [PR 2513]
  • Fixes CosmosDbPartitionedStorage Tests [PR 2511]
  • Make QnA Maker Active Learnings Thresholds user settable [PR 2508]
  • Added Microsoft.Ask [PR 2507]
  • Kyled/async functions [PR 2506]
  • Renamed adaptive-tests to adaptive-testing [PR 2503]
  • [PORT]Refactor AdaptiveExpressions method GetStandardFunctions() [PR 2502]
  • IUserTokenProvider.getTokenStatus interface updates and test [PR 2497]
  • Increase code coverage in botbuilder library - BotFrameworkAdapter class [PR 2496]
  • Increase code coverage in botbuilder library - TeamsActivityHandler class [PR 2495]
  • Increase code coverage in botbuilder library - StatusCodeError class [PR 2494]
  • Add EndOfConversationCodes to EndOfConversation activity from Skill [PR 2492]
  • Return ResourceResponse from SkillHandler.processActivity [PR 2489]
  • Create pipeline BotBuilder-JS-CI-node12-yaml [PR 2487]
  • Increase code coverage in botbuilder library - BotFrameworkHttpClient class [PR 2485]
  • Increase code coverage in botbuilder library - ChannelServiceHandler class [PR 2484]
  • [Teams] Fix broken TeamsActivityHandler tests [PR 2483]
  • Create pipeline BotBuilder-Js-CI-yaml [PR 2482]
  • [PORT]Refine ActivityFactory [PR 2481]
  • [PORT] Fix WaterfallStepContext to use parent dc properly [PR 2480]
  • add directlinespeech support to prompts [PR 2479]
  • Fix erroneous Async suffix in some comments, error messages, etc. [PR 2476]
  • Additional channel/chat lifecycle events [PR 2471]
  • Add Teams' Channel Restored event [PR 2470]
  • Open id metadata cache refresh if key is missing [PR 2466]
  • Move TelemetryClient property to DialogContainer [PR 2463]
  • Convert comments on Dialog.onDialogEvent() to TSDoc [PR 2462]
  • Fix issue2134: add allowloop to repeat dialog and test [PR 2461]
  • Fix browser build yaml [PR 2458]
  • Add imageAltText to CardAction [PR 2456]
  • [PORT] Add LG telemetry [PR 2451]
  • Make ConnectorClientOptions.baseUri optional [PR 2447]
  • Unionize TaskModuleResponse.task type definition [PR 2446]
  • Ensure fields from recent PRs are fully implemented [PR 2445]
  • [PORT]Extend 'getProperty' builtin function to support accessing top memory [PR 2437]
  • Add null checks to telemetryLoggerMiddleware [PR 2434]
  • Have ActivityPrompt.repromptDialog call onPrompt with isRetry set to false [PR 2431]
  • fix and un-skip getTokenStatus test [PR 2414]
  • [PORT] Further improve LG's performance [PR 2409]
  • Updated readme from docs pillar review [PR 2408]
  • Add linkToMessage to the MessageActionsPayload interface [PR 2400]
  • Fix issue2099 [PR 2397]
  • [PORT]Add expandText LG function [PR 2387]
  • [PORT][Expression]Enable list concatenation for function "concat" [PR 2386]
  • Scoped services [PR 2382]
  • [Port][Expression] Floor, Ceiling, Round, TicksToDays,TicksToHours, TicksToSeconds, DateTimeDiff pre-built functions [PR 2371]
  • Add aadGroupId to TeamInfo [PR 2370]
  • Fix renaming of Task Response type [PR 2369]
  • [PORT] fix empty array and strict mode issue in expand [PR 2362]
  • [Expression] Add merge prebuilt function for merging JSON object [PR 2361]
  • set recognized properties even if interruption is off [PR 2360]
  • Update CODE_OF_CONDUCT.md [PR 2356]
  • Add community docs as per guidance [PR 2352]
  • Drop OnCustomEvent, it's a duplicate of OnDialogEvent [PR 2350]
  • Updated OAuthInput to be on parity with dotnet sdk [PR 2349]
  • [PORT]Add configuration for default languagePolicy [PR 2348]
  • Make ValueRcognizer internal [PR 2347]
  • Updated Dialog Manager to work with skills [PR 2343]
  • Refactored resource explorer as well as related components [PR 2342]
  • update CODEOWNERS [PR 2336]
  • [PORT] Move EXPRESSION in LG from lexer to parser [PR 2334]
  • [PORT][Expression]Add lambda syntactic sugar [PR 2328]
  • [PORT]Enrich LG error message [PR 2322]
  • [Engineering] Create .yaml pipeline for API check [PR 2321]
  • Cache Expression parsing result [PR 2309]
  • Allow nested foreach/foreachpage [PR 2306]
  • [PORT]Refine template loop detection to enable recursive functions [PR 2305]
  • [PORT]Adjust grammar to improve LG parsing performance [PR 2303]
  • trace inner most dc state [PR 2302]
  • fixed repeat dialog options [PR 2300]
  • fixed foreach empty issue [PR 2299]
  • Removed fallback exception from version change logic. (#2283) [PR 2298]
  • fix default timestamp format in Adaptive Expressions [PR 2292]
  • [PORT]Add sentenceCase && titleCase builtin function [PR 2286]
  • Upgrade to Chrome ^83.0.0 [PR 2279]
  • Fix Missing break in flatten function [PR 2277]
  • [PORT]test comparisons for null [PR 2276]
  • Upgrade ms-rest-js to 1.8.15 [PR 2275]
  • replace atob package to be compatible with web worker [PR 2268]
  • Fix LowScoreVariation and add return types [PORT] [PR 2266]
  • Remove antlr auto build with build/test script [PR 2259]
  • [PORT]Make template name format consistent with function name format [PR 2255]
  • Add doc to QnAMakerDialog class (C# port) [PR 2252]
  • Modify TelemetryConstants to use static properties [PR 2251]
  • Harden Prompts [PR 2246]
  • Refactor tests for SkillDialog/BeginSkill scenarios, add ActivityHandler tests [PR 2245]
  • Remove moment from botbuilder-ai [PR 2244]
  • Missing break/return statements. [PR 2240]
  • Do NOT call TeamsInfo.getMember for the bot: cherry pick from 4.9 (#2237) [PR 2238]
  • [Expression] Remove dependency of Moment type in public methods [PR 2232]
  • (AGAINST MASTER) Remove node exports from utilities [PR 2228]
  • Maintain the high priority and independence of multiline [PR 2221]
  • [Expression] fix coalesce bug [PR 2220]
  • Update antlr4ts version and add antlr build script [PR 2218]
  • Allow loading settings from turn state [PR 2217]
  • Stevenic/update master [PR 2214]
  • Cherry-pick ES6 targeting and big-integer addition to master [PR 2208]
  • Adaptive dialogs bug fix [PR 2201]
  • Add formatNumber, parseEpoch and parseTicks. [PR 2198]
  • Add 'state' to AppBasedLinkQuery (for teams auth flow during link unfurling) [PR 2194]
  • Cherry-pick #2145, #2190 and #2196 to master [PR 2192]
  • [Port] [LG] Inject LG templates as a global expression function [PR 2188]
  • [PORT] [Expression] Add more timex builtin functions [PR 2187]
  • Update v.next version to 4.10 [PR 2186]