-
Notifications
You must be signed in to change notification settings - Fork 385
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
MSC1930: Add a push rule for m.room.tombstone events #1930
Conversation
This is an interesting UX question. We probably do want to ensure that people get told loudly about room upgrades, but I don't know whether we want to cause everyone's pocket to vibrate. I.e. should we push this in real time or only tell the user loudly when they open the app. |
The running theory is that people would |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
seems generally plausible to me, though I'm certainly not an expert in this area
|
||
## Proposal | ||
|
||
A new default override rule is to be added which is similar to `@room` notifications: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not really familiar with how notification rules work, but why is it an override
rule?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It probably could be an underride, however I'm not really sure what the difference is either. I basically copy/pasted @room
notifications here, which uses an override rule.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess I would have expected a default rule to be the lowest priority (underride
), but you are right that the default rules are a mix of override
and underride
definitions for some reason. Who defined the override
/ underride
system originally?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@dbkr I believe...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The difference between underride and override is where they come in the precedence in relation to content and room rules: underrides are lower precedence, overrides are higher. So, override rules will apply even if the user has turned off notifications for the room (in riot this is the 'mentions only' setting). Getting a notification for a room that's been closed that you've put on 'mentions only' sounds correct to me, so I think override is the right place for this.
@@ -0,0 +1,40 @@ | |||
# Proposal to add a default push rule for m.room.tombstone events | |||
|
|||
Currently users are unaware of when a room becomes upgraded, leaving them potentially in the old room |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I may have missed this in the original room upgrade discussion, but is there any reason users shouldn't be automatically joined to the new room, either by the server or by the client (or both), rather than waiting for the user to manually join it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I honestly don't recall the exact reasoning. One reason may be that the new room might be an unsupported room version, making the join fail. The other reason would probably be invite only rooms being difficult to process (despite our recommendations to not upgrade them unless you need to, so far).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://github.com/matrix-org/matrix-spec-proposals/blob/main/proposals/1501-room-version-upgrades.md#have-servers-auto-join-their-users-on-upgrade discusses this, and there is some background at https://github.com/matrix-org/matrix-doc/pull/1502/files/4750b297b35f64a72a155066f4161e46d483824a#r213277100 (sorry about the lack of threading on that PR).
In short: because it was going to be inherently unreliable, I thought it was better to leave it out of the initial implementation and have users do the join (and deal with any failures) manually.
It might be a good idea to revisit that behaviour now we know a bit more about how upgrades work in practice. I don't see any good reason not to attempt an auto-join.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FWIW, I'd imagine that this proposal is still valuable even if we do auto-join at some point; presumably, client that auto-join could just ignore the bing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
or mark it as read and then there's no problems
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
have started the auto-join discussion over at https://github.com/matrix-org/matrix-doc/issues/1941
There doesn't seem to be major opposition to this, and the question about where this fits seems to be solved. Hopefully people will raise concerns if they feel as though I'm jumping the gun here... @mscbot fcp merge |
Team member @turt2live has proposed to merge this. The next step is review by the rest of the tagged people: Concerns:
Once a majority of reviewers approve (and none object), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up! See this document for info about what commands tagged team members can give me. |
personally, this feels like a bit of a hack around the fact we don’t autojoin users. any server which is capble of pushing its users about the need to rejoin should also be able to join on their behalf (including reaccepting invites). if we are trying for the best UX here, i suspect we need to understand matrix-org/matrix-spec#455 a little more first. |
I echo Matthew's thoughts and think we should think about whether a proper solution is going to be that much more work than adding a push rule, and if not, work on that instead. I am worried that the longer we delay this though the more people become confused when rooms are upgraded, leading to some potentially ugly experiences. @mscbot concern should we actually fix the problem instead matrix-org/matrix-spec#455 |
I think we still need this regardless of autojoining users, as per the thread at #1930 (comment) |
If we're confident that auto-join and bings can be handled cleanly on the client-side together then I don't see any reason not to add bings now. @mscbot resolve should we actually fix the problem instead matrix-org/matrix-spec#455 |
i just discussed this through with @richvdh and @neilisfragile to try to gauge whether it's going to be more work to implement and maintain the push rule than it is to solve matrix-org/matrix-spec#455. I see that there's already a synapse PR for this at matrix-org/synapse#4867 - but I think we need to consider how painful it will be to change this behaviour in future. I believe the way synapse works is to clone the default pushrules for each user whenever they first set a push rule, so you end up with the defaults hardcoded into everyone's push settings. Changing the default thus requires a background job in synapse to go and fix up everyone's customised push settings from under them, which is a bit of an inconvenience. It's a tough call to decide whether we should spend the braintime now implementing this (and then turning the volume down on it in future) versus just getting on and solving matrix-org/matrix-spec#455 - especially if we end up solving matrix-org/matrix-spec#455 in a few weeks anyway, as then the effort here will be for a very shortlived feature. I think my hunch is still in favour of just going and doing matrix-org/matrix-spec#455 - what do others think? |
It entirely depends on what the scope of matrix-org/matrix-spec#455 is: if we can guarantee that members will join the new room, private or otherwise, then this isn't needed. I do strongly believe that we need this push rule though to handle the case of an upgrade happening and the server not being able to deal with it. |
As for muting this rule in the future: I wouldn't expect us to do that. I would expect us to not trigger it if the server is capable of handling the intent, or otherwise marking the room as read for the user so it can't trigger. That's different from turning down the default and would involve some amount of spec discussion, but I think it'd be easier and more reliable to go the route of respecting the intent of the notification rather than altering it. |
Good point.
Also good point. /me checks the box |
🔔 This is now entering its final comment period, as per the review above. 🔔 |
The final comment period, with a disposition to merge, as per the review above, is now complete. |
our process is to merge the PR (not the MSC) when it clears FCP, so doing that |
* Add a default .m.rule.tombstone push rule In support of MSC1930: matrix-org/matrix-spec-proposals#1930 * changelog * Appease the changelog linter
This also has an implementation at matrix-org/synapse#4867 - needs spec |
Spec PR: #2020 |
merged 🎉 |
Rendered
This has a bug. See #2223