Skip to content

Latest commit

 

History

History
1075 lines (675 loc) · 56.6 KB

CHANGELOG.md

File metadata and controls

1075 lines (675 loc) · 56.6 KB

Changelog

All notable changes to Botonic will be documented in this file.

[Unreleased]

Changes that have landed in master but are not yet released. Click to see more.

[0.25.X] - 2024-xx-xx

Added

Changed

Fixed

[0.27.0] - tbd

Added

Changed

Fixed

[0.26.0] - 2024-04-30

Added

Changed

Fixed

[0.25.0] - 2024-03-27

NOTE: Required version has been updated to be run with Node 20 and npm 10.

Added

Changed

Fixed

  • @botonic/dx
    • jest, eslint, prettier and webpack has been updated to use latest versions.

[0.24.5] - 2024-03-21

Changed

[0.24.1] - 2024-03-20

Added

[0.24.6] - 2024-03-20

Added

Changed

[0.24.5] - 2024-03-11

Fixed

[0.24.5] - 2024-03-08

Fixed

[0.24.3] - 2024-03-05

Added

[0.24.4] - 2024-03-05

Fixed

[0.24.3] - 2024-01-30

Fixed

[0.24.2] - 2024-01-23

Added

Fixed

[0.24.1] - 2024-01-09

Added

[0.24.2] - 2024-01-05

Fixed

[0.24.1] - 2023-12-20

Added

Fixed

Added

[0.24.0] - 2023-11-29

Added

Changed

  • @botonic/core
    • Fixed an error with isBrowser function, now check !window.process?.versions?.node

Fixed

[0.23.5] - 2023-12-13

Changed

[0.23.4] - 2023-12-01

Fixed

[0.23.0] - 2023-01-07

Added

  • @botonic/plugin-hubtype-analytics This plugin is used to integrate Hubtype Analytics Service in your Botonic project.

  • @botonic/plugin-knowledge-bases This plugin allows you to integrate Hubtype Knowledge bases in your Botonic project. This allows you to train an AI with pdf documents of FAQs, and your bot knows how to answer those questions.

  • @botonic/plugin-flow-builder You can pass functions through the configuration, so that the plugin-flow-builder uses the plugin-knowledge-bases and the plugin-hubtype-analytics.

Changed

Fixed

0.21.0 - 2023-03-09

Added

  • Project

    • Added @botonic/plugin-hubtype-babel: This plugin allows you to integrate Hubtype Babel in your Botonic project. It works like any other AI/NLU services plugin, like Dialogflow, Watson, etc.

Changed

Fixed

0.20.0 - 2021-10-28

NOTE: At this moment, Botonic v0.20.0 will be in Mainteinance LTS status and will be maintained in master-lts branch until further notice. Currently we are working on Botonic 1.0 which will come with several improvements and hence all its commits from now on will reside in master.

Added

Changed

  • @botonic/core

    • Distribute @botonic/core library with CJS and ESM versions to improve tree-shaking functionalities. #1826
    • Refactored @botonic/core from JS to TS. Reviewed and improved functionalities like retries, redirects, dynamic routes and empty actions. #1937 Feel free to check tests for further information.

Fixed

0.19.0 - 2021-07-29

Added

  • Project

    • Added @botonic/plugin-google-translation: Translating user inputs text and detect its languages.
    • Added new packages with common configurations for bot development encapsulating logic that may be not relevant to the developer but keeping them extendable.
    • Added new NLP packages with improved training scripts, improved intent classification and new entities detection feature:
    • Added new packages for incoming Botonic 1.0:
  • @botonic/react

    • Added onConnectionChange event listener that will be triggered when connection status of websocket changes.
    • Added new Raw component to directly send JSON payloads to connected messaging APIs and allow access to all of their features.
    • Improved buttons support in Multichannel components and allow displaying them in Whatsapp. #1699
    • Added experimental directory for Botonic 1.0. #1701

Changed

  • @botonic/cli

    • Improved telemetry. #1305, #1307, #1342
    • Removed force flag (default behavior is to always deploy your bot bundle), improved error handling and minor refactor. #1321

Fixed

0.18.0 - 2021-02-02

Added

  • Project

    • Added configuration to measure code coverage with LCOV #1232 and #1233.
    • Updated documentation for Shadow DOM, Webchat Storage and Handoff functionalities, #1246.
  • @botonic/react

    • New webchat features:
      • Added disabling buttons. Configurable at:
        • Theme level: theme.button.autodisable and theme.button.disabledstyle.
        • Component level: by passing the props autodisable and disabledstyle to Button components.

Changed

Fixed

0.17.0 - 2020-12-18

Added

Changed

Fixed

0.16.0 - 2020-11-20

Added

  • @botonic/core

    • Added new matcher request matcher and pass lastRoutePath to current bot context. #1086

Changed

Fixed

  • @botonic/react

    • Added missing storage key in constructor, now storageKey works as expected.
    • Automatically call onMessage when receiveng messages coming from server-side.
    • Added missing call to stringifyWithRegexs causing some regexes not being updated in local/session storages. Fixed react warnings (produced by npm run test), log deprecated props in custom messages. #1063 Deprecated props:
      • enableTimestamps => enabletimestamps
      • imagesStyle => imagestyle
    • Fixed sending of unsent inputs to be more consistent.
    • Fixed onClose being called on the very first render of the app.
    • Fixed WebchatSettings component not updating settings correctly.
    • Set ack to 1 for custom user messages by default.

0.15.0 - 2020-10-27

Added

  • @botonic/react

    • New webchat features:

      • Added new target prop to Button component to define the behavior to open links.
      • Added new WhatsappTemplate component for Webchat.
      • New getBotonicApp() to access Botonic methods.
      • Added a new webchat setting storageKey that indicates the key name to use in order to store the webchat state in localStorage (or sessionStorage).
  • @botonic/plugin-contentful

    • Improvements in Content.validate of text & shortText fields

      • Validate text.text even if the content has no keyword (it could be accessed through a button)
      • Before, when shortText was empty, the Contentful driver used to set it with the value of the name field (to ensure buttons did not show blank texts). Now this is managed by the Button model, so that MessageContent.validate() can report it.
      • Improved ContentsValidator. Now it's possible to report the detected errors into a callback.
    • New CMS method to deliver content by id when the content type is unknown.

    • Added NLP support for German.

Changed

  • Project

    • Improved script to automatically bump versions for Botonic packages (it also updates references to other Botonic dependencies).
    • Improved documentation
  • @botonic/nlu

    • Refactored and migrated NLU engine to Typescript. Read the new docs here.

Fixed

  • @botonic/cli

    • Fixed imports in templates which were broken after 0.14.0 change in entry files.
    • Added validation of templates and examples in CI
  • @botonic/react

    • session properties now are merged and updated correctly.
    • Avoid customMessage to crash if they have bad children. Some bots may store no-react objects in children.
    • Fixed error appearing in some tests: Received true for a non-boolean attribute markdown. Caused by styled-components.

0.14.0 - 2020-10-01

Added

  • @botonic/cli

    • New bot template dynamo using Botonic dynamoDB plugin from a JS bot.
  • @botonic/react

    • Improved behavior when end user messages are lost due to connection issues. Missed inputs will be resent when connection is regained.
    • End user messages will be displayed with less opacity until they are correctly delivered to the server.
    • Added classNames to blob messages by default, under the following format: {type}-{from} {customTypeName} e.g.: Text messages from user -> text-user e.g.: Custom messages from bot -> custom-bot my-custom-message-name
    • Passing mobileStyle in webchat/index.jsis now allowed.
    • Added arrow buttons for better interaction with Webchat Carousels. They can be customized.
    • Disabling timestamps in the custom Messages using the enableTimestamps prop is now allowed.
    • Defined where to store the botonicState using the variable storage.
    • The methods openCoverComponent, closeCoverComponent and toggleCoverComponent are available in the browser, through the Botonic object, so that the coverComponent can be shown/hidden manually.
  • @botonic/plugin-contentful

    • Decorator for Contentful that can distribute the delivery requests amongst different spaces/environments.
    • Added a new tool to modify the locales of Contentful spaces exported as json file with "contentful space export". The tool is able to change the name of a locale without altering the contents and to remove unwanted locales.
    • Added a tool to duplicate the value of reference fields into a new locale. Reference fields (assets or links to other contents) will typically be the same for all locales, but not always. So we initially link them all to the same target for all locales. The tool is useful to migrate a space where fallback locales are used to another where locales have no fallback.
    • The NLP package now supports locales whose name include the country (eg. es_ES).
    • Added an option for Contentful plugin to be able to change the name of the locale when sent to Contentful.
    • Added logCall flag to contentfulOptions in order to log creation configuration, as well as all calls performed to the CMS.
    • Added class ContentsValidator, which validates that all contents of a locale can be correctly delivered.
    • Added NLP support for Turkish.
    • Added NLP support for Italian.
    • Added NLP support for French.

Changed

  • Project

    • Upgraded typescript to 4.0.2.
    • Upgraded eslint plugins and fixed new warnings.
    • Improved documentation and reestructure.
  • @botonic/cli

    • Improved index.d.ts definitions.
    • Breaking change: Added /webpack-entries to every template to ensure that Webpack's tree-shaking is done and modified webpack.config.js as a consequence. This reduces the bundle sizes of every bot. From developers upgrading their projects from version 0.13.0 the following changes will be necessary:
      1. Create a new directory called webpack-entries under bot project's root folder. Copy dev-entry.js, node-entry.js, webchat-entry.js and webviews-entry.js inside. You can find them here.
      2. Modify the following lines in webpack.config.js:
      • In botonicDevConfig modify the line for entry to be: path.resolve('webpack-entries', 'dev-entry.js'),
      • In botonicWebchatConfig modify the line for entry to be: path.resolve('webpack-entries', 'webchat-entry.js'),
      • In botonicWebviewsConfig modify the line for entry to be: path.resolve('webpack-entries', 'webviews-entry.js'),
      • In botonicServerConfig modify the line for entry to be: path.resolve('webpack-entries', 'node-entry.js'),
  • @botonic/react

    • Refactored timestamps. They can be enabled by setting theme.message.timestamps.enable to true. (Default format will be as follows: 29 Jun, 12:40:07). The content can be formatted by defining a function under theme.message.timestamps.format which returns a string with the formatted date and their styles under theme.message.timestamps.style.
    • Improved index.d.ts definitions.

Fixed

  • @botonic/core

    • Added the export of getAvailableAgentsByQueue, which was not accessible.
  • @botonic/react

    • Removed moment dependency to reduce bundle size.
    • Closed PersistentMenu automatically when the end user clicks outside.
    • Fixed webchat properties not being properly read by deep merging properties.
    • Disabled text input when CoverComponentis shown.
    • Added missing animationsEnabled prop.
    • Now Custom Message Types can be used together with the Reply component.
    • Deactivated markdown in webchat when viewing messages using WhatsApp provider.
    • Sending messages with only spaces is now avoided.
    • Renamed theme property hoverText to hoverTextColor in button.jsx so that changing the text color of a button on hover can work.
  • @botonic/plugin-contentful

    • Fixed bug in Contentful Schedule, where schedule was miscalculating around midnight. It was not taking the timezone offset into account to calculate the weekday.

0.13.0 - 2020-06-15

Added

  • Project

    • Scripts to upgrade dependencies, prepare botonic packages and update packages version.
  • @botonic/react

    • New webchat features:

      • Added support for custom Cover Component which will be shown when the chat is initiated. You can use it in order to collect information from enduser just before to start the conversation.
      • Now webchat will be displayed depending on the settings present in Hubtype Desk (set visibility: 'dynamic' in webchat/index.js to enable them, or as a parameter in Botonic.render({appId:'YOUR_APP_ID', visibility: 'dynamic'}). You can also pass a custom value or a custom function returning a boolean to handle webchat visbility (also through visibility option).
      • Added Botonic.getVisibility() function which returns a promise resolving to true or false depending on Hubtype Desk webchat visibility settings.
      • Added new WebchatSettings component to allow changing webchat features and styles dynamically.

Changed

  • Project

    • Updated breaking uuid dependencies.
    • Migrated documentation from Docusaurus v1 to v2 for better support.

Fixed

  • @botonic/cli

    • Optimized bundle sizes for templates by using moment-locales-webpack-plugin: updated template dependencies and webpack.config
    • Updated intent template (improved flow and more detailed descriptions to be less confusing for the developer)
  • @botonic/core

    • Construct headers dynamically to ensure bad headers are not sent to the backend
  • @botonic/react

    • Fixed enduser inputs to only process links instead of full markdown. Allow also custom messages defined with from user props.
    • Fixed wrong value being send when button of persistent menu is clicked and its text is send to the chat.
    • Fixed and updated Facebook Messenger Extensions SDK which was causing issues with Webviews.
    • Added missing webchat property enableUserInput.
    • Fixed carousel disaligned buttons styles to be at same height
  • @botonic/nlu

    • Fixed nlu processing hidden files. This affected on the results obtained in development mode.
    • Updated and freezed @tensorflow/tfjs-node and @tensorflow/tfjs dependencies to 1.7.3 which were automatically updating to higher versions with bugs, introducing bugs to training processes.

0.12.0 - 2020-05-26

Added

  • @botonic/core

    • Transferring conversations to an agent is allowed with its identifier (id or email) with withAgentId(agentId) or withAgentEmail(agentEmail) method of HandOffBuilder. Now queue is not mandatory. The case will be assigned to the first queue which agent belongs.
    • getAgentVacationRanges is added to know availability of agents.
    • More router tests.
    • Type definitions improvement in index.d.ts.
  • @botonic/react

    • General features:

      • Type definitions improvement in index.d.ts.
      • Improved Text.serialize method.
    • New webchat features:

      • Breaking change: The text of a Button/Reply is now sent along with its payload. You can use button: {messageType: 'postback'} in webchat/index.js to enable the previous behavior.
      • Breaking change: Markdown is rendered by default within all the Text components. To disable it, you can declare the component as follows: Your text.
      • Be able to pass additional styles to Custom Messages.
      • Persistent Menu customizable with property customPersistentMenu in webchat/index.js.
      • Persistent Menu button customizable with property customMenuButton.
      • Possibility to enable timestamps in messages.
      • More unit tests added for Webchat.
      • More adaptable Webchat in iOS.
    • Multichannel:

      • Customize Multichannel visualization.
      • Multichannel to support letter indexes.
      • Compact Multichannel Text and Carousel.
      • Multichannel to allow separating messages with custom string.
  • @botonic/plugin-contentful

    • Passing Normalizer to CMS is now allowed.
    • Markup support for WhatsApp and Markdown.
    • Stemmers/tokens for Russian.
    • Normalizer now throws an exception for empty texts.
    • Keyword search now sets the result's score field
  • @botonic/plugin-inbenta

    • Added new package @botonic/plugin-inbenta to integrate the Inbenta Knowledge Management API. Please refer to its README for more information.

Changed

  • Project

    • Most eslint rules config have been moved to root .eslintrc.js.
  • @botonic/react

    • webchatReducer moved to its own file.
    • webchatReducer split to reduce complexity.
    • Calls to renderBrowser/renderNode unified.
    • emoji-picker-react updated to latest version 3.7.1 (visual changes).

Fixed

  • Project

    • pre-commit was not aborting when lint failed.
    • Fixed several eslint warnings.
  • @botonic/cli
    • Preserved src/nlu directories for all templates (added .gitkeep file). Remove these files before running botonic train.
    • Added missing calls with await.
    • Used rimraf in favor of fs.rmdirSync.
    • Templates: Call CleanWebpackPlugin with
      { cleanOnceBeforeBuildPatterns: ['dist'] } to prevent occasional builds from crashing. We strongly suggest to add this line in your bot's webpack.config.js if updating from previous versions.
  • @botonic/react

    • Fixed sending wrong payloads when a handover was ended in botonic serve mode.
    • postMessage promises are now forwarded.
    • Better scrollbar handling when Webchat is hovered.
    • Limit attachment sizes to 10MB.
    • Fixed attachments crashing in production build for Webchat (media messages will be no longer stored as binary data in local storage, so the content will only be available temporarily in botonic serve mode).
    • Webchat's theme properties such message.bot.image, header.image, intro.image and triggerButton.image are now accepting URLs.
    • Fixed issue causing Botonic Logo to be visible during few milliseconds in production.
    • Handled parent page scrolling issues in Webchat for iOS.
  • @botonic/plugin-contentful
    • BotonicMsgConverter is now using replaceEmptyStringsWith option with value.
    • New operations are available to clone Contents performing composable transformations.
    • New operations are available to traverse the chain of followUp fields of MessageContent.
    • When calculating the match substring and score between an utterance and a keyword, tokens are preferred to stems when comparing to keywords.

0.11.0 - 2020-03-25

Added

  • Project

    • Github Actions workflow which runs linter and tests
    • Development dependencies are centralized in parent folder.
    • Pre-commit for all packages.
  • @botonic/cli

    • New ability to deploy specifying the Hubtype credentials as Botonic's CLI command arguments.
  • @botonic/core

    • New inspector to debug route matching.
  • @botonic/react

    • General features:
      • Type definitions improvement in index.d.ts.
    • New webchat features:
      • New Multichannel HOC, which automatically converts your interactive components to text-based components for WhatsApp.
      • New default animations in webchat: Messages are now displayed with a fade-in effect and clickable elements are rescaled with the hovering function. You can disable them in the webchat's theme object through animationsEnabled or animations.enabled properties.
      • New ‘Send’ button (enabled by default). You can disable it by setting userInput.sendButton.enable to false. You can also use your own created component with userInput.sendButton.custom.
      • New Botonic.clearMessages() method to force the deletion of the messages stored in the webchat.
  • @botonic/plugin-contentful

    • Improve tokenization of words containing hyphens and number (eg. covid-19).
    • Improve tokenization of "pronoms febles" in Catalan.
    • New API to update the texts of contentful contents.
    • Tool for translators to translate the content texts through CSV files.
    • Now buttons can refer to contentful queues (or any other top content).
    • Now all Content's have the "id" field.

Changed

  • Project

    • Dependabot to check for updates on a weekly basis.
    • Development dependencies are now installed in the repository top folder (parent config).
  • @botonic/cli

    • Breaking change: The Minimal Node version is now node-v10.19.0
    • Webpack's resolve configuration is now unified into resolveConfig object.
  • @botonic/react

    • Breaking change: emojiPicker property is renamed enableEmojiPicker.
    • All styles of the project are converted into Styled Components.
  • @botonic/plugin-contentful

    • Upgrade to typescript 3.8
    • Breaking change: Refactor TopContent and Content base classes. ModelType renamed to TopContentType.
    • Breaking change: Refactor so that SearchResult now returns ContentId's instead of ContentCallback's.
    • Now only the required language-specific NLP.js folders are imported. This enables tree shaking to exclude big sentiment analysis files.
    • Error reporting decorator now also reports the originating exception.
    • Flag to disable the CMS delivery cache.
  • @botonic/plugin-dynamodb

    • Upgrade to typescript 3.8
    • Breaking change: Move Env to its own file to ease tree-shaking

Fixed

  • @botonic/react

    • Noto Sans JP now does not show up as default typography.
    • simplebar deprecation warnings have been resolved
    • Fixed outer page scrolling that produced unstable behavior.
    • Fixed noopener parameter/option to avoid security risk in location links.
    • Fixed compromise import in @botonic/cli's nlu template.
    • Webviews are now rendered within div instead of iframe for a better visualization when developing locally without affecting production builds

0.10.1 - 2020-01-14

Added

  • Added default config for every template { defaultDelay: 0.4, defaultTyping: 0.6 } to avoid misleading warnings in botonic serve.

Changed

Fixed

  • Allow calling dynamic routes (routes as a function) in nested routes.
  • Fix for issue #409.
  • Fix for runtime error produced when a Text had empty text and no buttons nor replies.

0.10.0 - 2019-03-12

Added

  • Added changelog.
  • Native support for mobile devices for Webchat. Customizable breakpoint (mobileBreakpoint, webchat/index.js).
  • Enable media attachments for Webchat (userInput.attachments.enable of webchat/index.js).
  • Enable an emoji picker for Webchat (userInput.emojiPicker, webchat/index.js).
  • Customizable scrollbar for Webchat (theme.scrollbar , webchat/index.js). Now the default scrollbar's style will be like the one in OS X systems for all platforms (Mac, Linux and Windows).
  • New handoff options for handling cases with Hubtype's Desk. Refer to Human Handoff section.
  • Customization of Webchat's header, userInput bottom area, userInput text box, replies, buttons styles and webview header (header.style, reply.style, button.style, userInput.style, userInput.box.style, webchat.header.style, webchat/index.js).
  • Cancel's label of the Webchat's persistent menu can now be changed by passing to persistentMenu the object {closeLabel: 'newCloseLabel'}.
  • export const config = { defaultDelay: 1, defaultTyping: 2 } can be added to src/index.js to define a global configuration for typing and delay options.

Changed

Fixed

  • Typography now will be changed in a proper way for all Webchat components by passing the fontFamily attribute in theme.style in webchat/index.js.
  • Webchat's triangles of messages bubbles (bot/user) are now modified according to style.background passed to botMessageStyle or userMessageStyle.
  • Typing indicator not showing up when messages had delay/typing as webchat didn't scroll to bottom.
  • Now typing and delay work properly in production.
  • Remove errors prompted in browser developer's console by changing dep @rebass/grid to rebass.
  • Carousels with just one element won't be broken.
  • Using staticAsset in custom-webchat template that produced a bug in production.