9 mins read — Mar 9, 2020

Introducing Rocket.Chat 3.0.0: We’re over the moon!

Videos

by Aine Galvin

play

Breaking changes!

With a host of new features, updates, and bug fixes, we are delighted to announce the arrival of Rocket.Chat 3.0.0. Our team has been working so hard to bring you new features to take your Rocket.Chat experience to the next level.

The first thing is our upgrade to Meteor 1.9, which makes the Node JS 12.14.0 upgrade available to all Rocket.Chat users.

Using docker containers? Not a problem. We’ve made sure that all our containers come with the correct version of Node JS 12.14.0, complete with Snap integration.

If those aren’t the chosen deployment methods - like you’re compiling or building a version of Rocket.Chat in your environment - simply upgrade to Node JS 12.14.0 prior to running the new version of Rocket.Chat and you’re good to go.

Tip: You must ensure that the required engine versions indicated at the top of every release are installed:

The upgrade to NodeJS V12 means that we disabled TLS v1.0 and TLS v1.1, though you can still enable them using --tls flags, like --tls-min-v1.0 and --tls-min-v1.1.

You can now customize which system messages to suppress on the client-side, on a per-room level. It’s easy to choose what message displays from a big list of titles, including ‘user entering channel’, ‘user changing the channel title’, and ‘user adding another user’. This is especially useful for General channels, that include everyone and end up with an annoying deluge of nonessential user messages. In other, smaller, more focussed channels, you might prefer to see these messages. Rocket.Chat 3.0.0 gives you the choice.

We have removed the channel counter in the left panel. This isn’t a bug! We noticed that this feature wasn’t adding much value and sometimes confused users into thinking that these counts were unread messages. Removing this feature and tightening up the code brought this to light. Last, but not least, we removed all deprecated publications from the systems. Where we felt a RESTful API more useful, we migrated those endpoints and removed unused publications. The result is simpler, slimmer code to make your life easier.

New Features

UI Kit

We are so excited to tell you about our new UI Kit, being simultaneously released on both the Web and Mobile clients.

The set of components in the UI Kit facilitate interactivity between the Apps engine and Rocket.Chat messages. Now Rocket.Chat Apps can interact with users on the message thread using Select, User Lists, Date Selector, and a many other options and buttons. Users can even choose to start a poll for a richer conversation.

When building applications using our new apps engine, our UI Kit helps to make integration super easy and gets your users interacting like lightning. So go ahead, kick the tires, write apps, automate processes and data inputs, play around with integrations for your CRM and other systems, and let us know what you think. This is just the first batch in a long line of components we’re working on, so we want to know your experience.

Dedicated Admin Info button

We never liked putting you to the trouble of inputting your environment details, your specific version info, the memory on your server, and so on when all you want to do is open a ticket to debug an issue. Our support team felt your pain and pushed hard for an Admin Server Information button to allow you to download your server information as a file and send it on so that we can get to work on your problem ASAP. No more screenshots or copying and pasting of unformatted server info. Simply click the button, inspect the file and lock any information you don’t wish to share, and click Submit.

New GUI for Omichannel Users

Have you longed to tailor your open chats? We listened! Alphabetical listings of WhatsApp, Facebook and WeChat open messages, and the like are difficult to negotiate. Now your agents can customize those so that active chats can be found in a hurry. No more scrolling. Simply choose from a list of sort options such as Activity, Geographical, or User Name and immediately find what you’re looking for.

More Omnichannel Goodies!

The gifts just keep coming for our Omnichannel users.

We’re super excited to introduce a new interface that provides visibility into custom attributes you added for visitors in specific conversations. Simply open the Info Panel for visitor conversations to reveal the relevant data collected by your custom systems. Perhaps you have developed systems to tell if someone is an existing customer or their service-plan level. Our new interface lets you retrieve all relevant data from the custom fields you injected using a script for that specific conversation.

We’ve been wanting to get this feature to you for a while. Now it’s here, we hope you enjoy it.

Performance Improvements

Broadcasting User Presence

Our first big improvement is a change in how we process the presence of users and broadcast this presence to other users. Until recently, we simply broadcast everyone’s presence to every other user connected to the server. Our new process requires an on-demand user-presence request from each individual client, ensuring that we only broadcast user presence to clients connected through material user lists, direct messages, and so on.

While this new process is actually much more complex from our side, ensuring that we only broadcast user presence and user change information to users with relevant connections means big CPU savings on large deployments and more meaningful information for our users, who no longer receive information about hundreds, maybe thousands of users that don’t concern them.

Importer Overhaul

You probably already know Rocket.Chat imports histories from a myriad of external chat systems, such as CSV, Slack, and Slack Users, or HipChat and HipChat Enterprise. We started to notice customers had larger and larger data sets from these chat systems. This prompted us to rethink our import processes. The result is a complete redesign to ensure continued optimization in how we process those files and stream them in our system.

Our revamped import processes now mean reduced RAM and our decision to decouple our UI from the import process means there is now no risk of accidentally canceling an operation as you navigate or refresh the system. You can now send a file to the server at one point and perform an import at another, even after a server restart. Nice! Added to this, our modified Slack importer now supports DMs, Groups, and Multi-Party IMs. And not only that, when you download attachments from Slack, you now get image previews. This is a neat feature.

Bye-Bye NRR

The eagle-eyed among you might notice a change to how we render messages on our main channel. Having served us well for a very long time, we decided to finally retire our old Non-Reactive Rendering (NRR) system. Our old friend NRR let us listen to changes and then redesign the whole screen in response, but over time, with the sheer quantities of messages we process, the old UI framework became bloated and heavy.

We’ve put him to sleep now and you shouldn’t notice any difference except maybe when you watch a YouTube video, where reactions no longer interrupt the stream. We simply re-render the button that counts reactions and nothing else changes. Smooth!

Bug Fixes

We’ve been really busy getting ironing out the following bugs to make your experience with Rocket.Chat more rewarding:

We fixed the delay in marking Rooms as read. Rooms are now immediately marked read as you enter.

We resolved the issue with Highlight.js freezing the UI. This won’t cause any more issues with CPU spikes.

We sorted the issue with Role tags and description fields not displaying properly.

The Integrations admin page loads just fine again thanks to a recent fix.

We fixed the issue where newly created messages didn’t display the edited icon when edited

Sometimes sending multiple messages caused a conflict that resulted in drops. We’ve gotten to the root of this issue. It won’t bother you again.

All the great work on upgrading the imports means DMs don’t stop if a user name is missing.

We fixed an error that occurred when a user successfully joined a room using an invite link.

We zapped a bug that caused multiple messages when starting Jitsi video meetings.

The FileUpload.getBuffer in the Apps Engine now works, so that apps can again use those APIs to manage their files.

We now enforce api-bypass-rate-limiter permissions, so there will be no more color blocking.

The big version 1.3.1 Livechat Widget upgrade means that messages now synchronize across multiple tabs.

And lastly, the Invite links proxy URLs are working again when using CDN.

Share article

Related Articles View all