[web-shared] Improve liveness updates and fix bugs in Trace Viewer#1086
Conversation
🦋 Changeset detectedLatest commit: c31ced8 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
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 |
📊 Benchmark Results
workflow with no steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) | Express | Nitro workflow with 1 step💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) | Express | Nitro workflow with 10 sequential steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Nitro | Express | Next.js (Turbopack) workflow with 25 sequential steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Nitro | Express | Next.js (Turbopack) workflow with 50 sequential steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Nitro | Next.js (Turbopack) Promise.all with 10 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) | Express | Nitro Promise.all with 25 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Nitro | Express | Next.js (Turbopack) Promise.all with 50 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) | Express | Nitro Promise.race with 10 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Nitro | Next.js (Turbopack) Promise.race with 25 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Express | Next.js (Turbopack) | Nitro Promise.race with 50 concurrent steps💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) | Express | Nitro Stream Benchmarks (includes TTFB metrics)workflow with stream💻 Local Development
▲ Production (Vercel)
🔍 Observability: Next.js (Turbopack) | Express | Nitro SummaryFastest Framework by WorldWinner determined by most benchmark wins
Fastest World by FrameworkWinner determined by most benchmark wins
Column Definitions
Worlds:
|
🧪 E2E Test Results❌ Some tests failed Summary
❌ Failed Tests🌍 Community Worlds (46 failed)mongodb (1 failed):
turso (45 failed):
Details by Category✅ ▲ Vercel Production
✅ 💻 Local Development
✅ 📦 Local Production
✅ 🐘 Local Postgres
✅ 🪟 Windows
❌ 🌍 Community Worlds
✅ 📋 Other
|
Summary of changes:
node.tsx- Refactored to make live span behavior deterministic and accurate, especially around completion detection, duration correctness, and smooth live rendering.isLive->traceIsLive) instead of inferring fromroot.endTime.getTerminalTimestamp(...)so terminal events (*_completed,*_failed, etc.) stop spans from being treated as live.getHighResInMsand computed a singledurationMsfor display + layout.segmentNode(canonical/live-adjusted node) and used it consistently for layout, events, and rendering.durationMsintoSpanContentso content reflects live/terminal-correct timing.span-content.tsx- Supports externally computed live/terminal-correct duration, so labels and segment timing stay in sync with live span updates.context.tsx- Made changes to ensure zoom/scale behavior stays correct when panel visibility, panel width, or selection changes, avoiding stale scale math.trace-viewer.tsxuse-streaming-spans.ts- Fixed a race condition where outdated worker results were being used, preventing old row calculations from overwriting newer state.workflow-trace-view.tsx- Made fixes to keep context-menu behavior and selected-span events reliably in sync during live updates, while tightening step duration bounds to the run/viewer end time.