From b4586469f9fb9d15250296ece1824de35d6b7e5f Mon Sep 17 00:00:00 2001 From: Andrew Morgan Date: Thu, 28 Aug 2025 09:41:10 +0100 Subject: [PATCH] Add a new push rule knob --- rust/benches/evaluator.rs | 5 +++++ rust/src/push/evaluator.rs | 8 ++++++++ rust/src/push/mod.rs | 7 +++++++ synapse/push/bulk_push_rule_evaluator.py | 1 + 4 files changed, 21 insertions(+) diff --git a/rust/benches/evaluator.rs b/rust/benches/evaluator.rs index 96169fd45d..f85c1d7370 100644 --- a/rust/benches/evaluator.rs +++ b/rust/benches/evaluator.rs @@ -62,6 +62,7 @@ fn bench_match_exact(b: &mut Bencher) { false, false, false, + false, ) .unwrap(); @@ -109,6 +110,7 @@ fn bench_match_word(b: &mut Bencher) { false, false, false, + false, ) .unwrap(); @@ -156,6 +158,7 @@ fn bench_match_word_miss(b: &mut Bencher) { false, false, false, + false, ) .unwrap(); @@ -203,6 +206,7 @@ fn bench_eval_message(b: &mut Bencher) { false, false, false, + false, ) .unwrap(); @@ -215,6 +219,7 @@ fn bench_eval_message(b: &mut Bencher) { false, false, false, + false, ); b.iter(|| eval.run(&rules, Some("bob"), Some("person"), None)); diff --git a/rust/src/push/evaluator.rs b/rust/src/push/evaluator.rs index 1cbca4c635..f75a38e4ab 100644 --- a/rust/src/push/evaluator.rs +++ b/rust/src/push/evaluator.rs @@ -111,6 +111,8 @@ pub struct PushRuleEvaluator { /// If MSC4306 (thread subscriptions) is enabled. msc4306_enabled: bool, + + xxx_enabled: bool, } #[pymethods] @@ -130,6 +132,7 @@ impl PushRuleEvaluator { msc3931_enabled, msc4210_enabled, msc4306_enabled, + xxx_enabled, ))] pub fn py_new( flattened_keys: BTreeMap, @@ -143,6 +146,7 @@ impl PushRuleEvaluator { msc3931_enabled: bool, msc4210_enabled: bool, msc4306_enabled: bool, + xxx_enabled: bool, ) -> Result { let body = match flattened_keys.get("content.body") { Some(JsonValue::Value(SimpleJsonValue::Str(s))) => s.clone().into_owned(), @@ -162,6 +166,7 @@ impl PushRuleEvaluator { msc3931_enabled, msc4210_enabled, msc4306_enabled, + xxx_enabled, }) } @@ -569,6 +574,7 @@ fn push_rule_evaluator() { true, false, false, + false, ) .unwrap(); @@ -600,6 +606,7 @@ fn test_requires_room_version_supports_condition() { true, false, false, + false, ) .unwrap(); @@ -637,6 +644,7 @@ fn test_requires_room_version_supports_condition() { false, false, false, + false, ), None, None, diff --git a/rust/src/push/mod.rs b/rust/src/push/mod.rs index b07a12e5cc..92fbf08d48 100644 --- a/rust/src/push/mod.rs +++ b/rust/src/push/mod.rs @@ -552,6 +552,7 @@ pub struct FilteredPushRules { msc4028_push_encrypted_events: bool, msc4210_enabled: bool, msc4306_enabled: bool, + xxx_enabled: bool, } #[pymethods] @@ -567,6 +568,7 @@ impl FilteredPushRules { msc4028_push_encrypted_events: bool, msc4210_enabled: bool, msc4306_enabled: bool, + xxx_enabled: bool, ) -> Self { Self { push_rules, @@ -577,6 +579,7 @@ impl FilteredPushRules { msc4028_push_encrypted_events, msc4210_enabled, msc4306_enabled, + xxx_enabled, } } @@ -631,6 +634,10 @@ impl FilteredPushRules { return false; } + if self.xxx_enabled { + return true; + } + true }) .map(|r| { diff --git a/synapse/push/bulk_push_rule_evaluator.py b/synapse/push/bulk_push_rule_evaluator.py index bb9d5dbcaa..85d69fb578 100644 --- a/synapse/push/bulk_push_rule_evaluator.py +++ b/synapse/push/bulk_push_rule_evaluator.py @@ -479,6 +479,7 @@ class BulkPushRuleEvaluator: self.hs.config.experimental.msc1767_enabled, # MSC3931 flag self.hs.config.experimental.msc4210_enabled, self.hs.config.experimental.msc4306_enabled, + False, ) msc4306_thread_subscribers: Optional[FrozenSet[str]] = None