From 0aae8dc26ae5327c6ea4a6c8c7a665b3f3f8cfae Mon Sep 17 00:00:00 2001 From: "zed-zippy[bot]" <234243425+zed-zippy[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 19:54:41 +0000 Subject: [PATCH] ep: Fix panic when merging events from different buffers (#49097) (cherry-pick to preview) (#49125) Cherry-pick of #49097 to preview ---- Release Notes: - N/A Co-authored-by: Oleksiy Syvokon --- 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 8ae47cf61c9d3709a96883dc8c979bc6155ad201..01d813173b1957eea1d900187af520510d9dfc09 100644 --- a/crates/edit_prediction/src/edit_prediction.rs +++ b/crates/edit_prediction/src/edit_prediction.rs @@ -245,6 +245,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(), @@ -2283,6 +2286,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() {