Trace viewer: scroll-load events past an auto-load cap#2200
Conversation
🦋 Changeset detectedLatest commit: 49f0c86 The changes in this PR will be included in the next version bump. This PR includes changesets to release 16 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
karthikscale3
left a comment
There was a problem hiding this comment.
Review notes 1–6 (inline). Overall this fixes the missing pagination wiring; minor follow-ups above.
📊 Benchmark Results
workflow with no steps💻 Local Development
▲ Production (Vercel)
workflow with 1 step💻 Local Development
▲ Production (Vercel)
workflow with 10 sequential steps💻 Local Development
▲ Production (Vercel)
workflow with 25 sequential steps💻 Local Development
▲ Production (Vercel)
workflow with 50 sequential steps💻 Local Development
▲ Production (Vercel)
Promise.all with 10 concurrent steps💻 Local Development
▲ Production (Vercel)
Promise.all with 25 concurrent steps💻 Local Development
▲ Production (Vercel)
Promise.all with 50 concurrent steps💻 Local Development
▲ Production (Vercel)
Promise.race with 10 concurrent steps💻 Local Development
▲ Production (Vercel)
Promise.race with 25 concurrent steps💻 Local Development
▲ Production (Vercel)
Promise.race with 50 concurrent steps💻 Local Development
▲ Production (Vercel)
workflow with 10 sequential data payload steps (10KB)💻 Local Development
▲ Production (Vercel)
workflow with 25 sequential data payload steps (10KB)💻 Local Development
▲ Production (Vercel)
workflow with 50 sequential data payload steps (10KB)💻 Local Development
▲ Production (Vercel)
workflow with 10 concurrent data payload steps (10KB)💻 Local Development
▲ Production (Vercel)
workflow with 25 concurrent data payload steps (10KB)💻 Local Development
▲ Production (Vercel)
workflow with 50 concurrent data payload steps (10KB)💻 Local Development
▲ Production (Vercel)
Stream Benchmarks (includes TTFB metrics)workflow with stream💻 Local Development
▲ Production (Vercel)
stream pipeline with 5 transform steps (1MB)💻 Local Development
▲ Production (Vercel)
10 parallel streams (1MB each)💻 Local Development
▲ Production (Vercel)
fan-out fan-in 10 streams (1MB each)💻 Local Development
▲ Production (Vercel)
SummaryFastest Framework by WorldWinner determined by most benchmark wins
Fastest World by FrameworkWinner determined by most benchmark wins
Column Definitions
Worlds:
❌ Some benchmark jobs failed:
Check the workflow run for details. |
🧪 E2E Test Results✅ All tests passed Summary
Details by Category✅ ▲ Vercel Production
✅ 💻 Local Development
✅ 📦 Local Production
✅ 🐘 Local Postgres
✅ 🪟 Windows
✅ 📋 Other
|
karthikscale3
left a comment
There was a problem hiding this comment.
Re-reviewed after the latest commits (Update trace-viewer.tsx, Update use-trace-viewer.test.ts).
Looks good to merge:
- Pagination is correctly wired through
run-detail-view→NewTraceViewer - Footer spinner now only shows while
isLoadingMore - Auto-backfill cap + scroll-load via IntersectionObserver are solid
- New pagination tests pass (8/8 locally)
Remaining follow-up is out of scope here: vercel/front parity for the new trace viewer flag path (front#72039).
|
No backport to This commit fixes pagination for the new trace viewer ( To override, re-run the Backport to stable workflow manually via |
* origin/main: [world-vercel] Retry transient response-body parse failures in the HTTP client (#2204) Add virtualization to the trace viewer (#2205) Trace viewer: scroll-load events past an auto-load cap (#2200) fix(core): resolve forwarded stream keys across deployments (#2191) [e2e] Improve error labeling in event-log-race-repro CI job (#2190) [core] Harden event pagination response parsing (#2180) (#2179) Add loading skeleton to the new trace viewer (#2164) Add tooltip components + apply on up/down detail pane (#2163) fix(swc-plugin): allow wasm host imports during link (#2174) [test] Forward-port reused-sleep replay divergence test (#2172) [e2e] Add `event-log-race-repro` label for triggering CI stress-test (#2159) Version Packages (beta) (#2162) fix(world-local): skip Nov 2025 ghost versions on npm (#2168) fix(core,errors): classify SDK encryption failures as RUNTIME_ERROR (#2145) [web-shared][web] Fix events tab search (#2107) Version Packages (beta) (#2147) Allow setting workflow attributes from steps (#2157) Better search handling on the trace viewer (#2144) [docs] Document experimental attributes feature (#2141)
What
The new trace viewer was getting stuck on the first page for large runs. This re-wires pagination:
use-trace-viewer.tsbackfills history pages untilAUTO_LOAD_MAX_EVENTS(500), then stops; further loading is driven by scrolling.useLoadMoreOnScroll+useIntersectionObserverhooks (ported from vercel/front's@vercel/hooks, withrootthreaded as a ref so the observer roots on the viewer's internal scroll container). A sentinel near the bottom of the span list triggers the next page — no per-scroll layout reads.NewTraceViewergainsonLoadMore/hasMore/isLoadingMoreprops and renders a centered "Loading spans…" footer (Geist spinner) while fetching.SplitPaneexposes its scroll container viascrollContainerRefso the observer can root on it.Notes
AUTO_LOAD_MAX_EVENTSis also set in vercel/front'suse-workflow-trace-data.ts(the trace viewer's other consumer) — keep them in sync. See vercel/front#72039.🤖 Generated with Claude Code