Tighten web surfaces and clean handoff
This commit is contained in:
@@ -277,6 +277,7 @@ fn handle_websocket(
|
||||
let mut sequence = 1u64;
|
||||
let mut last_event_millis = None::<u64>;
|
||||
let mut last_event_signatures = Vec::<(Option<String>, String)>::new();
|
||||
let mut last_streamed_preview = None::<crate::dto::ApiPreviewSnapshot>;
|
||||
loop {
|
||||
let snapshot = service.snapshot();
|
||||
send_stream_message(
|
||||
@@ -286,13 +287,22 @@ fn handle_websocket(
|
||||
ApiStreamMessage::Snapshot(ApiStateSnapshot::from_snapshot(&snapshot)),
|
||||
)?;
|
||||
sequence += 1;
|
||||
send_stream_message(
|
||||
&mut stream,
|
||||
sequence,
|
||||
snapshot.generated_at_millis,
|
||||
ApiStreamMessage::Preview(crate::dto::ApiPreviewSnapshot::from_snapshot(&snapshot)),
|
||||
)?;
|
||||
sequence += 1;
|
||||
|
||||
let preview_payload = crate::dto::ApiPreviewSnapshot::from_snapshot(&snapshot);
|
||||
if last_streamed_preview
|
||||
.as_ref()
|
||||
.map(|previous| previous != &preview_payload)
|
||||
.unwrap_or(true)
|
||||
{
|
||||
send_stream_message(
|
||||
&mut stream,
|
||||
sequence,
|
||||
snapshot.generated_at_millis,
|
||||
ApiStreamMessage::Preview(preview_payload.clone()),
|
||||
)?;
|
||||
sequence += 1;
|
||||
last_streamed_preview = Some(preview_payload);
|
||||
}
|
||||
|
||||
let mut new_events = snapshot
|
||||
.recent_events
|
||||
|
||||
Reference in New Issue
Block a user