github RocketChat/Rocket.Chat 5.0.0-rc.0

latest releases: 6.10.0-rc.3, 6.8.3, 6.8.4...
pre-release24 months ago

2022-07-04 · 13 ️️️⚠️ · 33 🎉 · 20 🚀 · 109 🐛 · 291 🔍 · 63 👩‍💻👨‍💻

⚠️ BREAKING CHANGES

  • Chore: Remove unused tokenpass integration code (#25831)

  • Deactivated team members are added to auto-join rooms (#25016)

    • Do not add deactivated users to auto-join rooms.
  • Remove Blockstack authentication (#25649)

    Blockstack authentication is broken and is preventing some dependencies to be up to date. As a migration to Stacks authentication is not trivial, we've opted for removing the authentication service.

  • Remove RDStation integration (#25774)

  • Remove show message in main thread preference (#26002)

    This PR removes the confusion between the show message in main thread and the function also to send to channel. In the past, we used the show message in main thread as a solution to help users to understand the thread feature, as this feature is now mature enough there's no reason to maintain this preference.

    Send the thread message to the main channel or just inside of the thread, should be a decision from the user where the function also send to channel appears. Because of that, and because of a bunch of requests and issues we received, we're introducing a new preference also send thread to channel where users will be able to decide the behavior of the checkbox.

    image

    Now there are three behavior options

    • Default: when it unchecks after sending the first message
    • Always: stay checked for all messages
    • Never: stay unchecked for all messages
  • Remove support to old MongoDB versions (#26098)

    As per MongoDB Lifecycle Schedules (https://www.mongodb.com/support-policy/lifecycles) we're removing official support to MongoDB versions 3.6 and 4.0 that have already reached end-of-life.

    As MongoDB 4.2 was a "supported" version before Rocket.Chat 5.0, we'll continue supporting it, but will be flagged as deprecated. We recommend upgrading to MongoDB 4.4+.

    Here are official docs on how to upgrade to some of the supported versions:

  • remove unused endpoints and restify others (#25889)

  • Suspend push notifications when login token is invalidated (#20913 by @g-thome)

    link the auth token to the push token

  • Upgrade to version 5.0 can be done only from version 4.x (#26100)

  • use urlParams on omnichannel/agent/extension/ (#25982)

  • use urlParams on omnichannel/agent/extension/ (#25874)

  • use urlParams on omnichannel/agent/extension/" (#25980)

  • VideoConference (#25570)

    In this PR we're deprecating the Video Conference functionality from the core of the application and introducing a new video conference flow:

    Now the video conference feature will be agnostic so you'll be able to set the provider such as Jisti and BBB as apps from our marketplace:

    Video conferences settings are now global, allowing you to set the default provider

    [Enterprise Features]

    • Video Conferences List
    • Ringing function for direct messages

🎉 New features

  • APPS: Allow apps to modify a subset of global settings (#25913)

  • APPS: Allow dispatchment of actions from input elements (#25949)

    This allows for apps receiving block actions when a user types on a plain text input field or selects an item from the static. A debounce of 700 ms is done when listening for typing action so the app is not flooded with actions.

    input-element-block-action.mp4
  • APPS: Allowing apps to register authenticated routes (#25937)

    Adds adaptations that allow apps to declare an API endpoint that requires authorization from Rocket.Chat prior to executing

  • ENTERPRISE: Device Management (#25791)

  • ENTERPRISE: Introducing dial pad component into sidebar, calls table, contextual bar (#26081)

    This PR adds a new call button that can be used from Sidebar & Contact Center. This also enables Omnichannel agents to make outbound calls from within Rocket.Chat.

    Depending on your server and call server configuration, you can do international calling, national and domestic calling.

    The buttons on Contact Center allows an agent to call an existing number without having to type the number again.

  • Ability for RC server to check the business hour for a specific department (#25436)

  • Accept quoted slash command arguments (#11744 by @Hudell)

  • Add expire index to integration history (#25087)

  • Add new app events for pin, react and follow message (#25337)

  • Add new events after user login, logout and change his status (#25234)

  • Add option to show mentions badge when show counter is disabled (#25329)

  • Add user events for apps (#25165)

  • Adding app button on user dropdown (#25326)

  • Alpha Matrix Federation (#23688)

    Experimental support for Matrix Federation with a Bridge

    Quick.Example.showing.Matrix.org.mp4
  • Colors Palette - Buttons (#25626)

  • Community Edition Watermark (#25844)

  • Create releases tab in the marketplace app info page (#25965)

    Added a Releases tab to the app info page of installed marketplace apps. This tab will show all the released versions of a given app with its version number, release date in humanized form, and the changelog of this given release with the information provided by the publisher, this changelog accepts and renders markdown. Also refactored some component names and logic for maintainability reasons.
    Demo gif:
    app-releases-tab-final

  • Create Team with a member list of usernames (#25868)

  • Enable outbound calling for EE (#25843) (#25960)

  • Engagement Metrics - Phase 2 (#25505)

    Add the following new statistics (metrics):

    • Total Broadcast rooms
    • Total rooms with an active Livestream;
    • Total triggered emails;
    • Total subscription roles;
    • Total User Roles;
    • Total uncaught exceptions;
    • homeTitleChanged: boolean value to indicate whether the Layout_Home_Title setting has been changed;
    • homeBodyChanged: boolean value to indicate whether the Layout_Home_Body setting has been changed;
    • customCSSChanged: boolean value to indicate whether the theme-custom-css setting has been changed;
    • onLogoutCustomScriptChanged: boolean value to indicate whether the Custom_Script_On_Logout setting has been changed;
    • loggedOutCustomScriptChanged: boolean value to indicate whether the Custom_Script_Logged_Out setting has been changed;
    • loggedInCustomScriptChanged: boolean value to indicate whether the Custom_Script_Logged_In setting has been changed;
    • matrixBridgeEnabled: boolean value to indicate whether the Matrix bridge has been enabled;
  • Expand Apps Engine's environment variable allowed list (#23870 by @cuonghuunguyen)

  • Federation (Alpha Stabilization) (#25457)

  • Fuselage ToastBar (#25583)

    Kapture 2022-05-20 at 14 50 19

  • Get user's preferred language via apps (#25514)

  • Marketplace new app details page (#24711)

    Change the app details page layout for the new marketplace UI. General Task: MKP12 - New UI - App Detail Page

    MKP12 - Tab Navigation

    New tab navigation layout for the app details page. Now the app details page is divided into three sections, details, logs, and settings, that can each be accessed through a Tabs fuselage component.

    Demo gif:
    tab_navigation_demo_gif

    MKP12 - Header

    Implemented a new header for the marketplaces app details page.
    -Changed the size of the app name;
    -Implemented the app description field on the header;
    -Changed the "metadata" section of the header(The part with the version and author information) now it also shows the last time the app was updated;
    -Created a chip that will show when an app is part of one or more bundles and inform which are the bundles;
    -Implemented a tooltip for the bundle chips;
    -Created a new button + data badge component to substitute the current App Status;
    -Changed the title of the "purchase button". Now it shows different text based on the "purchase type" of the app;
    -Created a new Pricing & Status display which shows the price when the app is not bought/installed and shows the app status(Enabled/Disabled) when it is bought/installed;
    -Changed the way the tabs are rendered, now if the app is not installed(and consequently doesn't have logs and settings tab) it will not render these tabs;

    Demo gif:
    new-header-gif

    MKP12 - Configuration Tab

    Delivered together with the tab-navigation task. Changed the app settings from the details of the app to the new settings tab.
    Demo image:
    New configuration tab

    MKP12 - Log Tab

    Changed the place of the app logs from the page to the new logs tab. Also changed some styles of the logs accordions to fit better with the new container.

    Before:
    Before

    After
    After

    MKP12 - Page Header

    Changed the design for the page header of the app details page from a title on the left with a save and back button on the right to a back arrow icon on the left side of the title with the save button still on the right. Also changed the title of the page from App details to Back.
    Edit: After some design reconsideration, the page title was changed to App Info.
    Demo gif:
    new_page_header_app_details

    MKP12 - Detail Tab

    Implemented markdown on the description section of the app details page, now the description will show the detailedDescription.rendered (as rendered JSX) information in case it exists and show the description (a.k.a. short description) information in case it doesn't. Unfortunately, as of right now no app has a visual example of a markdown description and because of that, I will not be able to provide a demo image/gif for this PR.

    MKP12 - Slider Component

    Created an image carousel component on the app details page. This component receives images from the apps/appId/screenshots endpoint and shows them on the content section of the app details of any apps that have screenshots registered, if the app has no screenshots it simply shows nothing where the carousel should be. This component is complete with keyboard arrow navigation on the "open" carousel, hover highlight on the carousel preview and close on esc press.
    Demo gif:
    new_carousel_component

  • Marketplace security tab app info page (#25739)

    Created a new security tab for installed apps that displays information related to the given app security policies, terms of services, and necessary permissions for the use of the app.
    Demo gif:
    privacy-tab

  • Matrix Federation UX improvements (#25847)

  • Message Template React Component (#23971)

    Complete rewrite of the messages component in react. Visual changes should be minimal as well as user impact, with no break changes (unless you've customized the blaze template).

    Screen Shot 2022-04-05 at 11 14 18
    In case you encounter any problems, or want to compare, temporarily it is possible to use the old version

    image
  • New button for network outage (#25499)

    When network outage happens it should be conveyed to the user with special icon. This icon should not be clickable.
    Network outage handling is handled in https://app.clickup.com/t/245c0d8 task.

  • New stats rewrite (#25078 by @ostjen)

    Add the following new statistics (metrics):

    • Total users with TOTP enabled;

    • Total users with 2FA enabled;

    • Total pinned messages;

    • Total starred messages;

    • Total email messages;

    • Total rooms with at least one starred message;

    • Total rooms with at least one pinned message;

    • Total encrypted rooms;

    • Total link invitations;

    • Total email invitations;

    • Logo change;

    • Number of rooms inside teams;

    • Number of default (auto-join) rooms inside teams;

    • Number of users created through link invitation;

    • Number of users created through manual entry;

    • Number of imported users (by import type);

  • Star message, report and delete message events (#25383)

  • Use setting to determine if initial general channel is needed (#25441 by @felipe-menelau)

    • Adds flag responsible for overwriting #general channel creation
  • VoIP Input/Output Device Selection (#25966)

🚀 Improvements

  • ENTERPRISE: Allow mapping LDAP groups to multiple RC roles (#23849)

    • Add support to mapping LDAP groups to multiple roles (by specifying arrays in the "User Data Group Map" enterprise setting.
  • Add OTR Room States (#24565)

    Earlier OTR room uses only 2 states, we need more states to support future features.
    This adds more states for the OTR contextualBar.

    • Expired
    Screen Shot 2022-04-20 at 13 55 52
    • Declined
    Screen Shot 2022-04-20 at 13 49 28
    • Error
    Screen Shot 2022-04-20 at 13 55 26
  • Add tooltip to sidebar room menu (#24405 by @Himanshu664)

  • add warnings for federation setup (#25684)

  • Added MaxNickNameLength and MaxBioLength constants (#25231 by @aakash-gitdev)

  • Added tooltip options for message menu (#24431 by @Himanshu664)

  • Avoid using omnichannel-queue collection (#25491)

  • Differ Voip calls from Incoming and Outgoing (#25643)

    Updated this column and its respective endpoints to support inbound/outfound call definitions
    image

  • Expand the feature set of the new message rendering (#25970)

    • Everything inside a new package (@rocket.chat/gazzodown);

    • KaTeX support;

    • Highlighted Words support;

    • Emoji rendering expanded;

    • Code rendering fixed

  • Fix multiple bugs with Matrix bridge (#25318)

  • Improve active/hover colors in account sidebar (#25024 by @Himanshu664)

  • Moved call hold/unhold to EE (#26007)

    This PR adds a restriction, enabling the feature to hold/unhold calls only for Enterprise Edition users.

  • Moved call wrap up modal to EE (#25875)

    This PR adds a restriction, enabling the feature to display the call wrap up modal only for Enterprise Edition users.

  • New admin settings Page (#25439)

    Screen Shot 2022-05-09 at 11 31 58

  • Pass allowDiskUse to channel aggregations on engagement dashboard (#22374)

  • Performance for some Omnichannel features (#25217)

  • Refactor + unit tests for federation-v2 (#25680)

    The main goal for this PR is to add the ability to add tests in our current federation-v2 implementation.
    In this PR, I've added only unit tests (80%), but the goal is to add other kinds of tests in the near future.

    Also, I've created a diagram to show how this refactor was done, and how is the structure of the code

    image

  • Rename upgrade tab routes (#25097)

    Change 'upgrade tab' routes names from camelCase ('goFullyFeatured') to kebab-case ('go-fully-featured') due to URL naming consistency. Changed types, main function and test.

  • Unify voip streams into single stream (#25108)

  • VoIP admin page cleanup: remove unused settings (#25993)

    https://app.clickup.com/t/2n4m61m

🐛 Bug fixes

  • You and @yourUsername reacted withtitle on reactions (#25733)

  • Access issue on chat.getThreadsList (#25750)

  • AccountBox checks for condition (#25708)

  • Add katex render to new message react template (#25239)

  • Add open user card to user avatar (#25445)

  • Add reaction not working in legacy messages (#25222)

  • Added invalid password error message (#24714 by @Himanshu664)

  • Adjust email label in Setup Wizard i18n files (#25260)

    • remove 'Company' label on onboarding email keys in certain languages
  • AgentOverview analytics wrong departmentId parameter (#25073 by @paulobernardoaf)

    When filtering the analytics charts by department, data would not appear because the object:

    {
    value: "department-id",
    label: "department-name"
    }

    was being used in the departmentId parameter.

    • Before:
      image

    • After:
      image

  • AgentsPage pagination (#25820)

  • allow only livechat-agents to be contact manager for any omnichannel contact (#25451)

  • Append path To Route For Custom Emoji (#24379)

  • Attachments and OEmbed margins (#25713)

  • Broken Omnichannel>Agents page (#25731)

  • Bump meteor-node-stubs to version 1.2.3 (#25669 by @Sh0uld)

    With meteor-node-stubs version 1.2.3 a bug was fixed, which occured in issue #25460 and probably #25513 (last one not tested).
    For the issue in meteor see: meteor/meteor#11974

  • Change form body parameter charset to UTF-8 to fix issue #25456 (#25673 by @divinespear)

    since mscdex/busboy 1.5.0, new option named defParamCharset for form body parameter encoding is added with default value latin1, so unicode filenames are broken since 4.7.0.

    Screenshot from 2022-05-28 16-26-06

  • Change NPS Vote identifier + nps index to unique (#25423)

  • Click to join button Jitsi Call (#25569)

    Added ToolboxProvider to MessageListProvider and fixed actionLink.js open function exec

  • Client disconnection on network loss (#25170)

    Agent gets disconnected (or Unregistered) from asterisk in multiple ways. The goal is that agent should remain online
    unless agent explicitly logs off.
    Agent can stop receiving calls in multiple ways due to network loss. Network loss can happen in following ways.

    1. User tries to switch the network. User experiences a glitch of disconnectivity. This can be simulated by turning the network off
      in the network tab of chrome's dev tool. This can disconnect the UA if the disconnection happens just before the registration refresh.

    2. Second reason is when computer goes in sleep mode.

    3. Third reason is that when asterisk is crashed/in maintenance mode/explicitly stopped.

    Solution:
    The idea is to detect the network disconnection and start the start the attempts to reconnect.
    The detection of the disconnection does not happen in case#1. The SIPUA's UserAgent transport does not
    call onDisconnected when network loss of such kind happens. To tackle this problem, window's online and offline event handlers are
    used.

    The number of retries is configurable but ideally it is to be kept at -1. Whenever disconnection happens, it should keep on trying to
    reconnect with increasing backoff time. This behaviour is useful when the asterisk is stopped.

    When the server is disconnected, it should be indicated on the phone button.

  • Client-generated sort parameters in channel directory (#25768 by @BenWiederhake)

  • Close room when dismiss wrap up call modal (#25056)

  • Custom emoji reaction size (#25393)

  • Custom sound error toast messages (#24515 by @Himanshu664)

  • Deactivating user breaks if user is the only room owner (#24933 by @sidmohanty11)

    Before

    deactivating-user-breaks.mp4

    After

    fix.deactivating-user-breaks-room-with-no-owner.mp4
  • Desktop notification on multi-instance environments (#25220)

  • Direct Reply (#22588)

  • Discussion alphabetical ordering (#25788)

    Added a validation in the prop used for sorting (loweCaseName) checking for a prop that only exists in discussions (prid)

  • Dynamic load matrix is enabled and handle failure (#25495)

  • End call button disappearing when on-hold (#24936)

  • Error "numRequestsAllowed" property in rateLimiter for REST API endpoint when upgrading (#26058)

  • Failure to update Integration History index (#25473)

  • Fix max-width message block (#25686)

  • Fix prom-client new promise usage (#25781)

  • fixes HTML sanitizing error. (#25410)

    If the user sent a HTML message over our product to a livechat user the HTML would get rendered on the message box, this prevents it from happening.

  • Fixing app contextual bar functionality (#25615)

  • Fixing Network connectivity issues with SIP client. (#25391)

    The previous PR #25170 did not handle the issues completely.
    This PR is expected to handle

    1. Clearing call related UI when the network is disconnected or switched.

    2. Do clean connectivity. There were few issues discovered in earlier implementation. e.g endpoint would randomly
      get disconnected after a while. This was due to the fact that the earlier socket disconnection caused the
      removal of contact on asterisk. This should be fixed in this PR.

    3. This PR contains a lot of logs. This will be removed before the final merge.

  • FormData uploads not working (#25069)

  • Full error message is visible (#24856 by @Himanshu664)

  • getUserMentionsByChannel method room permission (#25748)

  • Importer fails to download files from URLs with query string params (#25934)

  • Importer files are unnecessarily transferred over the network. (#25919)

  • Incorrect websocket url in livechat widget (#25261)

  • Initial members value on Create Channel Modal (#26000)

    before

    Screen Shot 2022-06-24 at 11 58 22

    after

    Screen Shot 2022-06-24 at 11 59 38

  • Initial User not added to default channel (#25544)

    If injecting initial user. The user wasn’t added to the default General channel

  • Integrations avatar attribute misuse (#25283)

  • Invitation links don't redirect to the registration form (#25082)

  • Kebab menu clicking issue (#25869)

  • LDAP sync removing users from channels when multiple groups are mapped to it (#25434)

  • Members selection field on creating team modal (#25871)

    • Fix: add members breaking when searching users

    image

  • Message menu action not working on legacy messages. (#25148)

  • Message menu dropdown not working on Mobile Web (#25616)

  • Message preview not available for queued chats (#25092)

  • Messages spacing (#25631)

    Adding sequential prop to Message component from Fuselage

  • Misaligned username on Room Info card for omnichannel chats (#25331)

  • Not showing edit message button when blocking edit after N minutes (#25724 by @matthias4217)

    Previously, in Rocketchat 4.7.0 and later, as mentioned in #25478, the edit button was not displayed on the interface in the minute after having sent a message. This is now fixed : messages can be edited right after sending them.

  • NPS never finishing sending results (#25067)

  • One of the triggers was not working correctly (#25409)

  • Ordered and unordered list styles, Line breaks. (#25494)

    Also removed the message.md cache from server, since changes in the parser might break messages in the future (and will in this specific case).

  • Pinned Message display cutting off information (#25535)

  • Prevent federation crash on invite users as a non-owner user (#25683)

  • Prevent sequential messages edited icon to hide on hover (#24984)

    before

    Screen Shot 2022-03-29 at 13 35 56

    after

    Screen Shot 2022-03-29 at 11 48 05
  • Proxy settings being ignored (#25022)

    Modify Meteor's HTTP.call to add back proxy support

  • Quote message spacing (#25613)

  • Read receipts show with color gray when not read yet (#25244)

  • Read receipts showing before message read (#25216)

  • Remove 'total' text in admin info page (#25638)

    • Remove initial 'total' text from rooms and messages groups in the admin info page

    • Add 'total' before 'rooms' and 'messages' title on the same section. To use the new 'Total Rooms', was created a new key in the en.i18n.json file.

  • Remove duplicated icon bell when is thread main message (#26051)

  • Remove duplicated property _USERNAMES from createDirectRoom.ts (#26087)

    This pull request removes the duplicated property _USERNAMES from apps/meteor/app/lib/server/functions/createDirectRoom.ts, using only the existing property roomInfo.usernames.

  • Removing user also removes them from Omni collections (#25444)

  • Replace encrypted text to Encrypted Message Placeholder (#24166)

    before

    image

    after

    Screenshot 2022-01-13 at 8 57 47 PM
  • Reply button behavior on broadcast channel (#25175)

    Hide reply button for the user that sent the message

  • room creation fails if app framework is disabled (#25200)

  • Rooms' names turn lower case on CSV import (#24612)

    • Change 'Settings' import to not get cached configs

    • Remove update UI_Allow_room_names_with_special_chars value

  • Sanitize customUserStatus and fix infinite loop (#25449)

    Additional improves:

    • usage of RHF to avoid unnecessary Add and Edit components separately and form validation

    • usage of GenericTableV2 and some hooks to avoid unnecessary code

    • fix IUserStatus type

    • improves in UI design

    • improves empty and loading state

    • improves files structure

    [LOOP ERROR ATTACHMENT]
    Screen Shot 2022-05-09 at 19 42 53

  • Sanitize styles in message (#25744)

  • Settings listeners not receiving overwritten values from env vars (#25448)

  • Settings not being overwritten to their default values (#25891)

  • Showing Blank Message Inside Report (#25007)

    Desktop.2022.03.31.-.15.58.05.02.mp4
  • sidebar colors (#25987)

  • Sort by scope or creation date not working on canned responses list (#25475)

  • Spotlight results showing usernames instead of real names (#25471)

  • Thread Message Preview (#25709)

  • Too many watchers in dev environment. (#25930)

  • Toolbox hiding under contextual bar (#25237)

  • toolbox menu behind thread component (#25925)

  • UI/UX issues on Live Chat widget (#25407)

  • Unable to close chats when comments is disabled (#26057)

    Fixes #25954

  • Unable to see channel member list by authorized channel roles (#25412)

  • Undefined headers on API Client (#26083)

  • Unnecessary padding on teams channels footer (#25712)

    before

    after

  • Update chartjs usage to v3 (#25873)

  • Update import from csv-parse (#25872)

    This PR updates the importing of csv-parse because the used method wasn't working anymore, we were receiving the following error:

    error: "this.csvParser is not a function"

  • Update subscription on update team member (#25855)

    Added update to subscription when a team member is updated on teams.updateMember

  • Upgrade tab loader in incorrect position (#25398)

    • Add invisible prop to iframe when loading state is active.
  • Upgrade Tab showing for a split second (#25050)

  • Use correct room property for call ended at (#24932)

  • useCurrentChatTags is not a function (#25604)

  • User abandonment setting was not working doe to failing event hook (#25520)

    A setting watcher and the query for grabbing abandoned chats were broken, now they're not.

  • User avatar reseting and getting random image (#25603)

    • fixes user avatar not being saved after editing the user profile issue

    • fixes user avatar not getting another user picture due to database deletion error

  • user status Offline misnamed as Invisible in Custom Status edit dropdown menu (#24796 by @Kunalvrm555)

  • User's with non-agent role shown on voip agent association model (#25682)

  • UserAutoComplete not rendering UserAvatar correctly (#25055)

    before

    Screen Shot 2022-04-04 at 16 50 21

    after

    Screen Shot 2022-04-04 at 16 49 00

  • UserCard sanitization (#25089)

    • Rewrites the component to TS

    • Fixes some visual issues

    before

    Screen Shot 2022-04-07 at 00 23 11

    after

    Screen Shot 2022-04-07 at 00 07 13

  • Validate room access (#24534)

    The request must be blocked If the user has no permission to view rooms.

  • Video and Audio not skipping forward (#19866)

  • VOIP CallContext snapshot infinite loop (#25947)

    The application was crashing due to an error on the useCallerInfo() hook.
    The error was:
    image
    image

    To prevent this issue to happen it was added a cached and out-of-scope snapshot variable to the hook using useSyncExternalStore

  • VoIP disabled/enabled sequence puts voip agent in error state (#25230)

    Initially it was thought that the issue occurs because of the race condition while changing the client settings vs those settings reflected on server side. So a natural solution to solve this is to wait for setting change event 'private-settings-changed'. Then if 'VoIP_Enabled' is updated and it is true, set voipEnabled to true in useVoipClient.ts (on client side)

    It was realised that the race does not happen because of the database or server noticing the changes late. But because of the time taken to establish the AMI connection with Asterisk.

    Solution:

    1. Change apps/meteor/app/voip/server/startup.ts. When VoIP_Enabled is changed, await for Voip.init() to complete and then broadcast connector.statuschanged with changed value.

    2. From apps/meteor/server/modules/listeners/listeners.module.ts use notifyLoggedInThisInstance to notify all logged in users on current instance.

    3. in apps/meteor/client/providers/CallProvider/hooks/useVoipClient.ts add the event handler that receives this event. Change voipEnabled from constant to state. Change this state based on the 'value' that is received by the handler.

  • Voip endpoint permissions (#25783)

  • Wrong argument name preventing Omnichannel Chat Forward to User (#25723)

🔍 Minor changes
  • Bump body-parser from 1.19.2 to 1.20.0 in /ee/server/services (#25042 by @dependabot[bot])

  • Bump ejson from 2.2.1 to 2.2.2 (#25057 by @dependabot[bot])

  • Bump eslint-plugin-anti-trojan-source from 1.0.6 to 1.1.0 (#25076 by @dependabot[bot])

  • Bump minimist from 1.2.5 to 1.2.6 in /ee/server/services (#24991 by @dependabot[bot])

  • Bump pino and pino-pretty (#25052)

  • Bump template-file from 6.0.0 to 6.0.1 (#25002 by @dependabot[bot])

  • Chore: @rocket.chat/favicon (#25920)

  • Chore: refactor/tsc-perf (#26040)

  • Chore: Account/Profile to TS (#25929)

  • Chore: add _id and name options to JSON Schemas (#25813)

    This pull request adds the roomId and roomName options for the Ajv JSON Schemas on the packages/rest-typings/src/v1/channels/ and packages/rest-typings/src/v1/dm/ folders.

  • Chore: Add /v1/video-conference endpoint types (#25278)

  • Chore: Add Agenda fork to the monorepo (#25681)

  • Chore: add Ajv JSON Schema to api/v1 (#25601)

    This pull request adds Ajv JSON Schema validation to apps/meteor/app/api/server/v1/ and packages/rest-typings/src/v1/, where needed.

  • Chore: Add auto label and improve Kodiak configuration (#25829)

  • Chore: Add channel endpoints (rest-typings) (#25279)

  • Chore: Add client folder to CODEOWNERS (#25397)

  • Chore: Add error boundary to message component (#25223)

    Not crash the whole application if something goes wrong in the MessageList component.

    image

  • Chore: Add Livechat repo into Monorepo packages (#25312)

  • Chore: Add missing Swedish livechat translations (#26048 by @joakimaho)

    Added missing Swedish translations.

  • Chore: Add options to debug stdout and rate limiter (#25336)

  • Chore: Add root package.json to houston files (#25286)

    See title

  • Chore: Add tests for agents screens (#25637)

  • Chore: Add typings for /v1/webdav.getMyAccounts (#25276)

  • Chore: Add yarn plugin to check node and yarn version (#25224)

  • Chore: Adding default message parser template (#26064)

  • Chore: adjust in some configurations (#25612)

  • Chore: Allow endpoints to optionally require authentication (#26084)

  • Chore: API test on method GET with params as a number. (#25769)

  • Chore: AutoTranslate contextualBar rewrite (#25751)

  • Chore: Broken Storybook (#25714)

    There is another small improvement on the way we got storybook files.

  • Chore: Bump deps (#25624)

  • Chore: bump fuselage (#25605)

  • Chore: Bump fuselage (#25371)

  • Chore: Bump fuselage and update icon (#26036)

  • Chore: Bump Fuselage packages (#25259)

  • Chore: Cancel running jobs if PR is updated (#24708)

  • Chore: Chore add validation option to rest endpoints (#25443)

  • Chore: Close tooltip on click (#26070)

  • Chore: Code Improvements for #25391 (#25606)

  • Chore: Collect e2e coverage (#25743)

  • Chore: Colors (#25969)

  • Chore: command's endpoints (#25630)

  • Chore: Convert UserStatusMenu to TS (#25265)

  • Chore: Convert additionalForms (#25586)

  • Chore: Convert Admin -> Rooms to TS (#25348)

  • Chore: Convert admin custom sound to tsx (#25128)

  • Chore: Convert Admin/OAuthApps to TS (#25277)

    • Converts Admin/OAuthApps to TS.

    • migrated forms to react-hook-form

  • Chore: Convert AdminSideBar to ts (#25372)

  • Chore: convert apps/meteor/app/api/server/lib/ files to TS (#25840)

    This pull request converts files on apps/meteor/app/api/server/lib/ to Typescript.

  • Chore: Convert apps/meteor/client/components/UserAutoComplete (#25554)

  • Chore: Convert apps/meteor/client/sidebar/header/index (#25671)

  • Chore: Convert apps/meteor/client/sidebar/search (#25754)

  • Chore: Convert apps/meteor/client/views/admin/settings (#25565)

  • Chore: Convert apps/meteor/client/views/admin/settings/inputs folder (#25427)

  • Chore: Convert assets endpoint to Typescript (#25358)

  • Chore: Convert AutoTranslate (#25591)

  • Chore: Convert client/views/admin/settings/groups folder to ts (#25345)

  • Chore: convert communication methods to Typescript (#25503)

    Convert files from apps/meteor/app/apps/server/communication/ to ts.

  • Chore: Convert components/sidebar to TS (#25429)

  • Chore: Convert Create Channel (#25589)

  • Chore: Convert CreateChannelWithData (#25667)

  • Chore: Convert customSounds folder to ts (#25274)

  • Chore: Convert customUserStatus folder to ts (#25288)

  • Chore: convert e2e to ts (#25958)

    Converted the apps/meteor/app/api/server/v1/e2e.js to ts and created endpoint typings on the packages/rest-typings/src/v1/e2e folder.

  • Chore: Convert email inbox feature to TypeScript (#25298 by @ujorgeleite)

  • Chore: Convert federationDashboard folder to ts (#25343)

  • Chore: Convert getStatistics (#25342)

  • Chore: convert import.js endpoints to TS (#25956)

    Converted the apps/meteor/app/api/server/v1/import.js to ts and created endpoint typings on the packages/rest-typings/src/v1/import folder.

  • Chore: convert info to typescript (#25420)

  • Chore: convert invites, misc and subscriptions to TS and create definitions (#25350)

    Converted apps/meteor/app/api/server/v1/invites.js, misc.js and subscriptions.js to Typescript and created their endpoint definitions on the rest-typings folder.

  • Chore: Convert LivechatAgentActivity to raw model and TS (#25123)

  • Chore: Convert Mailer to TS (#25121)

  • Chore: convert marketplace price display component to use typescript (#25504)

    Marketplace apps listing page
    Screen Shot 2022-05-13 at 12 57 43

    Apps detail page
    Screen Shot 2022-05-13 at 12 58 56

  • Chore: Convert MemoizedSetting, Setting, Section (#25572)

  • Chore: Convert normalizeMessagesForUser (#26059)

  • Chore: Convert NotificationStatus to TS (#25125)

  • Chore: Convert push endpoints to TS (#25347)

  • Chore: Convert RoomForeword, TextCopy and RoomAvatarEditor to TS (#25424)

  • Chore: Convert RoomMenu (#25914)

  • Chore: Convert sidebar/header/actions (#25581)

  • Chore: Convert sidebar/item (#25634)

  • Chore: Convert slashCommands to typescript (#25592 by @eduardofcabrera & @ostjen)

  • Chore: Convert to TS omnichannel/agent (#25511)

  • Chore: Convert to TS RoomAutoComplete (#25536)

  • Chore: Convert to typescript some functions from app/lib/server/functions (#24519)

    Convert to typescript some functions from app/lib/server/functions and transfered theses files to server/lib

  • Chore: Convert to typescript the slash commands help files (#24307 by @eduardofcabrera)

    Convert to typescript the slash commands help files

  • Chore: Convert useFileInput to TS (#25426)

  • Chore: Convert usePreventDefault, useQueryOptions, useShortcutOpenMenu (#26035)

  • Chore: Convert UserAutoCompleteMultiple (#25587)

  • Chore: Convert users endpoints (#25635)

  • Chore: Convert useSidebarPaletteColor (#26065)

  • Chore: Convert useUpdateAvatar to TS and type avatar endpoints (#25430)

  • Chore: Converting files from app/livechat folder from JS to TS (#25658)

    Converting files from apps/meteor/app/livechat/lib/ from JS to TS

  • Chore: Converting omnichannel installation files to ts (#25665)

    This PR converts the omnichannel/installation folder from js to ts

  • Chore: Converting orchestrator.js to ts (#25367)

  • Chore: create a e2e test guideline (#25884)

  • Chore: Create a token for each action (#26023)

  • Chore: Create README.md for Rest Typings (#25335)

  • Chore: Custom Sounds Endpoints (#25633)

  • Chore: Dedicated package for UI contexts (#25432)

    Moving our React contexts to a different package on the monorepo enable us to deliver components from another packages, because they work as a loose connection to the core APIs.

  • Chore: Dependencies upgrade (#25290)

  • Chore: Enable marketplace screenshots endpoint (#25395)

  • Chore: ensure scripts use cross-env and ignore some dirs (ROC-54) (#25218)

    • data and test-failure should be ignored

    • ensure scripts use cross-env

  • Chore: Fix CI (#25797)

  • Chore: Fix correct unit test to api files (#25870)

  • Chore: Fix incorrect checksum for agenda package (cause of breaking develop builds) (#25741)

  • Chore: Fix return type warnings (#25275)

  • Chore: Fix version on develop branch (#25842)

  • Chore: fix watermark condition (#26095)

  • Chore: Fixes e2e playwright intermittences (#25984)

  • Chore: Fuselage update (#26004)

  • Chore: Fuselage update (#25983)

  • Chore: Handle errors on index creation (#26094)

  • Chore: Improve CI cache (#25907)

  • Chore: Improve footer Template (#26085)

  • Chore: Increase performance and security of integrations’ scripts (#25641)

    Replace internal VM implementation with VM2 which implements many more mechanisms to ensure timeout, security and allow easier configuration for future improvements on the integrations' feature.

  • Chore: Introduce Modal Region (#25962)

  • Chore: Introduce new index to query active livechat conversations for cloud scaling (#26047)

  • Chore: Keep the option to run only the meteor app (#25915)

  • Chore: Keyboard shortcuts contextualBar rewrite (#25753)

  • Chore: Livechat change output level (#25522)

  • Chore: Major refactors in pageobjects (#26015)

  • Chore: Make kodiak merge message empty (#26069)

  • Chore: Manager Page Rewrite (#25431)

  • Chore: Messages raw model rewrite to ts (#25761)

  • Chore: Migrate 15-message-popup from cypress to playwright (#25462)

  • Chore: migrate from cypress to pw 14-setting-permission (#25523)

  • Chore: migrate katex to ts (#25501)

  • Chore: Migrate LivechatVisitors model to raw (#25756)

  • Chore: Migrate NotFoundPage to TS (#25509)

  • Chore: Migrate oauth2server to typescript (#25126)

  • Chore: Migrate oembed to ts (#25622)

  • Chore: Migrate retention-policy to ts (#25582)

  • Chore: Migrate some small helper functions to TypeScript (#25666)

  • Chore: Migrate spotify to ts (#25507)

  • Chore: migrate-to-pw-16-discussion (#25567)

  • Chore: migrate-to-pw-adjust-in-intermitences (#25542)

  • Chore: Minor dependency updates (#25269)

  • Chore: Missing keys in APIsDisplay (#24464)

  • Chore: Model Typings (#25758)

  • Chore: Monorepo (#25074)

  • Chore: Move admin sidebarItems registration to the main file (#25442)

  • Chore: Move ddp-streamer micro service to its own sub-repo (#25246)

  • Chore: move definitions to packages (#25085)

  • Chore: move fork of cas module to the monorepo (#26107)

  • Chore: Move markdown message parser to a callback (#25413)

  • Chore: Move voip's Wrap-up and On-hold functionality to EE (Backend) (#25160)

  • Chore: Notification Preferences to TS (#25827)

    • Notifications Preferences to TS.

    • Fix broken save action.

  • Chore: organize test files and fix code coverage (#24900)

  • Chore: Prune Messages contextualBar rewrite (#25757)

  • Chore: Remove all cypress tests, configs and references (#25564)

  • Chore: Remove Alpine image deps after using them (#25053)

  • Chore: Remove compose from main repo (#23426)

  • Chore: Remove duplicate checksumBehavior key from yarn file (#25730)

  • Chore: remove duplicated NotFoundPage.js (#25749)

  • Chore: Remove duplicated useUserRoom (#25180)

  • Chore: Remove Imperative Modal from context (#25911)

  • Chore: Remove old files from removed Omnichannel feature (#25129)

  • Chore: Remove old rest api code (#25863)

  • Chore: Remove package-lock.json from houston files (#25280)

    Houston config in the package.json file still mentioned package-lock.json, but it doesn't exist anymore

  • Chore: Remove snap files from Houston config (#25819)

  • Chore: Remove toastr package (#25787)

  • Chore: Remove unused Drone CI files (#25124)

  • Chore: remove unused locators from e2e tests (#25860)

  • Chore: Reorder unreleased migrations (#25508)

  • Chore: Replace useSubscription with useSyncExternalStore (#25909)

  • Chore: Replace AnnouncementModal in favor of GenericModal (#25752)

  • Chore: Rest API query parameters handling (#25648)

  • Chore: REST query and body params validation (#25446)

  • Chore: RestApiClient as Package (#25469)

  • Chore: Revert yarn dev implementation (#26075)

  • Chore: Rewrite 2fa to typescript (#25285)

  • Chore: Rewrite action-links to ts (#25418)

  • Chore: Rewrite AddUsers to TS (#25830 by @kodiakhq[bot])

  • Chore: Rewrite Admin UsersTable to Typescript (#25698)

  • Chore: Rewrite autotranslate to ts (#25425)

  • Chore: Rewrite im and dm endpoints to ts (#25521)

    • Endpoints rewritten to TS

      • dm.create
      • dm.delete
      • dm.close
      • dm.counters
      • dm.files
      • dm.history
      • dm.members
      • dm.messages
      • dm.messages.others
      • dm.list
      • dm.list.everyone
      • dm.open
      • dm.setTopic
      • im.create
      • im.delete
      • im.close
      • im.counters
      • im.files
      • im.history
      • im.members
      • im.messages
      • im.messages.others
      • im.list
      • im.list.everyone
      • im.open
      • im.setTopic
    • Some lines of code was refactored on apps/meteor/app/api/server/v1/im.ts

    • Unnecessary functions were deleted on apps/meteor/app/lib/server/functions/getDirectMessageByNameOrIdWithOptionToJoin.ts

    • New types was added on apps/meteor/app/api/server/api.d.ts

  • Chore: Rewrite Jitsi Contextualbar to TS (#25303)

  • Chore: Rewrite mail-messages to ts (#25421)

  • Chore: Rewrite RoomWithData (#25858)

  • Chore: Rewrite some Omnichannel files to TypeScript (#25359)

    apps/meteor/client/components/Omnichannel/modals/*
    apps/meteor/client/components/Omnichannel/Tags.js

  • Chore: Room access validation may be called without user information (#26086)

  • Chore: RouteGroup for My Account sidebar (#25632)

    Refactoring My Accounts routes. Allows to add "my account" routes for EE.

  • Chore: Run tests on docker (#25556)

  • Chore: Settings UI issue (#26053)

  • Chore: Small fix on callProvider (#25963)

  • Chore: solve yarn issues from env var (#25468)

  • Chore: Split useUserInfoActions into small hooks (#25747)

  • Chore: Sync with master (#25284)

  • Chore: Taking out Blaze from routes with MainLayout (#25697)

    While working with @guijun13 on the new homepage I saw we're still rendering a Blaze template even to just embedded components into MainLayout. This PR addresses it.

  • Chore: Template to generate packages (#25174)

    npx hygen package new test
    
  • Chore: Test for department screen (#25696)

  • Chore: test turbo params (#26038)

  • Chore: Testing Kodiak feature (#25794)

  • Chore: Tests with Playwright (task: All works) (#25122)

  • Chore: Tests with Playwright (task: ROC-25, 06-message) (#25252)

  • Chore: Tests with Playwright (task: ROC-28, 09-channels) (#25196)

  • Chore: Tests with Playwright (task: ROC-31, 12-settings) (#25253)

  • Chore: Tests with Playwright (task: ROC-66, Intermittent resolution in tests) (#25416)

  • Chore: Translate admin helpers to TS (#25690)

  • Chore: TS conversion folder client (#25031)

  • Chore: TS migration SortList (#25167)

  • Chore: ui-client package (#25916)

  • Chore: Update Apps-Engine and Fuselage (#25700)

  • Chore: Update Apps-Engine version (#25617)

  • Chore: Update Livechat to the last version (#25257)

  • Chore: Update Livechat version (#25130)

  • Chore: update OTR icon (#24521 by @kibonusp)

    I changed the shredder icon in OTR contextual bar to the stopwatch icon, recently added to the fuselage.

  • Chore: Update package.json update tsc memory (#25755)

  • Chore: update pageobjects to use es6 getters and remove export default (#25867)

  • Chore: Update poplib (#25964)

  • Chore: Update Volta configuration (#25394)

    Volta need some extra configuration to work on monorepos.

  • Chore: Updating Apps-Engine (#26001)

  • Chore: Upgrade and remove unnecessary Livechat dependencies (#25672)

  • Chore: use params instead of URL building on livechat endpoints (#25810)

  • Chore: User set UTC offset (#25381)

  • Chore: VoIP Context (#25994)

  • Chore: Watch for package changes (#25910)

    With the current dev pipeline, whenever we modify a package (e.g. api-client), we have to kill the meteor proccess and run yarn dev again in order for the changes to be compiled and the new output to be used by meteor.

    This has the drawback of taking a little longer to run the dev environment, since we can't cache a watched buid. In the other hand, it reduces the friction of modifying internal packages since we don't need to rebuild the project for changes to take effect.

    This will enable us to move more things to separate packages without affecting the dev experience too much.

  • Chore(deps): Bump sharp from 0.30.4 to 0.30.6 (#25719 by @dependabot[bot])

  • i18n: Language update from LingoHub 🤖 on 2022-04-04Z (#25043)

  • Merge master into develop & Set version to 4.7.0-develop (#25028)

  • Merge master into develop & Set version to 5.0.0 (#25702 by @felipe-menelau)

  • Regression: [VideoConference] If the caller loses connection, direct calls are never canceled (#26099)

  • Regression: yarn dev not working (#26071)

  • Regression: Add isPending status to message (#25299)

  • Regression: Add appId prop to slashcommand (#25988)

    Pass the appId when present to the slashcommand array. This avoid problems with contextual bar and modals not opening.

  • Regression: Add Error boundary to katex render component (#26067)

  • Regression: Add eslint package to micro services Dockerfile (#25311)

  • Regression: Add select message to system message and thread preview and allow select on legacy template (#25251)

  • Regression: App event listeners broke Slackbridge integration and importers (#25689)

    Some event listeners triggered by Apps were calling Meteor.user() in functions that could run outside of Meteor environment

  • Regression: Assets & Slack Bridge Setting Page not rendering (#25629)

  • Regression: Avatar not loading on first direct message (#25211)

    fix avatar not loading on a first direct message

  • Regression: Better MongoDB connection management for micro services (#25323)

  • Regression: Broken components on Federation and Engagement dashboards (#25653)

    For reasons I've no clue, any client import path matching **/data/** will not be included in the final bundle, failing silently on transpiling/bundling.

  • Regression: bump onboarding-ui version (#25320)

    • Bump to 'next' the onboarding-ui package from fuselage.

    • Update from 'companyEmail' to 'email' adminData usage types

  • Regression: Change logic to check if connection is online on unstable networks (#25618)

  • Regression: Change preference to be default legacy messages (#25255)

  • Regression: CI playwright (#25168)

  • Regression: CI services build (#25555)

  • Regression: Contact manager endpoint usage (#26063)

  • Regression: Docker image publish (#25931)

  • Regression: Endpoint types with Ajv Coercing data types (#25644)

    Ajv Coercing data types should be true to accept all kinds of data requested.

  • Regression: eslint not running on packages (#25305)

  • Regression: fix apps path (#25809)

  • Regression: Fix apps wrong typing (#25824)

  • Regression: Fix blackscreen after app install (#25950)

    Fixed an error where the client screen would go black after installing an app. This was hapenning because the handleAppAddedOrUpdated function from the AppsProvider had a wrong type for the return of the getAppFromMarketplace function.

    Demo gifs:

    Before
    app-install-error-before

    After:
    app-install-error-after

  • Regression: Fix call direction (#26055)

  • Regression: Fix CI monorepo build (#25107)

  • Regression: Fix clicking on visitor's chat in the sidebar does not display the chat window (#25380)

    Fix: livechat room not opening.

  • Regression: Fix e2e CI (#25974)

  • Regression: Fix English i18n react text (#25368)

    Incorrect text in reaction tooltip has been fixed

  • Regression: Fix extended sidebar item (#25887)

  • Regression: Fix federation Matrix bridge startup (#25273)

  • Regression: Fix import endpoints (#26074)

  • Regression: Fix micro services (#26054)

  • Regression: Fix micro services Docker build (#25193)

  • Regression: Fix multi line is not showing an empty line between lines (#25317)

  • Regression: Fix reply button not working when hideFlexTab is enabled (#25306)

  • Regression: Fix services Docker build on CI (#25181)

  • Regression: Fix services-image-build-check (#25519)

  • Regression: Fix size of custom emoji and render emoji on thread message preview (#25314)

  • Regression: Fix sort field files.list (#25687)

  • Regression: Fix the alpine image and dev UX installing matrix-rust-sdk-bindings (#25319)

    The package only included a few pre-built which caused all macs to have to compile every time they installed and also caused our alpine not to work.

    This temporarily switches to a fork of the matrix-appservice-bridge package.

    Made changes to one of its child dependencies matrix-rust-sdk-bindings that adds pre-built binaries for mac and musl (for alpine).

  • Regression: Fix threads list (#26052)

  • Regression: Fix users.create call (#25834)

  • Regression: Fix voip call wrap-up model not working (#26024)

  • Regression: Invalid Voip host issue preventing agents connecting to asterisk (#26056)

  • Regression: Messages in new message template Crashing. (#25327)

  • Regression: Missing settings group descriptions (#25639)

  • Regression: Non-reactive routes (#25990)

    When Tracker.autorun() calls are nested, it's possible that an invalidation at the parent render the children non-reactive due to synchronous calls. To avoid that under the callback given by useSyncExternalStore, we schedule an onStoreChange callback call to not make it reside at the same backtrace.

  • Regression: Re-add view logs button (#25876)

    Re-added the view logs button to the appMenu component so that the user can go directly from the marketplace list of apps to the app info page with the logs tab already open.
    Demo gif:
    re-add-view-logs-button

  • Regression: Revert Bugsnag version (#25313)

  • Regression: Revert Livechat packages upgrades/removals that were causing issues (#26077)

  • Regression: Rocket.Chat Webapp not loading. (#25349)

  • Regression: Room Endpoint Call Issues (#25928)

    This PR fixes small management bugs related with channels, rooms and teams

  • Regression: Set offset and count optional on ChatGetThreadsListSchema (#25961)

  • Regression: Show username and real name on the message system (#25254)

  • Regression: Shows error if micro service cannot connect to Mongo (#25301)

  • Regression: Subscription menu not appearing for non installed but subscribed apps (#25627)

    Fixed a problem on which the AppMenu component did not appear for apps that had an active subscription but weren't installed, now the rendering of the component is also based on the isSubscribed flag, and the appearance of the uninstall and enable/disable options are based on the app.installed flag so that the correct options appear on all the edge cases.
    Demo gif:
    subscription-manager-fix

  • Regression: TOTP Modal with new rest api package (#25893)

  • Regression: Unable to edit user details via admin panel (#25923)

  • Regression: Unhandled Exceptions metric causing a secondary exception (#26088)

  • Regression: Update settings groups description (#25663)

  • Regression: Use exact Node version on micro services Docker images (#25287)

  • Regression: Users Table loading state (#26079)

  • Regression: Validate empty fields for Message template (#25250)

  • Regression: VoIp wrap up modal not opening after call disconnect (#25651)

    This PR fixes a bug preventing the wrap up call modal from being displayed after caller or agent ends the call.

  • Regression: Webhook Integration Creation + string error toast msg (#26008)

  • Regression: yarn dev triggers build dependencies (#25208)

  • Revert: "Chore: Collect e2e coverage" (#25936)

  • Test: Migrate 13-permissions from cypress to playwright (#25558)

👩‍💻👨‍💻 Contributors 😍

👩‍💻👨‍💻 Core Team 🤓

Don't miss a new Rocket.Chat release

NewReleases is sending notifications on new releases.