fix: Restore continuwuity's remembering capabilities

This commit is contained in:
timedout 2025-11-14 14:57:49 +00:00
parent 19d792e4eb
commit 9e73146b19
No known key found for this signature in database
GPG key ID: 0FA334385D0B689F

View file

@ -623,6 +623,10 @@ where
.boxed() .boxed()
.await?; .await?;
trace!(list = ?events_to_check, "events to check"); trace!(list = ?events_to_check, "events to check");
if events_to_check.is_empty() {
debug!("no events to check, returning unconflicted state");
return Ok(unconflicted_state);
}
let auth_event_ids: HashSet<OwnedEventId> = events_to_check let auth_event_ids: HashSet<OwnedEventId> = events_to_check
.iter() .iter()
@ -643,10 +647,11 @@ where
trace!(map = ?auth_events.keys().collect::<Vec<_>>(), "fetched auth events"); trace!(map = ?auth_events.keys().collect::<Vec<_>>(), "fetched auth events");
let auth_events = &auth_events; let auth_events = &auth_events;
let mut resolved_state = match stateres_version { // NOTE: in state resolution v2.1, auth checks should start with an empty state
| StateResolutionVersion::V2_1 => StateMap::new(), // map. It is the caller's job to do this. Previously, this function would
| _ => unconflicted_state, // force an empty state map in this case, and this resulted in power events
}; // going missing from the resolved state as they'd be discarded here.
let mut resolved_state = unconflicted_state;
for event in events_to_check { for event in events_to_check {
trace!(event_id = event.event_id().as_str(), "checking event"); trace!(event_id = event.event_id().as_str(), "checking event");
let state_key = event let state_key = event