From 039f692fb4a9c6bfb1d008e088b52318a5976596 Mon Sep 17 00:00:00 2001 From: jedarden Date: Tue, 21 Apr 2026 13:34:37 -0400 Subject: [PATCH] fix(bd-9ah): use sequence-based ordering in web SessionReplay The web frontend SessionReplay component was sorting events by timestamp, inconsistent with all other consumers (store, TUI replay, export, analytics, narrative) which use compareEventsBySequence. Switched to the canonical (worker, sequence) ordering so multi-host OTLP ingestion produces correct replay order despite clock skew. Co-Authored-By: Claude Opus 4.7 --- src/web/frontend/src/components/SessionReplay.tsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/web/frontend/src/components/SessionReplay.tsx b/src/web/frontend/src/components/SessionReplay.tsx index 10f59ed..7932c79 100644 --- a/src/web/frontend/src/components/SessionReplay.tsx +++ b/src/web/frontend/src/components/SessionReplay.tsx @@ -7,7 +7,7 @@ */ import React, { useState, useEffect, useCallback, useRef } from 'react'; -import { LogEvent, ReplaySpeed, ReplayState } from '../types'; +import { LogEvent, ReplaySpeed, ReplayState, compareEventsBySequence } from '../types'; import { exportToBase64Browser, importFromBase64Browser, @@ -94,9 +94,7 @@ const SessionReplay: React.FC = ({ // Filter events const filteredEvents = React.useMemo(() => { - let filtered = [...events].sort((a, b) => - new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime() - ); + let filtered = [...events].sort(compareEventsBySequence); if (filterWorker) { filtered = filtered.filter(e => e.worker === filterWorker);