From 681daed5e8fc8effa736512a57ea3bafb5ba3079 Mon Sep 17 00:00:00 2001 From: timedout Date: Fri, 21 Aug 2026 05:50:50 +0100 Subject: [PATCH] fix: Mark prev events as referenced as we come across them --- src/service/rooms/timeline/append.rs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/service/rooms/timeline/append.rs b/src/service/rooms/timeline/append.rs index 37e1ffa78..f4b53a785 100644 --- a/src/service/rooms/timeline/append.rs +++ b/src/service/rooms/timeline/append.rs @@ -207,8 +207,10 @@ async fn progress_state_and_extremities( // status. let mut ancestors_todo: VecDeque = VecDeque::from_iter(incoming_pdu.prev_events.clone()); + let room_id = incoming_pdu.room_id_or_hash(); while let Some(prev_event_id) = ancestors_todo.pop_front() { new_extremities.remove(&prev_event_id); + self.services.pdu_metadata.mark_as_referenced(&room_id, once(prev_event_id.as_ref())); let Ok(prev_event) = self.get_pdu(&prev_event_id).await else { continue; }; @@ -233,12 +235,6 @@ async fn progress_state_and_extremities( }) .collect::>() .await; - for ancestor_id in &ancestors_todo { - self.services.pdu_metadata.mark_as_referenced( - &incoming_pdu.room_id_or_hash(), - once(ancestor_id.as_ref()), - ); - } ancestors_todo.extend(outlier_prevs); }