From bb4abd8208c61444be883208d1a54bd687b138f5 Mon Sep 17 00:00:00 2001 From: Michael Matloka Date: Tue, 21 Apr 2026 12:09:51 +0200 Subject: [PATCH] feat(inbox): add session problem signal card with moment preview MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a SessionProblemSignalCard that displays: - Inline GIF preview of the problematic moment (from moment_preview_url) - Problem type badge (color-coded by severity) - Segment title, time range, user context - Source line label "Session replay · Session problem" Depends on PostHog/posthog#55463 for the backend moment preview rasterization. --- .../inbox/components/detail/SignalCard.tsx | 68 ++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) diff --git a/apps/code/src/renderer/features/inbox/components/detail/SignalCard.tsx b/apps/code/src/renderer/features/inbox/components/detail/SignalCard.tsx index 864383cde..989279430 100644 --- a/apps/code/src/renderer/features/inbox/components/detail/SignalCard.tsx +++ b/apps/code/src/renderer/features/inbox/components/detail/SignalCard.tsx @@ -111,6 +111,8 @@ interface SessionProblemExtra { session_duration?: number; session_active_seconds?: number; exported_asset_id?: number; + moment_preview_url?: string; + moment_preview_asset_id?: number; } interface ErrorTrackingExtra { @@ -566,7 +568,17 @@ function SessionProblemSignalCard({ )} - {extra.session_id && ( + {/* Moment preview GIF — quick visual of the problematic period */} + {extra.moment_preview_url && ( + + )} + + {extra.session_id && !extra.moment_preview_url && ( + {!loaded && ( + + + Loading preview… + + + )} + {alt} setLoaded(true)} + onError={() => setError(true)} + /> + {startTime && endTime && ( + + {startTime} – {endTime} + + )} + + ); +} + function SessionRecordingVideo({ exportedAssetId, sessionId,