cinny icon indicating copy to clipboard operation
cinny copied to clipboard

Hide empty membership events instead of showing the user

Open erebion opened this issue 3 months ago • 10 comments

Describe the bug

A user sent me this:

07:18

Membership event with no changes
07:43

Membership event with no changes
07:52

Membership event with no changes
07:52

Membership event with no changes
07:52

Membership event with no changes
07:52

Membership event with no changes
07:52

Membership event with no changes
07:52

Membership event with no changes
07:52

Membership event with no changes
08:05

Membership event with no changes
08:06

Membership event with no changes
08:07

Membership event with no changes
08:10

Membership event with no changes
08:11

Membership event with no changes
08:11

Membership event with no changes

While my server sends a join request, it is already joined. As nothing happens, the user should not get annoyed with that.

Reproduction

  1. Send a join request to a room that you're already in

Expected behavior

Nothing happens

Platform and versions

I don't know what the other user uses, but can ask.

Additional context

Similar bugs in other clients:

Element Web: https://github.com/element-hq/element-web/issues/23274 (done) Element Android: https://github.com/element-hq/element-android/issues/1430 Element X Android: https://github.com/element-hq/element-x-android/issues/5209

erebion avatar Sep 17 '25 14:09 erebion

Also, the spec does not say anything about showing this to users: https://spec.matrix.org/v1.15/server-server-api/#joining-rooms

erebion avatar Sep 17 '25 14:09 erebion

If server is sending them doesn't it a server bug? We can't hide it in Cinny so room moderators can see that a member is doing those change and can do actions.

ajbura avatar Sep 18 '25 07:09 ajbura

so room moderators can see that a member is doing those change

Wait, what?

Membership event with no changes

What changes? There are no changes.

erebion avatar Sep 18 '25 07:09 erebion

I mean changing in term that someone is spamming membership updates. Its server duty to send/not-send event without "no changes" if server is sending them as events to client we have to show them. btw, which server are you using?

ajbura avatar Sep 18 '25 07:09 ajbura

Its server duty

What part of the spec says that? Please link to it.

btw, which server are you using?

ejabberd, it supports Matrix federation: https://www.process-one.net/blog/matrix-gateway-setup-with-ejabberd/

erebion avatar Sep 18 '25 08:09 erebion

There's already a button to hide these. "Hide profile change" hides all profile related changes.

kfiven avatar Sep 18 '25 08:09 kfiven

But this definitely looks like a server bug. From the issue you linked:

The homeserver should be no-opping a join request here. The bridge will join all rooms on startup to ensure it's joined, but it shouldn't be sending fresh join events into the room as the homeserver should be aware that the user is already in the room. Feels like a Synapse bug. https://github.com/element-hq/element-android/issues/1430#issuecomment-636464354

kfiven avatar Sep 18 '25 08:09 kfiven

I think it would be better if we move these changes to Hidden event button so that if someone (such as mods) still want to track them, they can.

kfiven avatar Sep 18 '25 08:09 kfiven

There's already a button to hide these. "Hide profile change" hides all profile related changes.

  1. Those events should be hidden by default, having an option to enable them should obviously exist (like in most other clients).
  2. There's a difference between events that actually change anything and an event like this which indicates that no change happened. If I understood you correctly the current option hides all membership related events, even the ones that actually are changes (like actual joining/leaving). What needs to exist is a setting specifically for events with no changes, and those should be hidden by default since most people (even mods) shouldn't have to care about them.

Lenni-builder avatar Nov 08 '25 21:11 Lenni-builder

If I understood you correctly the current option hides all membership related events, even the ones that actually are changes (like actual joining/leaving).

No, it only hide these + profile picture and display name updates.

We also have "Hide profile change" setting on by default for new login unless user turn it off.

kfiven avatar Nov 17 '25 01:11 kfiven