"title":"Chore: Make omnichannel settings dependent on omnichannel being enabled",
"userLogin":"KevLehman",
"contributors":[
"KevLehman",
"web-flow",
"sampaiodiego"
]
},
{
"pr":"23523",
"title":"Chore: Update Livechat Package",
"userLogin":"MartinSchoeler",
"contributors":[
"MartinSchoeler"
]
},
{
"pr":"23411",
"title":"[FIX] SAML Users' roles being reset to default on login",
"userLogin":"matheusbsilva137",
"description":"- Remove `roles` field update on `insertOrUpdateSAMLUser` function;\r\n- Add SAML `syncRoles` event;",
"milestone":"4.0.4",
"contributors":[
"matheusbsilva137",
"pierre-lehnen-rc"
]
},
{
"pr":"23522",
"title":"[FIX] Queue error handling and unlocking behavior",
"userLogin":"KevLehman",
"milestone":"4.0.4",
"contributors":[
"KevLehman"
]
},
{
"pr":"23314",
"title":"[FIX] MONGO_OPTIONS being ignored for oplog connection",
"userLogin":"cuonghuunguyen",
"contributors":[
"cuonghuunguyen",
"sampaiodiego",
"web-flow"
]
},
{
"pr":"23392",
"title":"[IMPROVE] Allow Omnichannel to handle huge queues ",
"userLogin":"KevLehman",
"contributors":[
"KevLehman",
"web-flow"
]
},
{
"pr":"23515",
"title":"[IMPROVE] Make Livechat Instructions setting multi-line",
"userLogin":"murtaza98",
"description":"Since now we're supporting markdown text on this field (via this PR - https://github.com/RocketChat/Rocket.Chat.Livechat/pull/648), it would be nice to make this setting multiline so users can have more space to edit the text\r\n",
"title":"Chore: Ensure all permissions are created up to this point",
"userLogin":"sampaiodiego",
"contributors":[
"sampaiodiego"
]
},
{
"pr":"23469",
"title":"[FIX] useEndpointAction replace by useEndpointActionExperimental",
"userLogin":"tiagoevanp",
"contributors":[
"tiagoevanp"
]
},
{
"pr":"23394",
"title":"[FIX] Omni-Webhook's retry mechanism going in infinite loop",
"userLogin":"murtaza98",
"contributors":[
"murtaza98"
]
},
{
"pr":"23511",
"title":"Regression: Fix user typings style",
"userLogin":"ggazzo",
"contributors":[
"ggazzo"
]
},
{
"pr":"23510",
"title":"Chore: Update pino and pino-pretty",
"userLogin":"sampaiodiego",
"contributors":[
"sampaiodiego"
]
},
{
"pr":"23506",
"title":"Regression: Prevent Settings Unit Test Error ",
"userLogin":"ggazzo",
"contributors":[
"ggazzo"
]
},
{
"pr":"23486",
"title":"i18n: Language update from LingoHub 🤖 on 2021-10-18Z",
"userLogin":"lingohub[bot]",
"contributors":[
null,
"KevLehman"
]
},
{
"pr":"23376",
"title":"Bump url-parse from 1.4.7 to 1.5.3",
"userLogin":"dependabot[bot]",
"contributors":[
"dependabot[bot]",
"web-flow"
]
},
{
"pr":"23172",
"title":"[FIX] Rewrite missing webRTC feature",
"userLogin":"dougfabris",
"contributors":[
"dougfabris",
"tassoevan"
]
},
{
"pr":"23488",
"title":"Chore: Replace `promises` helper",
"userLogin":"tassoevan",
"contributors":[
"tassoevan"
]
},
{
"pr":"23210",
"title":"Chore: Startup Time",
"userLogin":"ggazzo",
"description":"The settings logic has been improved as a whole.\r\n\r\nAll the logic to get the data from the env var was confusing.\r\n\r\nSetting default values was tricky to understand.\r\n\r\nEvery time the server booted, all settings were updated and callbacks were called 2x or more (horrible for environments with multiple instances and generating a turbulent startup).\r\n\r\n`Settings.get(......, callback);` was deprecated. We now have better methods for each case.",
"milestone":"4.1.0",
"contributors":[
"ggazzo",
"sampaiodiego"
]
},
{
"pr":"23491",
"title":"Chore: Move `isJSON` helper",
"userLogin":"tassoevan",
"contributors":[
"tassoevan"
]
},
{
"pr":"23497",
"title":"Update the community open call link in README",
"userLogin":"Sing-Li",
"contributors":[
"Sing-Li",
"web-flow",
"geekgonecrazy"
]
},
{
"pr":"23490",
"title":"Chore: Move `addMinutesToADate` helper",
"userLogin":"tassoevan",
"contributors":[
"tassoevan"
]
},
{
"pr":"23489",
"title":"Chore: Move `isEmail` helper",
"userLogin":"tassoevan",
"contributors":[
"tassoevan"
]
},
{
"pr":"23228",
"title":"[FIX] Admins can't update or reset user avatars when the \"Allow User Avatar Change\" setting is off",
"userLogin":"matheusbsilva137",
"description":"- Allow admins (or any other user with the `edit-other-user-avatar` permission) to update or reset user avatars even when the \"Allow User Avatar Change\" setting is off.",
"contributors":[
"matheusbsilva137",
"web-flow",
"tassoevan"
]
},
{
"pr":"23473",
"title":"[FIX] Server crashing when Routing method is not available at start",
"userLogin":"KevLehman",
"milestone":"4.0.3",
"contributors":[
"KevLehman",
"web-flow"
]
},
{
"pr":"22949",
"title":"[FIX] Avoid last admin deactivate itself",
"userLogin":"ostjen",
"description":"Co-authored-by: @Kartik18g",
"contributors":[
"ostjen",
"web-flow",
null
]
},
{
"pr":"23418",
"title":"[FIX][APPS] Communication problem when updating and uninstalling apps in cluster",
"userLogin":"thassiov",
"description":"- Make the hook responsible for receiving app update events inside a cluster fetch the app's package (zip file) in the correct place.\r\n- Also shows a warning message on uninstalls inside a cluster. As there are many servers writing to the same place, some race conditions may occur. This prevents problems related to terminating the process in the middle due to errors being thrown and leaving the server in a faulty state.",
"description":"groups.listAll endpoint was having performance issues, specially when the total number of groups was high. This happened because the endpoint was loading all objects in memory then using splice to paginate, instead of paginating beforehand.\r\n\r\nConsidering 70k groups, this was the performance improvement:\r\n\r\nbefore\r\n\r\n\r\nafter\r\n",
"contributors":[
"ostjen",
"tassoevan",
"web-flow"
]
},
{
"pr":"23213",
"title":"[FIX] Read only description in team creation",
- Stream to get individual presence updates ([#22950](https://github.com/RocketChat/Rocket.Chat/pull/22950))
### 🚀 Improvements
- Add markdown to custom fields in user Info ([#20947](https://github.com/RocketChat/Rocket.Chat/pull/20947) by [@yash-rajpal](https://github.com/yash-rajpal))
Added markdown to custom fields to render links
- Allow Omnichannel to handle huge queues ([#23392](https://github.com/RocketChat/Rocket.Chat/pull/23392))
- Make Livechat Instructions setting multi-line ([#23515](https://github.com/RocketChat/Rocket.Chat/pull/23515))
Since now we're supporting markdown text on this field (via this PR - https://github.com/RocketChat/Rocket.Chat.Livechat/pull/648), it would be nice to make this setting multiline so users can have more space to edit the text
- optimized groups.listAll response time ([#22941](https://github.com/RocketChat/Rocket.Chat/pull/22941))
groups.listAll endpoint was having performance issues, specially when the total number of groups was high. This happened because the endpoint was loading all objects in memory then using splice to paginate, instead of paginating beforehand.
Considering 70k groups, this was the performance improvement:
- **APPS:** Communication problem when updating and uninstalling apps in cluster ([#23418](https://github.com/RocketChat/Rocket.Chat/pull/23418))
- Make the hook responsible for receiving app update events inside a cluster fetch the app's package (zip file) in the correct place.
- Also shows a warning message on uninstalls inside a cluster. As there are many servers writing to the same place, some race conditions may occur. This prevents problems related to terminating the process in the middle due to errors being thrown and leaving the server in a faulty state.
- **ENTERPRISE:** Omnichannel agent is not leaving the room when a forwarded chat is queued ([#23404](https://github.com/RocketChat/Rocket.Chat/pull/23404))
- Admins can't update or reset user avatars when the "Allow User Avatar Change" setting is off ([#23228](https://github.com/RocketChat/Rocket.Chat/pull/23228))
- Allow admins (or any other user with the `edit-other-user-avatar` permission) to update or reset user avatars even when the "Allow User Avatar Change" setting is off.
- Attachment buttons overlap in mobile view ([#23377](https://github.com/RocketChat/Rocket.Chat/pull/23377) by [@Aman-Maheshwari](https://github.com/Aman-Maheshwari))
- Avoid last admin deactivate itself ([#22949](https://github.com/RocketChat/Rocket.Chat/pull/22949))
Co-authored-by: @Kartik18g
- BigBlueButton integration error due to missing file import ([#23366](https://github.com/RocketChat/Rocket.Chat/pull/23366) by [@wolbernd](https://github.com/wolbernd))
Fixes BigBlueButton integration
- Delay start of email inbox ([#23521](https://github.com/RocketChat/Rocket.Chat/pull/23521))
- MONGO_OPTIONS being ignored for oplog connection ([#23314](https://github.com/RocketChat/Rocket.Chat/pull/23314) by [@cuonghuunguyen](https://github.com/cuonghuunguyen))
- MongoDB deprecation link ([#23381](https://github.com/RocketChat/Rocket.Chat/pull/23381))
- Omni-Webhook's retry mechanism going in infinite loop ([#23394](https://github.com/RocketChat/Rocket.Chat/pull/23394))
- Prevent starting Omni-Queue if Omnichannel is disabled ([#23396](https://github.com/RocketChat/Rocket.Chat/pull/23396))
Whenever the Routing system setting changes, and omnichannel is disabled, then we shouldn't start the queue.
- Queue error handling and unlocking behavior ([#23522](https://github.com/RocketChat/Rocket.Chat/pull/23522))
- Read only description in team creation ([#23213](https://github.com/RocketChat/Rocket.Chat/pull/23213))
- SAML Users' roles being reset to default on login ([#23411](https://github.com/RocketChat/Rocket.Chat/pull/23411))
- Remove `roles` field update on `insertOrUpdateSAMLUser` function;
- Add SAML `syncRoles` event;
- Server crashing when Routing method is not available at start ([#23473](https://github.com/RocketChat/Rocket.Chat/pull/23473))
- unwanted toastr error message when deleting user ([#23372](https://github.com/RocketChat/Rocket.Chat/pull/23372))
- useEndpointAction replace by useEndpointActionExperimental ([#23469](https://github.com/RocketChat/Rocket.Chat/pull/23469))
- user/agent upload not working via Apps Engine after 3.16.0 ([#23393](https://github.com/RocketChat/Rocket.Chat/pull/23393))
Fixes #22974
- Users' `roles` and `type` being reset to default on LDAP DataSync ([#23378](https://github.com/RocketChat/Rocket.Chat/pull/23378))
- Update `roles` and `type` fields only if they are specified in the data imported from LDAP (otherwise, no changes are applied).
<details>
<summary>🔍 Minor changes</summary>
- Bump url-parse from 1.4.7 to 1.5.3 ([#23376](https://github.com/RocketChat/Rocket.Chat/pull/23376) by [@dependabot[bot]](https://github.com/dependabot[bot]))
- Chore: clean README ([#23342](https://github.com/RocketChat/Rocket.Chat/pull/23342) by [@AbhJ](https://github.com/AbhJ))
- Chore: Document REST API endpoints (banners) ([#23361](https://github.com/RocketChat/Rocket.Chat/pull/23361))
Describes endpoints for banners on REST API using a JSDoc annotation compatible with OpenAPI spec.
- Chore: Document REST API endpoints (DNS) ([#23405](https://github.com/RocketChat/Rocket.Chat/pull/23405))
Describes endpoints for DNS on REST API using a JSDoc annotation compatible with OpenAPI spec.
- Chore: Document REST API endpoints (E2E) ([#23430](https://github.com/RocketChat/Rocket.Chat/pull/23430))
Describes endpoints for end-to-end encryption on REST API using a JSDoc annotation compatible with OpenAPI spec.
- Chore: Document REST API endpoints (Misc) ([#23428](https://github.com/RocketChat/Rocket.Chat/pull/23428))
Describes miscellaneous endpoints on REST API using a JSDoc annotation compatible with OpenAPI spec.
- Chore: Ensure all permissions are created up to this point ([#23514](https://github.com/RocketChat/Rocket.Chat/pull/23514))
- Chore: Fix some TS warnings ([#23524](https://github.com/RocketChat/Rocket.Chat/pull/23524))
- Chore: Fixed a Typo in 11-admin.js test ([#23355](https://github.com/RocketChat/Rocket.Chat/pull/23355) by [@badbart](https://github.com/badbart))
- Chore: Startup Time ([#23210](https://github.com/RocketChat/Rocket.Chat/pull/23210))
The settings logic has been improved as a whole.
All the logic to get the data from the env var was confusing.
Setting default values was tricky to understand.
Every time the server booted, all settings were updated and callbacks were called 2x or more (horrible for environments with multiple instances and generating a turbulent startup).
`Settings.get(......, callback);` was deprecated. We now have better methods for each case.
- Chore: Update Apps-Engine version ([#23375](https://github.com/RocketChat/Rocket.Chat/pull/23375))
- Text formatted to remain within button even on screen resize ([#14136](https://github.com/RocketChat/Rocket.Chat/pull/14136) by [@Rodriq](https://github.com/Rodriq))
- Text formatted to remain within button even on screen resize ([#14136](https://github.com/RocketChat/Rocket.Chat/pull/14136))
- There is no option to pin a thread message by admin ([#16457](https://github.com/RocketChat/Rocket.Chat/pull/16457) by [@ashwaniYDV](https://github.com/ashwaniYDV))