diff --git a/synapse/config/experimental.py b/synapse/config/experimental.py
index 1d294f8798..54c91953e1 100644
--- a/synapse/config/experimental.py
+++ b/synapse/config/experimental.py
@@ -179,9 +179,10 @@ class ExperimentalConfig(Config):
"msc3783_escape_event_match_key", False
)
- # MSC3952: Intentional mentions
- self.msc3952_intentional_mentions = experimental.get(
- "msc3952_intentional_mentions", False
+ # MSC3952: Intentional mentions, this depends on MSC3758.
+ self.msc3952_intentional_mentions = (
+ experimental.get("msc3952_intentional_mentions", False)
+ and self.msc3758_exact_event_match
)
# MSC3959: Do not generate notifications for edits.
diff --git a/synapse/push/bulk_push_rule_evaluator.py b/synapse/push/bulk_push_rule_evaluator.py
index 2e917c90c4..5fc38431ba 100644
--- a/synapse/push/bulk_push_rule_evaluator.py
+++ b/synapse/push/bulk_push_rule_evaluator.py
@@ -400,7 +400,6 @@ class BulkPushRuleEvaluator:
mentions = event.content.get(EventContentFields.MSC3952_MENTIONS)
has_mentions = self._intentional_mentions_enabled and isinstance(mentions, dict)
user_mentions: Set[str] = set()
- room_mention = False
if has_mentions:
# mypy seems to have lost the type even though it must be a dict here.
assert isinstance(mentions, dict)
@@ -410,8 +409,6 @@ class BulkPushRuleEvaluator:
user_mentions = set(
filter(lambda item: isinstance(item, str), user_mentions_raw)
)
- # Room mention is only true if the value is exactly true.
- room_mention = mentions.get("room") is True
evaluator = PushRuleEvaluator(
_flatten_dict(
@@ -420,7 +417,6 @@ class BulkPushRuleEvaluator:
),
has_mentions,
user_mentions,
- room_mention,
room_member_count,
sender_power_level,
notification_levels,
|