matrix-org / matrix-spec

The Matrix protocol specification
Apache License 2.0
197 stars 97 forks source link

Clearing messages from a room without deleting the whole room #1333

Open rugk opened 4 years ago

rugk commented 4 years ago

Is your suggestion related to a problem? Please describe. I'm always frustrated when I want to clear all messages in a chat to just remove the whole history, and to delete my data. It may be encrypted etc., but deleted is better than encrypted.

Just so that I may want to "forget" (but technically secure, i.e. delete) things I have written once. Just as oral communication is not always permanent.

I know I could choose each of my message and delete it one-by-one, but that is obviously not possible in large chats.

Describe the solution you'd like A button in the menu:

Describe alternatives you've considered

I know I can leave the room and all other persons too, but AFAIK the room is still not deleted (automatically) then. (Sorry, cannot find the corresponding issue right now.)

Implementation alternative: If that is too much for rooms with many members, I guess private chats which are affected by this may only likely be 1:1 (DM) and e2e-encrypted chats. So you could also limit deleting messages to these chats. Possibly you could also make all members in a room/chat top agree to a deletion and then delete it for all of them, i.e. "consensus"-like. (Of course everyone has to agree.) Button could be named "Request chat deletion [from members]". (In my use cases likely all members want it to be deleted. If only one wants it, they can just leave the room, because then they likely just "don't want to see it". This is a different use case than "I/We want it to be deleted." though, see GDPR below.)

Also if you want to highlight the destructiveness of this, you may also call it "destroy room".

Additional context This may be GDPR-relevant, because it includes the "right to be forgotten", i.e. you may delete your data at any time. Possibly, you can do so for your whole account already, but IMHO, it also implied you should be able to delete a single chat.


originally created at https://github.com/vector-im/riot-web/issues/14401

richvdh commented 4 years ago

I think this is a duplicate of matrix-org/matrix-spec#431, despite certain commenters there wanting to apply it to a different usecase.

ell1e commented 3 years ago

@richvdh but what if I want to just delete the history but keep talking to the person? The whole room deletion is quite clumsy for this use case. It'd be nicer to have some sort "delete everything older than message X" mechanism, even if only available for my own messages. (If it's a mutual clearing, after all everyone can do this for their own messages themselves.)

user9931 commented 2 years ago

I see its closed, i'm also dont think its a duplicate of "duplicate" ofhttps://github.com/matrix-org/matrix-spec/issues/431 -its about removing chat room. Just want to to use matrix for notifications but those messages usually are useless after ~ week so removing chat room is not a solution...

multilinear commented 2 years ago

I went looking for this feature today, and I was not looking for the ability to delete a room.

My specific use-case: I use Matrix to chat with my wife and often share things like paswords using the conveniently encrypted protocol. Once these passwords are stored safely away in a password vault I want to just wipe the whole conversation - in case someone gains access to one of our physical machines. Doing it message by message scrolling back through the conversation it's too easy to miss one.

I am obviously going to talk to my wife again, so I don't want to delete the room, just clear the history.

In my mind this is a key feature for a secure chat app/protocol. My use case is quite mild, but there are probably many use-cases where users wish to erase the history to maintain plausible deniability in totalitarian surveilance states around the world. Signal has this feature for a reason.

kot-camojiet commented 1 year ago

Hello everybody. I need this option too, and I found some workaround for me and my community. Retention policy was added to homeserver.yaml

retention: enabled: true default_policy: min_lifetime: 1d max_lifetime: 7d

After that, messages are deleted from the server automatically. To remove it on client you need use "clear cache" function on element. It exists on android, ios and element-web. This trick better than nothing.

Before I knew about retention policy i tried remove messages by api. I got two very well scrips-examples, and leave them here to don't lose them. https://foss-notes.blog.nomagic.uk/2021/03/matrix-database-house-cleaning/ https://codeberg.org/DecaTec/Matrix-Synapse-Helpers/src/branch/main/CleanupMedia.sh

Matrix - Forever!

mano87 commented 3 months ago

We also miss this important function very much. Is there any news on this yet?

We use some rooms for support and would like to simply empty them at regular intervals without having to reconfigure the room and the settings and authorizations each time. This has always worked perfectly in Rocket.chat.

When will there be a possibility?

dchmelik commented 1 month ago

A group of Internet Relay Channel channel operators thinking of bridging to their own Matrix server (only for images) also want this. Original IRC (not talking about still in-development IRCv3) has no channel/'room' history/logs (some individual chatters log privately, which is different). We want public channel history before a time limit continually erased (but like IRC, don't force this on individual chatters who log). Some people who didn't grow up with more privacy (maybe using IRCv3) have a hard time comprehending this (falsely claiming all IRC is permanently logged) but note: major instant messaging organizations, such as FaceBook (FB), Signal, and a growing number, already allow time-limited messages, so there's no reason Matrix shouldn't (universal/administrator level). We're not set on Matrix but would use whatever (FOSScord/SpaceBar, etc.) implements this first.