fix(sync): Wake local target user after membership changes are committed

This commit is contained in:
Erwan Leboucher authored and Ellis Git committed 2026-07-26 14:12:37 +00:00
1 parent a7892b296f
commit 08c22b5fcc
3 files changed
+25

No files matched your search

@@ -0,0 +1 @@
Fixed local invites and invite acceptances not being reflected in sync promptly. Contributed by @eleboucher
+12
View File
@@ -132,6 +132,18 @@ impl super::Service {
self.services.sync.wake_all_joined(&room_id).await;
if *pdu.kind() == TimelineEventType::RoomMember {
if let Some(target_user) = pdu
.state_key
.as_ref()
.and_then(|state_key| UserId::parse(state_key.as_str()).ok())
{
if self.services.globals.user_is_local(&target_user) {
self.services.sync.wake(&target_user).await;
}
}
}
Ok(Some(pdu_id))
}
+12
View File
@@ -155,6 +155,18 @@ impl super::Service {
self.services.sync.wake_all_joined(&room_id).await;
if *pdu.kind() == TimelineEventType::RoomMember {
if let Some(target_user) = pdu
.state_key
.as_ref()
.and_then(|state_key| UserId::parse(state_key.as_str()).ok())
{
if self.services.globals.user_is_local(&target_user) {
self.services.sync.wake(&target_user).await;
}
}
}
let mut servers: HashSet<OwnedServerName> = self
.services
.state_cache