mirror of
https://github.com/element-hq/synapse.git
synced 2026-11-14 18:18:02 +00:00
`DeviceHandler.get_user_ids_changed`, which the sliding sync e2ee extension and `GET /keys/changes` use, adds a member to `newly_joined_or_invited_or_knocked_users` only when the previous membership was none of join, invite or knock. A user going from invite to join is skipped, so other members are never told to refresh the devices of a user whose device list changed while they were only invited. Classic sync does report them. A change to join from any membership other than join is now counted. join -> join (a profile change) is still ignored. `test_extension_e2ee.py` covers invite -> join, invite -> join -> leave in one window and a profile change, `test_keys.py` covers invite -> join through `/keys/changes`. Not covered: device list changes made while a user is only invited (#3504), which are still not announced until the user joins. Fixes #20486