fix(sync): handle wildcard state keys in sliding sync required_state

This commit is contained in:
Ellie 2026-02-15 00:37:00 -08:00 committed by Jade Ellis
parent f3f82831b4
commit e3b874d336
No known key found for this signature in database
GPG key ID: 8705A2A3EBF77BD2

View file

@ -685,8 +685,15 @@ async fn collect_required_state(
required_state_request: &BTreeSet<TypeStateKey>,
) -> Vec<Raw<AnySyncStateEvent>> {
let mut required_state = Vec::new();
let mut wildcard_types: BTreeSet<&StateEventType> = BTreeSet::new();
for (event_type, state_key) in required_state_request {
if wildcard_types.contains(event_type) {
continue;
}
if state_key.as_str() == "*" {
wildcard_types.insert(event_type);
if let Ok(keys) = services
.rooms
.state_accessor
@ -703,7 +710,6 @@ async fn collect_required_state(
required_state.push(Event::into_format(event));
}
}
break;
}
} else if let Ok(event) = services
.rooms