diff --git a/changelog.d/8274.feature b/changelog.d/8274.feature new file mode 100644 index 0000000000000000000000000000000000000000..feb02be234bfb36851563b1a7f73dc6d79094dd3 --- /dev/null +++ b/changelog.d/8274.feature @@ -0,0 +1 @@ +Add unread messages count to sync responses, as specified in [MSC2654](https://github.com/matrix-org/matrix-doc/pull/2654). diff --git a/synapse/push/bulk_push_rule_evaluator.py b/synapse/push/bulk_push_rule_evaluator.py index 1bb8e346b905eabfa0b967373d690e4fcf3dddd6..c440f2545c5eeadfedcdacb690a8a7c42213008a 100644 --- a/synapse/push/bulk_push_rule_evaluator.py +++ b/synapse/push/bulk_push_rule_evaluator.py @@ -219,7 +219,12 @@ class BulkPushRuleEvaluator: if event.type == EventTypes.Member and event.state_key == uid: display_name = event.content.get("displayname", None) - actions_by_user[uid] = [] + if count_as_unread: + # Add an element for the current user if the event needs to be marked as + # unread, so that add_push_actions_to_staging iterates over it. + # If the event shouldn't be marked as unread but should notify the + # current user, it'll be added to the dict later. + actions_by_user[uid] = [] for rule in rules: if "enabled" in rule and not rule["enabled"]: