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

MSC4267: Automatically forgetting rooms on leave #4267

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

Johennes
Copy link
Contributor

@Johennes Johennes commented Feb 17, 2025

Rendered

Fixes: matrix-org/matrix-spec#447


In line with matrix-org/matrix-spec#1700, the following disclosure applies:

I am a Systems Architect at gematik, Software Engineer at Unomed, Matrix community member and former Element employee. This proposal was written and published with my gematik hat on.

@Johennes Johennes changed the title MSCXXXX: Automatically forgetting rooms on leave MSC4267: Automatically forgetting rooms on leave Feb 17, 2025
@Johennes Johennes force-pushed the johannes/auto-forget branch from 200212f to afb15ec Compare February 17, 2025 19:35
@Johennes Johennes marked this pull request as ready for review February 17, 2025 19:35
@turt2live turt2live added proposal A matrix spec change proposal client-server Client-Server API kind:maintenance MSC which clarifies/updates existing spec needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. labels Feb 24, 2025
Copy link
Member

Choose a reason for hiding this comment

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

Implementation requirements:

  • Client
  • Server

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Choose a reason for hiding this comment

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

``` json5
{
"capabilities": {
"m.leave_without_forget": {
Copy link
Member

Choose a reason for hiding this comment

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

I got hung up on this naming. m.leave_implicit_forget or m.leave_auto_forget maybe? Leave without forget sounds like its doing the opposite of

Therefore, servers that
auto-forget rooms MUST advertise that they do so via an m.leave_without_forget
capability.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, the current naming is a bit odd. I was thinking of the capability as "I can leave a room without forgetting it" but that makes it reciprocal to auto-forgetting rooms on the server.

You could also think of it inversely like in your suggestion as "I can leave and forget a room in one operation". My only concern with this was that when the capability is enabled, a client actually has less choice. It's not actually that you can leave and forget in one operation but rather that you must.

Maybe I'm just overthinking it though. 😵‍💫

Copy link
Member

Choose a reason for hiding this comment

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

m.forget_forced_upon_leave maybe?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I like that. It's not reciprocal and expresses the coercion aspect. 👍

Copy link
Member

Choose a reason for hiding this comment

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

it's a bit clunky though - how about just m.forced_forget?

Copy link
Member

@kegsay kegsay left a comment

Choose a reason for hiding this comment

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

My only concern is that we may be unduly confident because Synapse has had the config option forget_rooms_on_leave for a long time now. The problem is it defaults to false, so I would like to hear from some people who have been using that option successfully.

@@ -0,0 +1,70 @@
# MSC4267: Automatically forgetting rooms on leave
Copy link
Member

@ara4n ara4n Mar 11, 2025

Choose a reason for hiding this comment

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

This looks very sensible to me, fwiw. I don't think we need further proof of implementation between 2x servers, given it's also pretty trivial to envisage how it'd work; I suggest we FCP it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client-server Client-Server API kind:maintenance MSC which clarifies/updates existing spec needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. proposal A matrix spec change proposal
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Consider permitting homeservers to consider leave == forget
6 participants