Releases: microsoft/botbuilder-js
Bot Framework SDK for Javascript v4.6
v4.6.0
Welcome to the 4.6 release of the Bot Framework SDK for JavaScript!
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.
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.
The issues list can be viewed here.
Changelog:
- Helper to send a trace activity [PR 1355]
- Integration bot to master [PR 1351]
- Expand ChannelAccount to TeamsChannelAccount [PR 1350]
- Update typeDoc comments for DialogContext [PR 1349]
- Pull out streaming bits from botbuilder and move to botframework-streaming [PR 1348]
- Drop teams specific send [PR 1347]
- Fix daily CI build after adding botframework-streaming to packages [PR 1343]
- Rename Prompt -> QnAMakerPrompt [PR 1342]
- Auth and browser compatibility fixes, linting, refactoring [PR 1338]
- Add working ws websocket implementation for Node environment [PR 1334]
- Create NodeWebSocketFactory, refactor code, new tests [PR 1331]
- Fix malformatted user agent JSON [PR 1323]
- Adds createChildContext method to ComponentDialog [PR 1318]
- Rename onTeams*-Invoke methods to handleTeams*, add TeamsInfo.getTeamMembers [PR 1315]
- Missing link unfurling scenario [PR 1313]
- Add teamsTenantFilteringMiddleware to roster bot scenario [PR 1311]
- Added promptCultureModels - parity w/ dotnet [PR 1309]
- Part of Teams Hackathon Feedback [PR 1308]
- Refactor streaming into adapter. General improvements and quality. [PR 1306]
- Update onTeamsMessagingExtensionFetchTask() & add tests for TeamsActivityHandler [PR 1305]
- Normalize azure blob timestamp properties to be iso1806 format [PR 1303]
- Remove browser compat libs [PR 1300]
- Removing unused libraries botbuilder-applicationinsights [PR 1298]
- move nock to devDependency [PR 1297]
- Relax the rules for what counts as a well formed GUID. [PR 1294]
- Let WebSocketClient take in a disconnection callback [PR 1291]
- Adding OAuthCard support for Streaming Extensions [PR 1284]
- Lint Teams scenarios, minor refactor [PR 1283]
- Cosmos partitioning [PR 1282]
- Add some tests for teamsCreateConversation [PR 1280]
- Fix typedoc vulnerability [PR 1279]
- add more TeamsInfo tests [PR 1275]
- add tests and mocks for TeamsInfo [PR 1274]
- Fix names of Messaging Extension projects [PR 1272]
- Delete unused
-teams
packages, update lerna.json & package.json [PR 1271] - Add IStreamingTransportClient to exports [PR 1270]
- Add reply to channel bot [PR 1269]
- Add search based messaging extension from samples (thanks Steven!) [PR 1267]
- Remove await when starting up a named pipe server. [PR 1266]
- Add composeMessagingExtensionBot [PR 1265]
- Update typedoc comments [PR 1264]
- Populate ChannelData.aadObjectId property and updated Roster bot after testing [PR 1262]
- Add update and delete bot scenario [PR 1260]
- Port of ActionBasedMessagingExtension Fetch Task [PR 1258]
- Fix teams activity handler null ref exception [PR 1257]
- Office365 Connector Card Scenario [PR 1255]
- Add TeamsInfo helper class, minor fix in ConversationUpdateBot scenario [PR 1253]
- Add message reaction bot [PR 1252]
- adaptivecards bot [PR 1251]
- ComposeMessageExtensionAuthBot teams scenario [PR 1250]
- Add TeamsConnectorClient and fix BotFrameworkAdapter bug [PR 1249]
- Add Notification-only scenario [PR 1248]
- BotFrameworkAdapter.processActivity() doesn't log or send entire "body" [PR 1246]
- Mentions scenario [PR 1245]
- Add Cards scenario [PR 1243]
- Fix Teams Handler for task/fetch and submit | TaskModule scenario [PR 1242]
- teams file upload [PR 1241]
- Fix the content type on the wire to be consistent with the C# implemetation. [PR 1237]
- Refactor TeamsActivityHandler with refactored ActivityHandler class [PR 1236]
- Add TelemetryInitializerMiddleware [PR 1233]
- Change TS output to ES6 for all libraries [PR 1232]
- updated sample bot to match signature of TeamsActivityHandler [PR 1231]
- adding openApp card action type [PR 1230]
- Update choice prompt unit test for hero card prompt with attachment [PR 1229]
- add actionBasedMessagingExtension from samples repo, update .gitignore [PR 1225]
- Create ActivityHandlerBase, rewrite ActivityHandler for increased extensibility points [PR 1223]
- Add Teams schemas and initial TeamsActivityHandler [PR 1220]
- Ran eslint on streaming extension library [PR 1219]
- Update nyc dev dependency [PR 1194]
- Refactored start method to use Promise.all [PR 1193]
- Choice prompt fixes 1175 [PR 1192]
- Avoid a buffer getting overwritten during calls to send [PR 1187]
- Fixed multiple issues in BotFramework-Streaming-Extension Library [[PR 1174]](https://github.com/...
Bot Framework SDK for Javascript v4.5
v4.5.0
Welcome to the 4.5 release of the Bot Framework SDK for Javascript!
Today, we are happy to announce the Bot Framework support for Emulator Channel Testing is generally available. This 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.
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
- Added credentials to inspection middleware for test bot [PR 1033]
- Fixed Axios vulnerability ISSUES [PR 962]
- Changed en/decryption cipher to aes-256-cbc to work with Electron 4+. [PR 880]
Prompts and Dialogs
- Change OAuthPrompt to default to AcceptingInput instead of ExpectingInput [PR 1043]
- Changed to 'beginDialog' and 'continueDialog' methods to return the proper 'cancelled' status [PR 1002]
State and Storage
- Added PartitionKey value to Read and Delete operations [PR 860]
Integration Layer
- Added 906 and 907 to master [PR 936]
Connectors and Adapters
- Swagger connector api alignment updates [PR 980]
Testing and Configuration
- Implemented DialogTestClient used to build unit tests for dialogs in abstract [PR 987]
- Added reading of process.env for Azure specific config in BotFrameworkAdapter [PR 975]
- Deployed to Linux on Azure using Azure Pipelines [PR 961]
- Updated testbot to parity with DotNet [PR 954]
- Added inspection unit test, rolled up fix from 4.4 on state adn upgraded nock to consistent version across code base [PR 942]
- Added 'no answer found in kb' Unit Test Case [PR 937]
- Made attach command a Trace activity [PR 935]
- Fixed build break [PR 922]
- Added functional test to check bot deployed answer [PR 919]
- Added support for Teams mentions & re-enable Connector SDK tests [PR 908]
- Enabled Sidecar debugging via InspectionMiddleware [PR 897]
- Testbot [PR 892]
- Added default middleware to patch location of tenantId for MS Teams [PR 886]
- QnAMakerService correctly builds hostname URL & throws error w/o URL [PR 1035]
- Updated due to build name change [PR 825]
- QnA Telemetry Support [PR 823]
- QnA Telemetry Support [PR 822]
- Bumped to latest LUIS SDK package [PR 817]
- Changed test description to match implementation [PR 801]
- Luis SDK tests (oracle) [PR 800]
Parity and Refactoring
- Rolled back breaking package-lock changes [PR 1023]
- Added columns for bot deployment status badge for both Windows and Linux, added N/A to outdated columns [PR 1021]
- Brought JS inline with C# for Teams invoke [PR 983]
- Dotnet issue 1860 activity.text can be null [PR 982]
- Added UsingMyGet.md [PR 977]
- Modularize scripts [PR 925]
- Fixed missing quote in JSDoc [PR 921]
- Make BotBuilder AI web compatible [PR 914]
- Updated the oracles to match LUIS. [PR 911]
- Edits for //build [PR 912]
- Fixed issues found in testing with Teams [PR 900]
- Fixed webpack bundling broken [PR 890]
- Updated node.js app insights sdk to 1.2.0 [PR 879]
- Choice prompt parity [PR 875]
- Restored the deleted script "test:travis" as "test:coveralls" [PR 871]
- Lint luisRecognizer.ts [PR 867]
- Added timeout in luisRecognizer & qnaMaker for node [PR 857]
- Handled textless messages differently, bringing Node into parity with .NET [PR 856]
- Upgraded LUIS to new SDK - this time with feeling [PR 844]
- Parity with c# - binary compat changes for LuisRecognizer [PR 842]
- Removed lerna and typescript install from travis.yml [PR 839]
- Added getTokenStatus method [PR 838]
- Telemetry LuisRecognizer & Telemetry Middleware [PR 816]
- Re-enabled linting [PR 806]
- Replaced async-file with fs-extra to match other packages [PR 805]
- Added full nock validation for LUIS calls [PR 796]
General
- Added MessageReaction to ActivityHandler [PR 1038]
- Added at mention removal code and used it in inspection [PR 1032]
- Added active learning support for QnA Maker [PR 1030]
- Updated LUIS Recognizer to support GeographyV2, OrdinalV2 and PersonName from LUIS. [PR 1024]
- Cleaned up package.json as per issue #926 [PR 1018]
- Fixed unzip dependency location [PR 1017]
- Added 'properties' property to conversationAccount [PR 999]
- Removed random from auto assigned ids [PR 998]
- Removed the NPM warning about filenamify already including types [PR 995]
- Added ability to pass LUIS prediction options into Recognizer.recognize method [PR 989]
- Removed property name existance check from botstate [PR 945]
- Removed html-entities library and its decoding from the answer formatting. [PR 909]
- Allow patch version of ms-rest to float. [PR 893]
- Moved numberOfAttempts to state from options [PR 889]
- Added numberOfAttempts to promptOptions [PR 870]
- Allow user to specify bot to channel token tenant [PR 841]
- Added userId parameter to signOutUser [PR 837]
- Fix AzureBlobTranscriptStore [PR 836]
- Line channel updates [PR 834]
- Update 4.3 build to show 4.3 branch builds [[PR 826]](https://github.com/microsoft/botbuil...
4.4
Welcome to the 4.4 release of the Bot Framework SDK for NODE.js!
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
- Changed en/decryption cipher to aes-256-cbc to work with Electron 4+ [PR 880]
- Allow user to specify bot to channel token tenant [PR 841]
- Add getTokenStatus method [PR 838]
- Add userId parameter to signOutUser [PR 837]
Language (LUIS, Recognizers, QnA)
- Lint luisRecognizer.ts [PR 867]
- Add timeout in luisRecognizer & QnAMaker [PR 857]
- Handle textless messages differently, bringing Node into parity with .NET [PR 856]
- Upgrade LUIS to new SDK - this time with feeling [PR 844]
- Parity with C# - binary compat changes for LuisRecognizer [PR 842]
- QnA Telemetry Support [PR 823]
- QnA Telemetry Support [PR 822]
- Bump to latest LUIS SDK package [PR 817]
- Telemetry LuisRecognizer & Telemetry Middleware [PR 816]
- Luis SDK tests (oracle) [PR 800]
- Add full nock validation for LUIS calls [PR 796]
Prompts and Dialogs
- Move numberOfAttempts to state from options [PR 889]
- Ability to change the Prompt Styling through dc.prompt() [PR 875]
- Add numberOfAttempts to promptOptions [PR 870]
State and Storage
Connectors and Adapters
- Add default middleware to patch location of tenantId for MS Teams [PR 886]
General
- Update node.js app insights sdk to 1.2.0 [PR 879]
- Line channel updates [PR 834]
- Re-enable linting [PR 806]
Engineering Excellence (Build, Automation, Testability, Refactoring)
- Allow patch version of ms-rest to float. [PR 893]
- Testbot for emulator [PR 892]
- Restore the deleted script "test:travis" as "test:coveralls" [PR 871]
- Removing lerna and typescript install from travis.yml [PR 839]
- Update build to show branch builds [PR 826]
- Update due to build name change [PR 825]
- Update for latest 4.4 Build [PR 824]
- Enable Sidecar debugging via InspectionMiddleware [PR 897]
- Move @types/documentdb to dependencies in package.json [PR 821]
- Replace async-file with fs-extra to match other packages [PR 805]
- Add lerna to package.json devDependencies [PR 802]
- Change test description to match implementation [PR 801]
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 some of the activity types in the Bot Framework Activity Schema. Exposing a simple On* methods (OnMessage, OnEvent, OnConversationUpdate, etc.), simplifying the usage of these activities.
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 the other area like Language, Prompt and Dialogs, and 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)
- Add support for LUIS endpoint to LuisRecognizer, tests [PR 780]
- Update LUIS to new (Azure) nodejs SDK [PR 766]
- QnA parity [PR 704]
- Made linting fixes to QnAMaker [PR 731]
Prompts and Dialogs
- Fixes #737 - Add new HeroCard prompt style to ChoiceFactory [PR 773]
- Make ActivityPrompt a normal class - remove abstract [PR 744]
- Added ability to call dialogs within a parent component. [PR 735]
- Change OAuthPrompt default timeout from 54000000 to 900000 ms [PR 730]
- Added choices parameter to DialogContext.prompt method [PR 721]
- Prevent Cortana from trying to use suggested actions in prompts [PR 732]
- Make defaultChoiceOptions private [PR 741]
State and Storage
- Truncate length of CosmosDb key to max of 255 chars [PR 760]
- Made databaseCreationRequestOptions & documentCollectionRequestOptions optional in CosmosDbStorageSettings interface [PR 695]
Integration layer
- Introduce ActivityHandler class [PR 757]
Connectors and Adapters
- Fix filename casing for activityHandler.ts [PR 784]
- Remove events from ActivityHandler that are too channel specific [PR 775]
- Fixes #755 - null connection name should not be allowed [PR 772]
- Ability to test OAuthPrompt and mock OAuth APIs [PR 759]
- Update TokenAPI from new swagger; adds optional channelId property [PR 752]
- Fix schema issues [PR 751]
- sort and extend list of channel constants [PR 743]
- Add support for channelData field in conversation references [PR 712]
Engineering (Build, Automatio, Tests)
- Revert LUIS runtime library, pin LUIS and ms-rest dependencies [PR 790]
- Updates to Package formatting and layout [PR 782]
- Remove unused mstranslator from botbuilder-ai [PR 794]
- Fixes 764: Outdated transcript-test package is causing GitHub warnings [PR 765]
- Fixes 762: libraries\swagger\generateClient.sh out of sync with generateClient.cmd [PR 763]
- Update swagger ms-rest to latest versions [PR 723]
- Update NodeJS v10.3.0 [PR 709]
- Update @types/node to v10.12.18 [PR 724]
- Add more language around daily builds [PR 701]
- Set Line endings on pacakge.json [PR 776]
General
4.2.1 BotBuilder Release
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 PowerBid 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 other areas 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
V4.2.1 Changelog
- Published new packages to update our "latest" tag on NPM.
V4.2.0 Changelog
Monitoring, Telemetry and Analytics
- Add AppInsights package into build publish step [PR 688]
- Add user agent header to LUIS [PR 677]
- Add BotTelemetry instrumentation and utilities [PR 662]
- Fix require of cls-hooked [PR 689]
- Add console.error for async TranscriptLogger.logActivity() impl in TranscriptLoggerMiddleware [PR 669]
note breaking change
- [Breaking Change] change PagedResult and TranscriptInfo to interfaces [PR 664]
Language (LUIS, Recognizers, QnA)
- QnAMaker - Add getAnswers(), fix options in constructor, add metadata, create queryQnaMakerService() [PR 683]
- Role instead of entity type as property name in composites. [PR 622]
Prompts and Dialogs
- Fix confirm prompt when invalid locale used with number selection [PR 654]
- ActivityPrompt wasn't using retryPrompt if specified. [PR 673]
State and Storage
- Add overloads to BotStatePropertyAccessor.get() [PR 647]
- Clear state fix [PR 636]
- Correct NO_KEY messages in State classes for issue #610 [PR 631]
- Added BotState.delete() method and tests [PR 679]
Connectors and Adapters
- Update model_fixes.js to set CardAction.channelData as an optional property [PR 659]
- Updates to validate emulator JWT tokens from US Gov [PR 638]
- Update swagger to 10/30 snapshot [PR 601]
- Add getReplyConversationReference [PR 657]
Engineering (Build, Automation, Tests)
- Improve swagger-generation process for bf-connector & bf-schema libraries [PR 666]
- Lock internal dependencies to patch version [PR 656]
- Fixes #640 - Use of deprecated methods causing Warnings during build [PR 653]
- Pin ms-rest-js and ms-rest-azure-js in botframework-connector and botframework-schema [PR 644]
- Add channelService to endpoint service of bot configuration file [PR 633]
- Mime: Update to 1.4.1 for security vulnerability [PR 616]
- Fix auth tests that were using expired tokens [PR 650]
- Remove request dependency from botframework-connector library [PR 619]
General
Bot Framework Protocol Updates and Government Datacenter Support
The 4.1.5 release incorporates changes to the Bot Framework to support activity
PR #601
- duration
- localtimeszone
- HistoryAPI
- TokenService
Authentication in the US Government data centers has also been added.
4.1 BotBuilder Release
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.
- See the list of issues addressed
Change Log 4.1.3
Detailed merged pull-requests that went into 4.1.3
Storage providers
- update CosmosDbStorage and CosmosDbKeyEscape [PR 561]
- Fixes and Updates to the CosmosDB Storage Provider [PR 556]
- Fix #547: don't use select * in queries [PR 553]
Language (LUIS, Recognizers, QnA)
- Add getEndpoint to ILuisService definition [PR 549]
- use object spread instead of explicit assigns in LuisRecognizer [PR 530]
- Change Dutch translation in confirmPrompt ('niet' to 'nee') [PR 528]
Prompts and Dialogs
- fix ConfirmPrompt and Prompt.appendChoices() bugs, add tests [PR 537]
- temporarily disable AuthHeader tests to stop build breaks, #533 [PR 534]
- updated supportsSuggestedActions() for directline & webchat [PR 529]
- update ChoiceFactory.toChoices to fill in partial Choice.actions [PR 511]
- add ActivityPrompt and ChoicePrompt tests [PR 496]
- Fix activity timestamp string to Date. [PR 505]
Connectors, Adapters, middleware
- botframework-connector auth test cleanup [PR 557]
- Cleaned up adapter [PR 544]
- Bugfix BotFrameworkAdapter.createConversation [PR 535]
- Prevents overwriting the state using AutoSaveState middleware [PR 516]
- use apply() instead of loops in AutoSaveStateMiddleware, add test [PR 497]
- Add ShowTypingMiddleware [PR 507]
Engineering (Build, Automation, Tests)
- delete deprecated Generator code [PR 550]
- Update Travis Yaml file to pickup MyGet key from Travis variable [PR 543]
- add number test for ChoicePrompt [PR 532]
- add tests for BotFrameworkAdapter methods [PR 526]
- add more tests for choicePrompt and related code [PR 521]
- Add ComponentDialog, DialogSet, WaterfallDialog and WaterfallStepContext tests [PR 514]
- Fix npm packages vulnerabilities in Tools [PR 512]
- Apply tslint rules to all files [PR 510]
- Fix npm packages vulnerabilities in Generator [PR 509]
- Update dependencies to latest versions [PR 500]
- add more tests for State classes and CardFactory [PR 498]
- Fix npm package vulnerabilities in botframework-connector [PR 494]
- Use package-lock.json version [PR 493]
- Use npmjs instead of myget in package-lock.json [PR 492]
- Add missing botbuilder-core/package-lock.json [PR 491]
- Add missing botbuilder-azure/package-lock.json [PR 490]
- Fix npm package vulnerabilities in botbuilder-ai [PR 489]
- Fix npm package vulnerabilities in botbuilder [PR 488]
- Update the inline reference docs for botbuilder-ai [PR 486]
- Fix vulnerability in base64url before 3.0.0 [PR 485]
- Fix for working with ServerlessFramework [PR 503]
- BotRecipe.fromJSON to use default values if arg doesn't have expected values, add BotRecipe tests [PR 501]
Release of all 4.0.8 packages to npm
This release adds support needed for deploying bots to Azure Government based data centers.