matrix-doc/proposals/3987-push-actions-clean-up.md

2.9 KiB

MSC3987: Push actions clean-up

There are two defined push rule actions which are of dubious use:

  • coalesce is defined, but unused in the spec and not implemented on any homeservers 1 or clients 2 beyond validating it or treating it identically to notify.
  • dont_notify is a no-op, but frequently used as a way to denote do nothing. It is clearer to provide an empty list of actions to avoid a situation where additional actions are given with it, e.g. ["notify", "dont_notify"] is currently valid, but does not make sense. 3

Proposal

The coalesce push rule action is removed from the Matrix specification.

The dont_notify push rule action is deprecated. Homeservers and clients should ignore it. Any pre-defined rules which include the dont_notify action are redefined to have an empty list of actions:

  • .m.rule.master
  • .m.rule.suppress_notices
  • .m.rule.member_event

It is recommended that homeservers continue accepting the coalesce and dont_notify actions, but ignore them during processing. (Treating them as no-ops.) A future Matrix spec version should remove them completely.

Potential issues

A client might attempt to create a push rule with a coalesce or dont_notify action that homeservers will reject as an unknown action.

Alternatives

Do nothing and continue propagating confusion.

Security considerations

None.

Dependencies

None.


  1. Dendrite, Synapse, Conduit, Construct.. ↩︎

  2. matrix-js-sdk, matrix-ios-sdk, matrix-rust-sdk, matrix-android-sdk2, Ruma. ↩︎

  3. It has been noted on recent MSCs that new rules should not use dont_notify, see MSC3786, MSC2153 / MSC2677. ↩︎