Skip to content

Production-ready encrypted room history on invite #2829

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

Open
2 of 17 tasks
andybalaam opened this issue Apr 29, 2025 · 6 comments
Open
2 of 17 tasks

Production-ready encrypted room history on invite #2829

andybalaam opened this issue Apr 29, 2025 · 6 comments
Labels

Comments

@andybalaam
Copy link
Member

andybalaam commented Apr 29, 2025

Continuing from the prototype at #2685 , make this work in Element clients with proper UI.

(Does not cover 3rd-party invites.)

(We think that we can continue using the media API and leave the key bundles on the server since they are encrypted and have similar secrecy to key backups.)

Designs:

@mxandreas
Copy link

Given we have this, what purpose does #749 still serve, if any?

@andybalaam
Copy link
Member Author

andybalaam commented Apr 30, 2025

@andybalaam andybalaam changed the title Encrypted room history post-prototype Production-ready encrypted room history on invite Apr 30, 2025
@mxandreas
Copy link

This is fine, but I think the description of the tickets need to be updated to realize that this is the case.

@andybalaam
Copy link
Member Author

This is fine, but I think the description of the tickets need to be updated to realize that this is the case.

I updated this item's title - which other descriptions need updating - after a quick glance they looked ok to me?

@americanrefugee
Copy link

Final designs:

@andybalaam
Copy link
Member Author

Summary of our meeting with design. This just confirms what is in the description, but writing it here explicitly in case it clarifies anything:

  • When a user sends an invite we should block saying something like "preparing room history" until the keys are collected and sent
  • When receiving an invite with key history, this should be transparent to the user, with old messages appearing as UTDs with a message something like "Waiting for this message". If the client is killed in the middle of this process, it should resume when restarted.
  • When I am invited to a room that has history sharing turned on, I should see a dismissable banner telling me that messages I send now will be visible to FUTURE room members. This should also be noted in the room info panel.
  • When I am already in a room and an admin changes the room history sharing setting to turn it on, I should see the same banner (and it should be noted in the room info panel)
  • When room history has been shared with me, then every message whose key I received from the inviter (instead of the sender of the original message) should have a small "(i)" icon next to it that explains to me that this message was sent by the inviter. (It could have been forged by them.)
  • Sometimes when we collect keys to send with an invite, we will deliberately exclude some (e.g. because the room settings at the time it was sent said don't share history). Normally, these message will be invisible, because the server will prevent the actual encrypted message from being delivered, but occasionally these might show up. We should show them as UTDs, but with a custom message, something like "This message is not visible because it was sent when Share Room History was turned off".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants