Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: E2EE messages mentions #32510

Merged
merged 31 commits into from
Sep 20, 2024
Merged

feat: E2EE messages mentions #32510

merged 31 commits into from
Sep 20, 2024

Conversation

hugocostadev
Copy link
Contributor

@hugocostadev hugocostadev commented May 28, 2024

Proposed changes (including videos or screenshots)

In Rocket.Chat, while end-to-end encryption secures user messages in private rooms, it currently does not support the functionality to mention specific users within these encrypted conversations. This limitation reduces the usability and interactivity of the chat, as users cannot directly alert or reference other participants. Enabling mentions in encrypted rooms will enhance communication efficiency and user engagement without compromising the security of the encryption.

Acceptance criteria (DoD)

  • Functionality Implementation: Users should be able to mention other users, teams, and @ALL and @here in end-to-end encrypted rooms using the '@' symbol followed by the username, exactly the same functionality in non-encrypted rooms.
  • Autocomplete Feature: As a user types a mention, an autocomplete feature should suggest possible usernames based on the current participants in the room, exactly the same functionality in non-encrypted rooms.
  • Notification Handling: Users who are mentioned should receive notifications if they have notifications enabled, exactly the same functionality in non-encrypted rooms.
  • Security Compliance: The implementation of mentions must not compromise the encryption integrity of the message, but it’s not required the mention to be end-to-end encrypted.
  • Performance Impact: Ensure that the introduction of mentions does not significantly impact the performance and responsiveness of the chat system.
  • User Experience: The user interface for mentions in encrypted rooms should be seamless and intuitive, without requiring additional steps or complications for the user.
  • Accessibility and Compatibility: Ensure that mentions are accessible and function consistently across all supported devices and platforms.
  • Create a new setting

Issue(s)

Steps to test or reproduce

Further comments

https://rocketchat.atlassian.net/browse/E2EE2-8

Copy link
Contributor

dionisio-bot bot commented May 28, 2024

Looks like this PR is ready to merge! 🎉
If you have any trouble, please check the PR guidelines

Copy link

changeset-bot bot commented May 28, 2024

🦋 Changeset detected

Latest commit: 1eeff2d

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 34 packages
Name Type
@rocket.chat/meteor Minor
@rocket.chat/core-typings Minor
@rocket.chat/i18n Patch
@rocket.chat/api-client Patch
@rocket.chat/apps Patch
@rocket.chat/core-services Patch
@rocket.chat/cron Patch
@rocket.chat/ddp-client Patch
@rocket.chat/fuselage-ui-kit Major
@rocket.chat/gazzodown Major
@rocket.chat/livechat Patch
@rocket.chat/model-typings Patch
@rocket.chat/rest-typings Minor
@rocket.chat/ui-contexts Major
@rocket.chat/account-service Patch
@rocket.chat/authorization-service Patch
@rocket.chat/ddp-streamer Patch
@rocket.chat/omnichannel-transcript Patch
@rocket.chat/presence-service Patch
@rocket.chat/queue-worker Patch
@rocket.chat/stream-hub-service Patch
@rocket.chat/license Patch
@rocket.chat/omnichannel-services Patch
@rocket.chat/pdf-worker Patch
@rocket.chat/presence Patch
rocketchat-services Patch
@rocket.chat/mock-providers Patch
@rocket.chat/web-ui-registration Major
@rocket.chat/uikit-playground Patch
@rocket.chat/models Patch
@rocket.chat/ui-avatar Major
@rocket.chat/ui-client Major
@rocket.chat/ui-video-conf Major
@rocket.chat/instance-status Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@hugocostadev hugocostadev changed the title Feat/e2e messages mentions feat: E2EE messages mentions May 28, 2024
Copy link

codecov bot commented May 28, 2024

Codecov Report

Attention: Patch coverage is 71.42857% with 2 lines in your changes missing coverage. Please review.

Project coverage is 59.70%. Comparing base (636d32d) to head (1eeff2d).
Report is 14 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff            @@
##           develop   #32510    +/-   ##
=========================================
  Coverage    59.70%   59.70%            
=========================================
  Files         2551     2551            
  Lines        62792    62908   +116     
  Branches     14102    14128    +26     
=========================================
+ Hits         37492    37562    +70     
- Misses       22893    22929    +36     
- Partials      2407     2417    +10     
Flag Coverage Δ
unit 76.90% <71.42%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

@hugocostadev hugocostadev marked this pull request as ready for review June 3, 2024 20:17
@hugocostadev hugocostadev requested review from a team as code owners June 3, 2024 20:17
apps/meteor/app/mentions/server/Mentions.ts Outdated Show resolved Hide resolved
apps/meteor/app/mentions/server/Mentions.ts Outdated Show resolved Hide resolved
apps/meteor/client/startup/e2e.ts Outdated Show resolved Hide resolved
@hugocostadev hugocostadev requested a review from KevLehman June 5, 2024 18:51
@hugocostadev hugocostadev added this to the 7.0 milestone Jun 7, 2024
.changeset/late-planes-sniff.md Outdated Show resolved Hide resolved
Copy link
Member

@MarcosSpessatto MarcosSpessatto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add a description to the PR?

@hugocostadev hugocostadev marked this pull request as ready for review July 15, 2024 16:12
yash-rajpal
yash-rajpal previously approved these changes Jul 16, 2024
apps/meteor/app/mentions/server/Mentions.ts Outdated Show resolved Hide resolved
apps/meteor/app/mentions/server/Mentions.ts Outdated Show resolved Hide resolved
apps/meteor/client/startup/e2e.ts Show resolved Hide resolved
apps/meteor/tests/e2e/e2e-encryption.spec.ts Show resolved Hide resolved
@milton-rucks milton-rucks modified the milestones: 7.0, 6.13 Aug 29, 2024
@jessicaschelly jessicaschelly added the stat: QA assured Means it has been tested and approved by a company insider label Sep 17, 2024
@dionisio-bot dionisio-bot bot added the stat: ready to merge PR tested and approved waiting for merge label Sep 17, 2024
@dionisio-bot dionisio-bot bot removed the stat: ready to merge PR tested and approved waiting for merge label Sep 17, 2024
Copy link
Contributor

github-actions bot commented Sep 17, 2024

PR Preview Action v1.4.8
Preview removed because the pull request was closed.
2024-09-20 00:15 UTC

@ggazzo ggazzo merged commit 274f4f5 into develop Sep 20, 2024
51 checks passed
@ggazzo ggazzo deleted the feat/e2e-messages-mentions branch September 20, 2024 00:15
gabriellsh added a commit that referenced this pull request Sep 23, 2024
…hAvatarById

* 'develop' of github.com:RocketChat/Rocket.Chat:
  feat: Implement proper accessbility for report user modal (#33294)
  chore: update E2EE setting text (#33226)
  fix: conference calls are shown as "not answered" after they end (#33179)
  fix: markdown inconsistency with bold and italics (#33157)
  feat: E2EE messages mentions (#32510)
  refactor: Reactions set/unset (#32994)
  ci: auto candidate releases (#33325)
  feat: `RoomSidepanel` (#33225)
  feat: contextualbar based on chat size (#33321)
  fix: error on sendmessage stub (#33317)
  fix: `LivechatSessionTaken` webhook event called without `agent` param (#33209)
  refactor: Remove old `setreaction` callbacks and use new after/before callbacks (#33309)
  fix: Mark as unread not working (#32939)
  fix: Local avatars prioritized over external avatar provider and remove remnant references on client of `Accounts_AvatarExternalProviderUrl` (#33296)
  feat: Allow managing association to business units on departments' creation and update (#32682)
pierre-lehnen-rc added a commit that referenced this pull request Sep 26, 2024
* Bump 6.12.1

* fix: message parser being slow to process very long messages with too many symbols (#33254)

Co-authored-by: Pierre Lehnen <55164754+pierre-lehnen-rc@users.noreply.github.com>

* fix: Allow to use the token from `room.v` when requesting transcript instead of finding visitor (#33242)

Co-authored-by: Kevin Aleman <11577696+KevLehman@users.noreply.github.com>

* fix: Retention Policy cached settings not updated during upgrade procedure (#33265)

Co-authored-by: gabriellsh <40830821+gabriellsh@users.noreply.github.com>

* fix: imported fixes (#33268)

Co-authored-by: Julio A. <52619625+julio-cfa@users.noreply.github.com>

* Release 6.12.1

[no ci]

* fix: Federation callback not awaiting model call (#33298)

* fix: correct parameter order in afterSaveMessage to restore outgoing webhooks and related features (#33295)

* feat: New endpoint for listing rooms & discussions from teams (#33177)

* chore: Update typings on callbacks to accept less than a full room object (#33305)

* fix: resolve avatar download issue on setUsername by refining service selection logic (#33193)

* feat: Allow managing association to business units on departments' creation and update (#32682)

* fix: Local avatars prioritized over external avatar provider and remove remnant references on client of `Accounts_AvatarExternalProviderUrl` (#33296)

Co-authored-by: gabriellsh <40830821+gabriellsh@users.noreply.github.com>

* fix: Mark as unread not working (#32939)

Co-authored-by: Douglas Fabris <27704687+dougfabris@users.noreply.github.com>

* refactor: Remove old `setreaction` callbacks and use new after/before callbacks (#33309)

* fix: `LivechatSessionTaken` webhook event called without `agent` param (#33209)

* fix: error on sendmessage stub (#33317)

* feat: contextualbar based on chat size (#33321)

* feat: `RoomSidepanel` (#33225)

Co-authored-by: Guilherme Gazzo <5263975+ggazzo@users.noreply.github.com>

* ci: auto candidate releases (#33325)

Co-authored-by: Diego Sampaio <chinello@gmail.com>

* refactor: Reactions set/unset (#32994)

* feat: E2EE messages mentions (#32510)

* fix: markdown inconsistency with bold and italics (#33157)

* fix: conference calls are shown as "not answered" after they end (#33179)

* Release 6.13.0-rc.0

* chore: update E2EE setting text (#33226)

* feat: Implement proper accessbility for report user modal (#33294)

Co-authored-by: Tasso Evangelista <2263066+tassoevan@users.noreply.github.com>

* fix: imported fixes (#33330)

* chore: create network broker package (#33338)

* feat: Adds new admin feature preview setting management (#33212)

Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>

* chore: move common files to core-services (#33341)

* regression: `Sidepanel` color highlight (#33342)

* feat: Adds new admin feature preview setting management (#33212)

Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>

* fix: Avoid destructuring `connectionData` when value is undefined (#33339)

* Release 6.13.0-rc.1

[no ci]

* chore: replace Meteor._localStorage -> Accounts.storageLocation (#33356)

* Bump rocket.chat to 6.14.0-develop (#33366)

* ci: use node20 for release action (#33343)

---------

Co-authored-by: rocketchat-github-ci <buildmaster@rocket.chat>
Co-authored-by: dionisio-bot[bot] <117394943+dionisio-bot[bot]@users.noreply.github.com>
Co-authored-by: Pierre Lehnen <55164754+pierre-lehnen-rc@users.noreply.github.com>
Co-authored-by: Kevin Aleman <11577696+KevLehman@users.noreply.github.com>
Co-authored-by: gabriellsh <40830821+gabriellsh@users.noreply.github.com>
Co-authored-by: Julio A. <52619625+julio-cfa@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
Co-authored-by: Kevin Aleman <kaleman960@gmail.com>
Co-authored-by: Ricardo Garim <rswarovsky@gmail.com>
Co-authored-by: Matheus Barbosa Silva <36537004+matheusbsilva137@users.noreply.github.com>
Co-authored-by: Tasso Evangelista <tasso.evangelista@rocket.chat>
Co-authored-by: Martin Schoeler <martin.schoeler@rocket.chat>
Co-authored-by: Douglas Fabris <27704687+dougfabris@users.noreply.github.com>
Co-authored-by: Júlia Jaeger Foresti <60678893+juliajforesti@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <5263975+ggazzo@users.noreply.github.com>
Co-authored-by: Diego Sampaio <chinello@gmail.com>
Co-authored-by: Hugo Costa <hugocarreiracosta@gmail.com>
Co-authored-by: csuadev <72958726+csuadev@users.noreply.github.com>
Co-authored-by: Henrique Guimarães Ribeiro <43561537+rique223@users.noreply.github.com>
Co-authored-by: Tasso Evangelista <2263066+tassoevan@users.noreply.github.com>
Co-authored-by: Lucas Pelegrino <lucas.pelegrino@icloud.com>
Co-authored-by: Trivikram Kamat <16024985+trivikr@users.noreply.github.com>
gabriellsh added a commit that referenced this pull request Sep 26, 2024
…apped/composer-restriction

* 'develop' of github.com:RocketChat/Rocket.Chat: (55 commits)
  regression: `Sidepanel` sort requires refresh after room update (#33370)
  ci: use node20 for release action (#33343)
  Bump rocket.chat to 6.14.0-develop (#33366)
  chore: replace Meteor._localStorage -> Accounts.storageLocation (#33356)
  Release 6.13.0-rc.1
  fix: Avoid destructuring `connectionData` when value is undefined (#33339)
  feat: Adds new admin feature preview setting management (#33212)
  regression: `Sidepanel` color highlight (#33342)
  chore: move common files to core-services (#33341)
  feat: Adds new admin feature preview setting management (#33212)
  chore: create network broker package (#33338)
  fix: imported fixes (#33330)
  feat: Implement proper accessbility for report user modal (#33294)
  chore: update E2EE setting text (#33226)
  Release 6.13.0-rc.0
  fix: conference calls are shown as "not answered" after they end (#33179)
  fix: markdown inconsistency with bold and italics (#33157)
  feat: E2EE messages mentions (#32510)
  refactor: Reactions set/unset (#32994)
  ci: auto candidate releases (#33325)
  ...
abhinavkrin pushed a commit that referenced this pull request Oct 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stat: QA assured Means it has been tested and approved by a company insider
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants