To make the Rocket.Chat experience even more pleasant and smooth for our users, the development efforts of version 3.14.0 were focused on design tweaks and bug fixes. The sizes of the graphic elements present in the last releases have been improved, alongside some new security fixes and improvements in the usability of our new Teams feature. We believe that this will allow a wider and more correct use of Rocket.Chat.
The Rocket.Chat launch strategy is based on having an adequate number of resources with a high degree of quality. To summarize: 48 bugs were fixed, 9 improvements were made and 9 new features were developed. The release also had 29 contributors, to whom we say thank you very much!
*You can check the complete release by clicking here.
New method in the omnichannel bridge that allows apps to fetch departments that are enabled and have agents assigned.
Adding the user information when installing and uninstalling an App to the Apps-Engine.
The second layer encryption for data transport works by implementing the ECDH algorithm, where session keys are exchanged before the rest of the communication. This feature is enterprise only since it requires the micro-services architecture and it's in the early stage of tests as an alpha feature and documentation may not be available before the beta stage.
This small PR does the following:
- Now React is the web client's first-class citizen, being loaded before Blaze. Thus, BlazeLayout calls render templates inside of a React component (BlazeLayoutWrapper);
- Main client startup code, including polyfills, is written in TypeScript;
- At the moment, routes are treated as regular startup code; it's expected that FlowRouter will be deprecated in favor of a new routing library;
- React was updated to major version 17, deprecating the usage of React as namespace (e.g. use memo() instead of React.memo());
- The client/ and ee/client/ directory are linted with a custom ESLint configuration that includes:
- react-hooks/* rules for TypeScript files;
- react/no-multi-comp, enforcing the rule of one single React component per module;
- react/display-name, which enforces that React components must have a name for debugging;
- import/named, avoiding broken named imports.
- A bunch of components were refactored to match the new ESLint rules.
- Store each user's previously used passwords in a passwordHistory field (in the users record);
- Users' previously used passwords are stored in their passwordHistory even when the setting is disabled;
- Add "Password History" setting -- when enabled, it blocks users from reusing their most recent passwords;
- Convert comparePassword file to TypeScript.
Create and schedule a task manually at scheduleRecurring method so the first iteration runs after the configured interval. This is accomplished by adding the setting skipImmediate: true when setting up the task.
Japanese characters were being recognized as emojis and thus not being rendered correctly on the Live Chat widget. This improvement fixes this problem and allows our japanese rocketeers to communicate without any problems.
- Display error messages when the user attempts to create or edit users' or channels' names with any of the following words (case-insensitive):
Add a proxy for data export downloads (instead of just linking ufs urls) so we can have more control over its response. Also added a human readable message when the user tries to download the user-data unauthenticated.
Send Accept-Language header on oembed requests.
- Create new MediaService (ideally, should be in charge of all media-related operations).
- Resize emojis to 128x128.