From 73d205bfecef950ef1932301dabd8db2760b69b6 Mon Sep 17 00:00:00 2001 From: hangerye Date: Sun, 26 Oct 2025 21:08:44 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=BD=95=E5=88=B6?= =?UTF-8?q?=E8=BF=87=E7=A8=8B=E4=B8=AD=E5=90=8C=E4=B8=AA=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E9=A1=B5=E5=86=85=E5=8F=91=E7=94=9F=E5=AF=BC=E8=88=AA=E4=BC=9A?= =?UTF-8?q?=E6=B8=85=E7=A9=BA=E7=8A=B6=E6=80=81=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../recording/browser-event-listener.ts | 4 ++ .../record-replay/recording/flow-builder.ts | 40 +++++++++---------- 2 files changed, 22 insertions(+), 22 deletions(-) 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]); }