Hide empty membership events instead of showing the user
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
- 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
Also, the spec does not say anything about showing this to users: https://spec.matrix.org/v1.15/server-server-api/#joining-rooms
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.
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.
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?
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/
There's already a button to hide these. "Hide profile change" hides all profile related changes.
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
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.
There's already a button to hide these. "Hide profile change" hides all profile related changes.
- Those events should be hidden by default, having an option to enable them should obviously exist (like in most other clients).
- 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.
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.