From c093590f2ec58ff8e8eb0306c7d5b318c6d7dad5 Mon Sep 17 00:00:00 2001 From: Oleksiy Syvokon Date: Fri, 13 Feb 2026 15:26:03 +0200 Subject: [PATCH] ep: Fix panic when merging events from different buffers (#49097) Release Notes: - N/A --- crates/edit_prediction/src/edit_prediction.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/crates/edit_prediction/src/edit_prediction.rs b/crates/edit_prediction/src/edit_prediction.rs index d3efeb62fe04fd5e296ad5a49fd8a359c43d2a16..f106561bab71dd814c9aa307da67578673aaa83d 100644 --- a/crates/edit_prediction/src/edit_prediction.rs +++ b/crates/edit_prediction/src/edit_prediction.rs @@ -244,6 +244,9 @@ impl StoredEvent { if self.old_snapshot.remote_id() != next_old_event.old_snapshot.remote_id() { return false; } + if self.old_snapshot.remote_id() != new_snapshot.remote_id() { + return false; + } let a_is_predicted = matches!( self.event.as_ref(), @@ -2275,6 +2278,12 @@ fn merge_trailing_events_if_needed( latest_snapshot: &TextBufferSnapshot, latest_edit_range: &Range, ) { + if let Some(last_event) = events.back() { + if last_event.old_snapshot.remote_id() != latest_snapshot.remote_id() { + return; + } + } + let mut next_old_event = None; let mut mergeable_count = 0; for old_event in events.iter().rev() {