diff --git a/rust/src/push/base_rules.rs b/rust/src/push/base_rules.rs
index 7eea9313f0..00baceda91 100644
--- a/rust/src/push/base_rules.rs
+++ b/rust/src/push/base_rules.rs
@@ -63,22 +63,6 @@ pub const BASE_PREPEND_OVERRIDE_RULES: &[PushRule] = &[PushRule {
}];
pub const BASE_APPEND_OVERRIDE_RULES: &[PushRule] = &[
- // We don't want to notify on edits. Not only can this be confusing in real
- // time (2 notifications, one message) but it's especially confusing
- // if a bridge needs to edit a previously backfilled message.
- PushRule {
- rule_id: Cow::Borrowed("global/override/.com.beeper.suppress_edits"),
- priority_class: 5,
- conditions: Cow::Borrowed(&[Condition::Known(KnownCondition::EventMatch(
- EventMatchCondition {
- key: Cow::Borrowed("content.m\\.relates_to.rel_type"),
- pattern: Cow::Borrowed("m.replace"),
- },
- ))]),
- actions: Cow::Borrowed(&[]),
- default: true,
- default_enabled: true,
- },
PushRule {
rule_id: Cow::Borrowed("global/override/.m.rule.suppress_notices"),
priority_class: 5,
@@ -146,7 +130,7 @@ pub const BASE_APPEND_OVERRIDE_RULES: &[PushRule] = &[
priority_class: 5,
conditions: Cow::Borrowed(&[Condition::Known(
KnownCondition::ExactEventPropertyContainsType(EventPropertyIsTypeCondition {
- key: Cow::Borrowed("content.m\\.mentions.user_ids"),
+ key: Cow::Borrowed(r"content.m\.mentions.user_ids"),
value_type: Cow::Borrowed(&EventMatchPatternType::UserId),
}),
)]),
@@ -167,8 +151,8 @@ pub const BASE_APPEND_OVERRIDE_RULES: &[PushRule] = &[
priority_class: 5,
conditions: Cow::Borrowed(&[
Condition::Known(KnownCondition::EventPropertyIs(EventPropertyIsCondition {
- key: Cow::Borrowed("content.m\\.mentions.room"),
- value: Cow::Borrowed(&SimpleJsonValue::Bool(true)),
+ key: Cow::Borrowed(r"content.m\.mentions.room"),
+ value: Cow::Owned(SimpleJsonValue::Bool(true)),
})),
Condition::Known(KnownCondition::SenderNotificationPermission {
key: Cow::Borrowed("room"),
@@ -241,6 +225,21 @@ pub const BASE_APPEND_OVERRIDE_RULES: &[PushRule] = &[
default: true,
default_enabled: true,
},
+ // We don't want to notify on edits *unless* the edit directly mentions a
+ // user, which is handled above.
+ PushRule {
+ rule_id: Cow::Borrowed("global/override/.org.matrix.msc3958.suppress_edits"),
+ priority_class: 5,
+ conditions: Cow::Borrowed(&[Condition::Known(KnownCondition::EventPropertyIs(
+ EventPropertyIsCondition {
+ key: Cow::Borrowed(r"content.m\.relates_to.rel_type"),
+ value: Cow::Owned(SimpleJsonValue::Str(Cow::Borrowed("m.replace"))),
+ },
+ ))]),
+ actions: Cow::Borrowed(&[]),
+ default: true,
+ default_enabled: true,
+ },
PushRule {
rule_id: Cow::Borrowed("global/override/.org.matrix.msc3930.rule.poll_response"),
priority_class: 5,
|