diff --git a/app/chrome-extension/entrypoints/background/record-replay/recording/browser-event-listener.ts b/app/chrome-extension/entrypoints/background/record-replay/recording/browser-event-listener.ts index d478ac1..c816b94 100644 --- a/app/chrome-extension/entrypoints/background/record-replay/recording/browser-event-listener.ts +++ b/app/chrome-extension/entrypoints/background/record-replay/recording/browser-event-listener.ts @@ -54,6 +54,10 @@ export function initBrowserEventListeners(session: RecordingSessionManager): voi await broadcastControlToTab(tabId, REC_CMD.START); // Track active tab for targeted STOP later session.addActiveTab(tabId); + const f = session.getFlow(); + if (f) { + session.broadcastTimelineUpdate(f.steps || []); + } } catch (e) { console.warn('onCommitted handler failed', e); } diff --git a/app/chrome-extension/entrypoints/background/record-replay/recording/flow-builder.ts b/app/chrome-extension/entrypoints/background/record-replay/recording/flow-builder.ts index 80f4315..d3a4581 100644 --- a/app/chrome-extension/entrypoints/background/record-replay/recording/flow-builder.ts +++ b/app/chrome-extension/entrypoints/background/record-replay/recording/flow-builder.ts @@ -31,31 +31,27 @@ export function appendSteps(flow: Flow, steps: Step[]): void { if (!step.id) step.id = generateStepId(); flow.steps.push(step); } - try { - const timeStamp = new Date().toISOString(); - if (flow.meta) { - flow.meta.updatedAt = timeStamp; - } else { - flow = { - ...flow, - meta: { - createdAt: timeStamp, - updatedAt: timeStamp, - }, - }; - } - } catch {} + const timeStamp = new Date().toISOString(); + if (flow.meta) { + flow.meta.updatedAt = timeStamp; + } else { + flow = { + ...flow, + meta: { + createdAt: timeStamp, + updatedAt: timeStamp, + }, + }; + } } export function addNavigationStep(flow: Flow, url: string): void { const step: Step = { id: generateStepId(), type: STEP_TYPES.NAVIGATE, url } as Step; - try { - // Prefer centralized session append (single broadcast path) when active and matching flow - const sessFlow = recordingSession.getFlow?.(); - if (recordingSession.getStatus?.() === 'recording' && sessFlow === flow) { - recordingSession.appendSteps([step]); - return; - } - } catch {} + // Prefer centralized session append (single broadcast path) when active and matching flow + const sessFlow = recordingSession.getFlow?.(); + if (recordingSession.getStatus?.() === 'recording' && sessFlow === flow) { + recordingSession.appendSteps([step]); + return; + } appendSteps(flow, [step]); }