- Split NOTIFICATIONS_SCHEDULE_DELAY into three separate variables ([#17669](https://github.com/RocketChat/Rocket.Chat/pull/17669) by [@jazztickets](https://github.com/jazztickets))
Email notification delay can now be customized with the following environment variables:
NOTIFICATIONS_SCHEDULE_DELAY_ONLINE
NOTIFICATIONS_SCHEDULE_DELAY_AWAY
NOTIFICATIONS_SCHEDULE_DELAY_OFFLINE
Email notification delay can now be customized with the following environment variables:
NOTIFICATIONS_SCHEDULE_DELAY_ONLINE
NOTIFICATIONS_SCHEDULE_DELAY_AWAY
NOTIFICATIONS_SCHEDULE_DELAY_OFFLINE
Setting the value to -1 disable notifications for that type.
- Apps room events losing data ([#17827](https://github.com/RocketChat/Rocket.Chat/pull/17827))
- Importers progress sending too much update events to clients ([#17857](https://github.com/RocketChat/Rocket.Chat/pull/17857))
- Omnichannel message link is broken in email notifications ([#17843](https://github.com/RocketChat/Rocket.Chat/pull/17843))
- Logic for room type was inverted on Admin panel (#17851) ([#17853](https://github.com/RocketChat/Rocket.Chat/pull/17853) by [@cking-vonix](https://github.com/cking-vonix))
Fixed logic for public/private room types on room edit panel
- Slack importer settings object ([#17776](https://github.com/RocketChat/Rocket.Chat/pull/17776) by [@lpilz](https://github.com/lpilz))
- Administration User page blank opening users without email ([#17836](https://github.com/RocketChat/Rocket.Chat/pull/17836))
- When the message is too long declining to send as an attachment does not restore the content into the composer ([#16332](https://github.com/RocketChat/Rocket.Chat/pull/16332))
- Link preview containing HTML encoded chars ([#16512](https://github.com/RocketChat/Rocket.Chat/pull/16512))
- Email link "go to message" being incorrectly escaped ([#17803](https://github.com/RocketChat/Rocket.Chat/pull/17803))
- Error when re-installing an App ([#17789](https://github.com/RocketChat/Rocket.Chat/pull/17789))
- Spotify embed link opens in same tab ([#13637](https://github.com/RocketChat/Rocket.Chat/pull/13637) by [@bhardwajaditya](https://github.com/bhardwajaditya))
- Markdown links not accepting URLs with parentheses ([#13605](https://github.com/RocketChat/Rocket.Chat/pull/13605) by [@knrt10](https://github.com/knrt10))
- Refactor components and views to Storybook compatibility ([#17800](https://github.com/RocketChat/Rocket.Chat/pull/17800))
- [REGRESSION] Omnichannel visitor forward was applying wrong restrictions ([#17826](https://github.com/RocketChat/Rocket.Chat/pull/17826))
- Fix the update check not working ([#17809](https://github.com/RocketChat/Rocket.Chat/pull/17809))
- Add Apps-Engine to Engine Versions on History ([#17810](https://github.com/RocketChat/Rocket.Chat/pull/17810))
- Update Apps-Engine version ([#17804](https://github.com/RocketChat/Rocket.Chat/pull/17804))
Update Apps-Engine version
- Fix invalid develop payload to release service ([#17799](https://github.com/RocketChat/Rocket.Chat/pull/17799))
- Merge master into develop & Set version to 3.4.0-develop ([#17764](https://github.com/RocketChat/Rocket.Chat/pull/17764) by [@lpilz](https://github.com/lpilz))
@ -393,6 +255,46 @@
- Submit a payload to the release service when a release happens ([#17775](https://github.com/RocketChat/Rocket.Chat/pull/17775))
- Regression: Deprecate check permission on integrations ([#18024](https://github.com/RocketChat/Rocket.Chat/pull/18024))
- Regression: Favorite and Featured fields not triggering changes ([#18010](https://github.com/RocketChat/Rocket.Chat/pull/18010))
If activated, this feature will store the last agent that assisted each Omnichannel visitor when a conversation is taken. So, when a visitor returns(it works with any entry point, Livechat, Facebook, REST API, and so on) and starts a new chat, the routing system checks:
1 - The visitor object for any stored agent that the visitor has previously talked to;
2 - If a previous agent is not found, the system will try to find a previous conversation of the same visitor. If a room is found, the system will get the previous agent from the room;
If activated, this feature will store the last agent that assisted each Omnichannel visitor when a conversation is taken. So, when a visitor returns(it works with any entry point, Livechat, Facebook, REST API, and so on) and starts a new chat, the routing system checks:
1 - The visitor object for any stored agent that the visitor has previously talked to;
2 - If a previous agent is not found, the system will try to find a previous conversation of the same visitor. If a room is found, the system will get the previous agent from the room;
After this process, if an agent has been found, the system will check the agent's availability to assist the new chat. If it's not available, then the routing system will get the next available agent in the queue.
- **Apps-Engine:** New Room events ([#17487](https://github.com/RocketChat/Rocket.Chat/pull/17487))
* Global CDN config was ignored when loading the sound files
* Upload of custom sounds wasn't getting the file extension correctly
* Some translations were missing
* Global CDN config was ignored when loading the sound files
* Upload of custom sounds wasn't getting the file extension correctly
* Some translations were missing
* Edit and delete of custom sounds were not working correctly
- Resolve 'app already exists' error on app update ([#17544](https://github.com/RocketChat/Rocket.Chat/pull/17544))
@ -973,19 +871,14 @@
- Better Push and Email Notification logic ([#17357](https://github.com/RocketChat/Rocket.Chat/pull/17357))
We are still using the same logic to define which notifications every new message will generate, it takes some servers' settings, users's preferences and subscriptions' settings in consideration to determine who will receive each notification type (desktop, audio, email and mobile push), but now it doesn't check the user's status (online, away, offline) for email and mobile push notifications but send those notifications to a new queue with the following rules:
- When the user is online the notification is scheduled to be sent in 120 seconds
- When the user is away the notification is scheduled to be sent in 120 seconds minus the amount of time he is away
- When the user is offline the notification is scheduled to be sent right away
- When the user reads a channel all the notifications for that user are removed (clear queue)
- When a notification is processed to be sent to a user and there are other scheduled notifications:
- All the scheduled notifications for that user are rescheduled to now
We are still using the same logic to define which notifications every new message will generate, it takes some servers' settings, users's preferences and subscriptions' settings in consideration to determine who will receive each notification type (desktop, audio, email and mobile push), but now it doesn't check the user's status (online, away, offline) for email and mobile push notifications but send those notifications to a new queue with the following rules:
- When the user is online the notification is scheduled to be sent in 120 seconds
- When the user is away the notification is scheduled to be sent in 120 seconds minus the amount of time he is away
- When the user is offline the notification is scheduled to be sent right away
- When the user reads a channel all the notifications for that user are removed (clear queue)
- When a notification is processed to be sent to a user and there are other scheduled notifications:
- All the scheduled notifications for that user are rescheduled to now
- The current notification goes back to the queue to be processed ordered by creation date
- Error page when browser is not supported ([#17372](https://github.com/RocketChat/Rocket.Chat/pull/17372))
@ -1338,7 +1231,7 @@
- Translation via MS translate ([#16363](https://github.com/RocketChat/Rocket.Chat/pull/16363) by [@mrsimpson](https://github.com/mrsimpson))
Adds Microsoft's translation service (https://translator.microsoft.com/) as a provider for translation of messages.
Adds Microsoft's translation service (https://translator.microsoft.com/) as a provider for translation of messages.
In addition to implementing the interface (similar to google and DeepL), a small change has been done in order to display the translation provider on the UI.
- API `users.deactivateIdle` for mass-disabling of idle users ([#16849](https://github.com/RocketChat/Rocket.Chat/pull/16849))