From 03df1c6ed7de1c2f81587ac08ddce958d0d9dd41 Mon Sep 17 00:00:00 2001 From: DuProcess <273172371+DuProcess@users.noreply.github.com> Date: Fri, 12 Jun 2026 13:33:55 -0400 Subject: [PATCH] Ignore stale Dosh snapshots --- src/bin/dosh-client.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/bin/dosh-client.rs b/src/bin/dosh-client.rs index 98a8068..c8de101 100644 --- a/src/bin/dosh-client.rs +++ b/src/bin/dosh-client.rs @@ -725,6 +725,9 @@ struct FrameBuffer { impl FrameBuffer { fn accept(&mut self, frame: Frame, last_rendered_seq: &mut u64) -> Vec { if frame.snapshot { + if frame.output_seq < *last_rendered_seq { + return Vec::new(); + } self.pending.clear(); *last_rendered_seq = frame.output_seq; return vec![frame]; @@ -939,4 +942,13 @@ mod tests { assert_eq!(last, 20); assert!(buffer.accept(test_frame(12, false), &mut last).is_empty()); } + + #[test] + fn frame_buffer_ignores_stale_snapshot() { + let mut buffer = FrameBuffer::default(); + let mut last = 20; + + assert!(buffer.accept(test_frame(19, true), &mut last).is_empty()); + assert_eq!(last, 20); + } }