2022-08-26 · 8 🎉 · 7 🚀 · 49 🐛 · 110 🔍 · 37 👩💻👨💻
🎉 New features
-
Home
page (#25734) -
Adding oauth crud on the rocket.chat side (#26220 by @kodiakhq[bot])
-
allow ephemeral messages to receive a specific id (#26118 by @kodiakhq[bot])
Allow apps to pass a specific ID for ephemeral messages as a way to edit them.
-
Capability to search visitors by custom fields (#26312)
Users of the endpoints api/v1/omnichannel/contact.search and /api/v1/livechat/visitors.search are now able to search by custom fields in their objects.
Capability of selecting if a custom field can be searched for is added in the Omnichannel pannel as a toggle forsearchable
, the included JSON in the Accounts' Custom Field example has been updated to make it explicit for future configurations that the field has to be enabled as searchable for that to happen. -
Fallback Error component for Engagement Dashboard widgets (#26441 by @kodiakhq[bot])
As proposed, was added a fallback component to catch errors at Engagement Dashboard widgets individually.
It used an Error boundary to catchreact-query
errors, due to this scenario was necessary to install and use the library react-error-boundary that implements everything and more compared to our ErrorBoundary component, the main reason was to capture Query errors and the implementation withreact-query
library.New layout:
-
Marketplace apps page new list view layout (#26181)
Refactored the layout of the marketplace list of apps, now it has a more minimalist and flexbox-based style. Also implemented a new status filter.
ClickUp task:
https://app.clickup.com/t/1na7437 -
Surface featured apps endpoint (#26416)
Created the /featured endpoints on the rest.js file. Also created the necessary typings to use together with it.
-
Warn admins about running multiple instances of the monolith (#26667 by @kodiakhq[bot])
🚀 Improvements
-
Added identification on calls to/from existing contacts (#26334)
-
General federation improvements (#26150)
I know this changed a lot of files, but the main goal for this PR is not to change any behavior, the goals for the PR are:
-
Refactor the code;
-
Solve any tech debt;
-
Simplify and reuse some parts of the code;
-
Remove duplicated code;
-
Remove all unsafe type castings;
-
Solve all Eslint errors and warnings;
-
Split too big files;
-
Encapsulate the business logic in a better way, avoiding exposing and leaking internal logic to the unintended layers;
-
Improve the actual test cases;
-
Add more test cases, since a lot of cases were omitted during the release phase;
-
Remove unsafe
Object.assign
statements and prefer to use the classconstructor
instead;
-
-
New 'not found page' design (#26452 by @kodiakhq[bot])
-
Add a new design for the not-found page
-
Add English translation for "page not found" and "Homepage"
-
Update English translation for "Room_not_exist_or_not_permission"
-
Add "Homepage" button on the room not found page
-
-
OTR refactoring (#24757)
Rewritten OTR files to TS with new code patterns
-
Spotlight search user results (#26599 by @kodiakhq[bot])
-
use enter key to call using DialPad (#26454)
-
Use single change stream to watch DB changes (#26336)
🐛 Bug fixes
-
- Incoming SMSs no longer clash with ongoing livechat conversations by the same visitor (#26307 by @kodiakhq[bot])
There was a data race in the defineVisitor function, causing new guests to be created even if a registered guest with that number already existed, also made sure that the open room being searched on is the correct source type, so the clash is not possible anymore.
-
ENTERPRISE: User not marked as offline on log out when using micro services (#26579 by @kodiakhq[bot])
-
Active users count on
@all
and@here
(#25957 by @kodiakhq[bot])this PR updates the old
roomMembersCount
to count active users instead of everyone -
add image format validation (#25912 by @kodiakhq[bot])
-
Add Offline License Endpoint (#26282 by @kodiakhq[bot])
This PR updates the endpoint to add a license
-
Agents (with user status offline & omni-status as available) not able to take or forward chat (#26575 by @kodiakhq[bot])
-
Allow normal user to open apps contextual bar (#26495)
Fix the bug where normal users cannot open an app contextual bar.
The request made by the contextual bar to get the app information, which was for admin only, was removed since the response was not being used. -
Autotranslate method should respect setting (#26549)
-
Avatars of other chats disappear when they located near chat with broken avatar (#26689)
-
Blank screen after requesting transcript (#26385 by @kodiakhq[bot])
-
Chats holds to load history for some time (#26425)
-
Chats not getting assigned to offline agents even when "Accept with No Online agents" setting is turned on (#26147 by @kodiakhq[bot])
-
Clear push token on save user password (#26466)
-
Correct IMAP configuration for email inbox (#25789)
The primary change here has been to make the library try and reconnect after some time, up to a certain configured number of times, on a few different error classes.
-
Current Chat Custom Field Filter (#26200 by @kodiakhq[bot])
-
Decrypt E2EE messages on thread list (#26133)
Before
### After -
Default BH not getting applied in-case any other BH is disabled (#26471 by @kodiakhq[bot])
-
DialPad call button from end to center (#26459)
-
Don't give errors on outbound voip call Request Terminated (#26373)
-
Don't wrap wrap up notes (#26375)
-
Empty results on
im.list
endpoint (#26438) -
Endpoints not working when using "Use Real Name" setting (#26530 by @kodiakhq[bot])
The list of endpoints affected is:
-
/api/v1/channels.list
-
/api/v1/channels.list.joined
-
/api/v1/groups.list
-
/api/v1/groups.listAll
-
/api/v1/im.list
-
/api/v1/im.list.everyone
-
-
incorrect error toast messages (#26320)
-
Katex is not respecting the 'Katex_Enabled' setting (#26542 by @kodiakhq[bot])
-
LDAP fails to sync teams when the user DN has escaped characters. (#26535 by @kodiakhq[bot])
-
MDM content alignment (#26665)
- remove left margin of MDM content
-
Missing bio field UI validation (#26345 by @kodiakhq[bot])
-
Not allowed error in discussion room with a private parent channel (#26394)
-
Not possible to deactivate users (#26323)
-
Notification preferences not updated on save (#26461 by @kodiakhq[bot])
Publish required notification subscription fields on change, so that changes can be seen on save.
-
Onhold auto chat resume feature not working for email channel (#26363)
-
Open team after room not found page (#26264 by @kodiakhq[bot])
After the room not found page, the
FlowRouter
was not clearingmsg
query param, causing the next redirect to private teams break because it's try to find the unknow msg id -
Permission
view-all-teams
is not checked in theteams.info
endpoint (#25841 by @kodiakhq[bot])Previously any authenticated user was able to access the
teams.info
endpoint, this PR updates this so only users with theview-all-teams
permission or team members can access it. -
Prevent VoIP issues during disconnection when network failed (#26321)
-
Prune messages not removing thumbnails (#26443 by @kodiakhq[bot])
This PR adds a method on
Uploads
calledfindOneByName
, and excludes a thumbnail of an image oncleanRoomHistory
-
Request at least one field in the payload of
/v1/users.setStatus
(#26490)Requests
status
and/ormessage
fields on/v1/users.setStatus
request payload. -
Reset password errors (#26597)
-
Save edited tags for omnichannel departments (#26481 by @kodiakhq[bot])
-
Slack User CSV importer not working (#26629 by @kodiakhq[bot])
-
Slackbridge Connect Error (#25793 by @kodiakhq[bot])
This PR fixes an issue that was happening when an invalid token was passed on SlackBridge, basically the app crashes because the error was not being handled
-
Slash commands description as undefined (#26372 by @kodiakhq[bot])
-
SMS service check (#26558 by @kodiakhq[bot])
-
Too many REST API requests (#26330)
Uses React Query cache as an alternative for querying data "sorta" real time.
-
UI fixes on dropdown titles (#26318)
-
Add paddings on profile dropdown title
-
Fix paddings on 'sort' and 'create new' dropdown titles
-
Remove inline styles of
OptionTitle
(removing uppercase style)
Location Before After Sort Dropdown User Dropdown Create new Dropdown -
-
Unable to remove a user who joined a public team with a mention (#26218 by @kodiakhq[bot])
This PR fixes a bug where a user that joins a team by mention don't get added to the team.
-
Unable to send voice recording to Whatsapp (#26276)
-
Undefined MediaDevices error on HTTP (#26396)
-
Users can access public discussions inside private channels they are not members of (#26619 by @kodiakhq[bot])
-
Users can access public discussions inside private channels they are not members of (#25981 by @kodiakhq[bot])
🔍 Minor changes
-
Chore: Accounts/token to TS (#26434)
-
Chore: Add end-to-end tests to teams listing in the
directory
endpoint (#26347) -
Chore: Add license env var to ee tests (#26650 by @kodiakhq[bot])
-
Chore: add playwright ee coverage (#26293)
-
Chore: Add translations code owner (#26560)
-
Chore: Bypass turbo cache on
ui-contexts
(#26526)Skips cache for building
@rocket.chat/ui-contexts
, avoiding Turborepo issues with a symlink. -
Chore: Cache playwright (#26432)
-
Chore: Change some places still using
fields
toprojection
(#26308) -
Chore: cleanup startup of test and put wizard in setup function (#26306)
-
Chore: Codecov threshold (#26477)
-
Chore: Convert
client/views/account/preferences
folder to ts (#26496) -
Chore: Convert
LivechatCustomField
model to raw model (#26446 by @kodiakhq[bot]) -
Chore: Convert AccountPreferencesPage to ts (#26096)
-
Chore: Convert AppSetting to tsx (#26625)
-
Chore: Convert AppSettingsAssembler to tsx (#26626 by @kodiakhq[bot])
-
Chore: convert autotranslate to ts (#25953 by @kodiakhq[bot])
Converted the
apps/meteor/app/api/server/v1/autotranslate.js
to ts and created endpoint typings on thepackages/rest-typings/src/v1/autotranslate
folder. -
Chore: Convert client/views/account/security folder to ts (#26413)
-
Chore: Convert UserCardWithData to ts (#26192 by @kodiakhq[bot])
-
Chore: create removeWebdavAccount endpoint (#26393)
Created the '/v1/webdav.removeWebdavAccount' endpoint for the
apps/meteor/client/views/account/integrations/AccountIntegrationsPage.tsx
file, and added Ajv validations. -
Chore: create roomNameExists endpoint (#26386)
Created the missing rest endpoint 'roomNameExists' for
apps/meteor/client/sidebar/header/CreateChannel.tsx
, on the packages/rest-typings/src/v1/ folder. -
Chore: Create teams management tests (#26578 by @kodiakhq[bot])
-
Chore: Create tests for Omnichannel admin add a custom fields (#26609 by @kodiakhq[bot])
-
Chore: ESLint warnings (#26504)
The current amount of ESLint warning messages is overwhelming to properly debug serious issues. This PR aims to reduce them to a sane amount.
-
Chore: Exclude private/public folders from typecheck (#26399)
-
Chore: Exit process on
unhandledRejection
on CI (#26467) -
Chore: Fail-fast on callbacks (#26572)
-
Chore: Fix CI intermittent (#26649)
-
Chore: Fix grammatical typo when only one message is pruned (#21902 by @shrinish123)
Whenever only 1 message is pruned it says '1 messages pruned' instead of '1 message pruned' in the toast message
-
Chore: Fix lint issues (#26531)
#24757 was an old PR and was recently auto-merged, it was not following our latest eslint rules, so now there are some lint issues on the develop.
-
Chore: Fix services image publish do DockerHub (#26608)
-
Chore: Fix some settings with incompatible default value types (#26114 by @kodiakhq[bot])
-
Chore: fix tests with beforeEach (#26335)
-
Chore: Fix UiKit dependency issue for Livechat (#26534)
-
Chore: Importer rest types, meteor methods to TS and API unit tests (#26284 by @kodiakhq[bot])
-
Chore: Improve test for livechat (#26527)
-
Chore: Migrate AppPermissionsReviewModal from JS to TS (#26498)
-
Chore: Migrate modules related to
room
template to TypeScript (#25881) -
Chore: Migrate omni-chat forwarding to use API instead of meteor method (#26377)
- Use
livechat/room.forward
endpoint to forward omnichannel chats instead of using meteor method "livechat:transfer"
- Use
-
Chore: Missing permissions translations (#26546 by @kodiakhq[bot])
-
Chore: Missing some English translation keywords (#20131 by @Karting06)
Add missing translation keys in
en.i18n.json
to be able to translate them via Lingohub. -
Chore: Mocha handling multiple React instances (#26513)
Whenever Mocha runs a test file which imports stuff from outside
apps/meteor
, it uses a hoisted version of React (i.e. located at the rootnode_modules
) instead of the one tied toapps/meteor/node_modules
. This PR adds a monkey patch while we can't migrate to another test runner. -
Chore: ModalFooterControllers adoption (#26445 by @kodiakhq[bot])
-
Chore: More Omnichannel tests (#26691 by @kodiakhq[bot])
-
Chore: Move
Card
and related components to@rocket.chat/ui-client
(#26653) -
Chore: Move fuselage-ui-kit to main repo (#26630 by @kodiakhq[bot])
-
Chore: Omnichannel endpoints e2e tests (#26376)
-
Chore: omnichannel-departments tests (#26607 by @kodiakhq[bot])
-
Chore: Options in BaseRaw model could possibly be undefined (#26395)
I found this while I was doing some refactorings on the federation side. 😬
-
Chore: Parallelize e2e tests (#26390)
-
Chore: Permissions check per endpoint/method (#26419)
-
Chore: Prevent tooltip from opening after click (#26612)
-
Chore: Purge some unused modules (#26447)
The title says it all.
-
Chore: Refactor create-target-channel util (#26493)
-
Chore: Refactor ReportMessage Modal to React Component (#26478 by @kodiakhq[bot])
-
Chore: Refactor RoomMembers to Typescript (#26559 by @kodiakhq[bot])
-
Chore: Refactor WebdavFilePicker Modal to React Component (#26422)
-
Chore: Remove & Test old closeChat templates (#26631)
-
Chore: Remove console.log (#26618)
-
Chore: Remove italic/bold font-style from system messages (#26655)
It was removed from system messages font-styles elements (italic and bold) that highlighted some words as
users
,room_name
and others.In addition to this PR, was also created a PR to Fuselage to remove italic font style in general at system messages.
Fuselage PR: RocketChat/fuselage#830
-
Chore: Remove Livechat Dashboard Templates (#26627)
-
Chore: Remove method calls - Stage 1 (#26149 by @kodiakhq[bot])
-
Chore: Remove public and node_modules folders from TypeScript server watcher (#26391)
-
Chore: Remove settings Fibers usage (#26465)
-
Chore: Remove square prop from IconButton (#26343 by @kodiakhq[bot])
-
Chore: Remove translation owners (#26598)
-
Chore: Remove trash collection from models when not used (#26628 by @kodiakhq[bot])
-
Chore: remove useMethod calls (#26195 by @kodiakhq[bot])
-
Chore: Replace direct multiple icon (#26342 by @kodiakhq[bot])
-
Chore: Replace timeAgo on WebdavFilePickerTable (#26564 by @kodiakhq[bot])
-
Chore: restrict
.only
(#26537 by @kodiakhq[bot]) -
Chore: Rewrite custom OAuth Modals to react (#26204)
-
Chore: Rewrite Location modal to React (#26196)
-
Chore: Rewrite SaveToWebdav Modal to React Component (#24365)
before
after
-
Chore: Rewrite VerticalBarOldActions to TS (#26277 by @kodiakhq[bot])
-
Chore: Separating user edit form to prevent browser autocomplete (#26280 by @kodiakhq[bot])
Separating user edit form to prevent browser password and username auto-complete.
The browser will continue showing the suggestion dropdown for the password field, but when you select a suggestion the other text field will not be impacted, as was happening before with 'Nickname' field -
Chore: skipping tests that are based on kebab menu (#26616 by @kodiakhq[bot])
-
Chore: test for change avatar (#26543)
-
Chore: Tests intermitences (#26464)
-
Chore: transfer to another agent (#26545 by @kodiakhq[bot])
-
Chore: update codeowners for omnichannel (#25771)
-
Chore: update fuselage rounded edition (#26540 by @kodiakhq[bot])
-
Chore: Upgrade dependencies (#26694)
-
Chore: Upgrade ESLint (#26132)
Upgrade ESLint (to 8.19.0) and its dependencies, dropping outdated rules.
-
Chore: Upgrade Fuselage packages to next dist-tag (#26435)
-
Chore: Upgrade nivo and React Query (#26338)
-
Chore: Use Docker compose on CI (#26437)
-
Chore: useEndpointData deprecation (#26494)
-
Chore: validateParams to accept different validators per request method (#26357)
-
Chore: Wait subscription to expose message composer (#26600)
-
i18n: Fix Korean set role translation (#24966 by @imyaman)
English https://pbs.twimg.com/media/FO2zby1aQAMB84D?format=png&name=small
Korean https://pbs.twimg.com/media/FO2zWgKaIAYidJ7?format=png&name=small
Google Translate https://pbs.twimg.com/media/FO20MPnaUAU-TU_?format=jpg&name=medium -
i18n: Language update from LingoHub 🤖 on 2022-08-01Z (#26429)
-
i18n: Language update from LingoHub 🤖 on 2022-08-08Z (#26508 by @kodiakhq[bot])
-
i18n: Language update from LingoHub 🤖 on 2022-08-15Z (#26570 by @kodiakhq[bot])
-
i18n: Language update from LingoHub 🤖 on 2022-08-22Z (#26645 by @kodiakhq[bot])
-
i18n: Makes the text less ambiguous (#20895 by @pierreozoux)
-
i18n: Manual sync from LingoHub (#26397)
-
Regression: "Cache size is not a function" error when booting (#26683 by @kodiakhq[bot])
-
Regression: Add alsoSendThreadToChannel to user settings api (#26663 by @kodiakhq[bot])
-
Regression: Banner - Room not found - Omnichannel room (#26693)
-
Regression: CI (#26658)
-
Regression: Custom status loading forever in Usercard (#26656)
-
Regression: Fix app privacy links opening in desktop client instead of browser (#26368)
-
Regression: Fix services Docker build (#26617)
-
Regression: Fix spacing problem on AppStatus component (#26421)
Fixed a problem where the AppStatus component would show a unwanted margin when an app was installed and had an update.
Before:
-
Regression: Home cards UI tweaks (#26610 by @kodiakhq[bot])
-
Regression: invalid statistics format (#26684 by @kodiakhq[bot])
-
Regression: Modal footer alignment (#26635 by @kodiakhq[bot])
-
Regression: Prevent message from being temp forever (#26668 by @kodiakhq[bot])
-
Regression: Team name validation failing always. (#26574)
-
Regression: Update custom homepage content behavior (#26571 by @kodiakhq[bot])
👩💻👨💻 Contributors 😍
👩💻👨💻 Core Team 🤓
- @AllanPazRibeiro
- @KevLehman
- @LucianoPierdona
- @MarcosSpessatto
- @MartinSchoeler
- @albuquerquefabio
- @aleksandernsilva
- @carlosrodrigues94
- @cauefcr
- @d-gubert
- @debdutdeb
- @dougfabris
- @felipe-rod123
- @filipemarins
- @gabriellsh
- @ggazzo
- @guijun13
- @hugocostadev
- @jeanfbrito
- @juliajforesti
- @matheusbsilva137
- @murtaza98
- @pierre-lehnen-rc
- @rique223
- @rodrigok
- @sampaiodiego
- @souzaramon
- @tapiarafael
- @tassoevan
- @tiagoevanp
- @weslley543
- @yash-rajpal