fix(analytics): distinguish timeline-only replay records - #5628
Conversation
|
Here's a visual recap of what changed: Open the full interactive recap |
There was a problem hiding this comment.
Builder reviewed your changes — looks good ✅
Review Details
Code Review Summary
PR #5628 makes the analytics replay error boundary explicit: an empty event payload continues to use the localized noReplayEvents message, while a non-empty payload that lacks playable rrweb events uses the existing localized replayUnavailableDescription message. The helper is small, pure, and preserves the existing playability predicate, so normal replay construction is unaffected. The focused regression test covers empty, timeline-only, and playable payloads, and the changelog entry documents the user-facing fix.
Risk assessment: Standard. Two independent balanced reviews found no confirmed bugs, security issues, or performance regressions. The PR's stated focused tests and typecheck are consistent with the changed surface. The dev server was healthy and the browser planner confirmed the relevant routes return HTTP 200 and prepared seeded empty, timeline-only, and playable recordings; however, visual execution was blocked because the browser executors had no Chrome automation tools available, so the UI states could not be observed directly.
🧪 Browser testing: Attempted, but all planned cases were blocked by unavailable browser automation tools; re-run when the tooling is available.

Summary
Verification
corepack pnpm --filter analytics exec vitest --run app/pages/sessions/SessionDetailPage.spec.ts- 28 passed.corepack pnpm --filter analytics typecheck- passed; the local run prints the existing missing production BETTER_AUTH_SECRET and persistent DATABASE_URL warnings.corepack pnpm guards- all 77 checks passed.Feedback handoff
C0ATH3CCZT4); five-day scan start boundary: 2026-09-17; pagination cursor:bmV4dF90czoxNzg5NzI5OTczMTA1ODU5.1790075025.006849) - source and focused test are in this PR; merge, deployment, and live retest remain separate gates.1790083394.548779, PR Fix design systems stuck showing "Indexing" status #5529); Mail errors (1790040241.468959, PR fix(mail): silence partial refresh warnings with cached rows #5626); large Design import CPU (1790021138.617079, merged PR fix(design): keep large Figma imports responsive #5561); Google OAuth popup reports (1790000219.657869,1789976723.870489,1789976052.870489,1789992842.702889, merged PR fix(core): keep Google OAuth popups navigable #5563).1790057451.683629) and Calendar Zoom booking links (1790035523.975049); reporter questions are in-thread.1789985567.526419) is marked:no_entry_sign:after the provider limitation was confirmed.:eyes:items are retained as explicit carryover in the automation run ledger and are not represented as fixed by this PR.Boundaries
Browser, beta, production, and authenticated live proof are not claimed in this PR.