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

MSC3932: Extensible events room version push rule feature flag #3932

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions proposals/3932-extensible-events-room-ver-push-rule-condition.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# MSC3932: Extensible events room version push rule feature flag
Copy link
Member Author

Choose a reason for hiding this comment

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

Per #3952, we should require that the deprecated push rules be ignored in supported room versions. This would mean that clients can avoid sending empty/useless objects on their events.

It's unclear if we'd want to support m.mentions as a mixin or regular content block though - either works.


As defined by [MSC3931](https://github.com/matrix-org/matrix-spec-proposals/pull/3931), push rules
can be disabled or enabled based on what the room version itself supports feature-wise. This MSC
introduces a feature flag for [MSC1767](https://github.com/matrix-org/matrix-spec-proposals/pull/1767),
making it possible to restrict extensible events to an appropriate room version through notifications.

A theory with this approach is that if push rules (and therefore notifications) are denied for extensible
events, they are even less likely to be sent in inappropriate room versions.

## Proposal

For room versions supporting extensible events, they declare support for an `m.extensible_events`
feature flag.

Push rules which don't specify a `room_version_supports` condition are assumed to *not* support
extensible events and are therefore expected to be treated as disabled when a room version *does*
support extensible events. This is to ensure that legacy rules do not trigger in new room versions,
similar to how this MSC aims to only enable certain push rules in applicable room versions.

The above rule does *not* apply to the following push rule IDs:
* `.m.rule.master`
* `.m.rule.roomnotif`
* `.m.rule.contains_user_name`

Note that this MSC intentionally considers the lack of the condition rather than the lack of feature
flag check on the push rule: this is intentional as the timeline for extensible events appears to
show that this "push rules feature flags" system will land at the same time as extensible events,
causing all future MSCs to consider extensible events too.

Any room version which supports MSC1767's described room version is required to list this new feature
flag.

## Potential issues

There is complexity in understanding how to apply the feature flag's condition to existing push rules,
however through implementation effort it will become clearer.

## Alternatives

None discovered.

## Security considerations

No new considerations apply.

## Unstable prefix

While this MSC is not considered stable, implementations should use `org.matrix.msc3932.*` in place of
`m.*` throughout this proposal.