Skip to content

[web-shared][cli][ci] Add serializable reviver compatibility check#2250

Merged
karthikscale3 merged 1 commit into
mainfrom
codex/serializable-reviver-ci
Jun 4, 2026
Merged

[web-shared][cli][ci] Add serializable reviver compatibility check#2250
karthikscale3 merged 1 commit into
mainfrom
codex/serializable-reviver-ci

Conversation

@karthikscale3
Copy link
Copy Markdown
Contributor

Summary

  • add a dedicated CI job that builds the CLI and web-shared reviver packages, then runs a serializable reviver compatibility test
  • add a web-shared test that discovers every SerializableSpecial key from core and verifies web-shared and CLI can hydrate each one
  • cover RuntimeDecryptionError in web-shared and add missing CLI error reviver keys for HookConflictError and RuntimeDecryptionError

Why

The trace-viewer failure happened because a serializable type could be emitted by core without a matching browser-side reviver. This check makes that mismatch fail in CI for both web-shared and CLI.

Validation

  • pnpm turbo run build --filter='@workflow/cli' --filter='@workflow/web-shared'
  • pnpm vitest run packages/web-shared/test/serializable-revivers.test.ts
  • pnpm --filter @workflow/web-shared test
  • pnpm --filter @workflow/web-shared typecheck
  • pnpm --filter @workflow/cli typecheck
  • git diff --check --cached

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Jun 4, 2026

🦋 Changeset detected

Latest commit: 8a99060

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 16 packages
Name Type
@workflow/cli Patch
@workflow/web-shared Patch
workflow Patch
@workflow/world-testing Patch
@workflow/web Patch
@workflow/core Patch
@workflow/nitro Patch
@workflow/builders Patch
@workflow/next Patch
@workflow/vitest Patch
@workflow/nuxt Patch
@workflow/astro Patch
@workflow/nest Patch
@workflow/rollup Patch
@workflow/sveltekit Patch
@workflow/vite Patch

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

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Jun 4, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
example-nextjs-workflow-turbopack Ready Ready Preview, Comment Jun 4, 2026 6:58pm
example-nextjs-workflow-webpack Ready Ready Preview, Comment Jun 4, 2026 6:58pm
example-workflow Ready Ready Preview, Comment Jun 4, 2026 6:58pm
workbench-astro-workflow Ready Ready Preview, Comment Jun 4, 2026 6:58pm
workbench-express-workflow Ready Ready Preview, Comment Jun 4, 2026 6:58pm
workbench-fastify-workflow Ready Ready Preview, Comment Jun 4, 2026 6:58pm
workbench-hono-workflow Ready Ready Preview, Comment Jun 4, 2026 6:58pm
workbench-nitro-workflow Ready Ready Preview, Comment Jun 4, 2026 6:58pm
workbench-nuxt-workflow Ready Ready Preview, Comment Jun 4, 2026 6:58pm
workbench-sveltekit-workflow Ready Ready Preview, Comment Jun 4, 2026 6:58pm
workbench-tanstack-start-workflow Ready Ready Preview, Comment Jun 4, 2026 6:58pm
workbench-vite-workflow Ready Ready Preview, Comment Jun 4, 2026 6:58pm
workflow-docs Ready Ready Preview, Comment, Open in v0 Jun 4, 2026 6:58pm
workflow-swc-playground Ready Ready Preview, Comment Jun 4, 2026 6:58pm
workflow-tarballs Ready Ready Preview, Comment Jun 4, 2026 6:58pm
workflow-web Ready Ready Preview, Comment Jun 4, 2026 6:58pm

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 4, 2026

🧪 E2E Test Results

All tests passed

Summary

Passed Failed Skipped Total
✅ ▲ Vercel Production 1266 0 219 1485
✅ 💻 Local Development 1671 0 219 1890
✅ 📦 Local Production 1671 0 219 1890
✅ 🐘 Local Postgres 1671 0 219 1890
✅ 🪟 Windows 135 0 0 135
✅ 📋 Other 769 0 176 945
Total 7183 0 1052 8235

Details by Category

✅ ▲ Vercel Production
App Passed Failed Skipped
✅ astro 109 0 26
✅ example 109 0 26
✅ express 109 0 26
✅ fastify 109 0 26
✅ hono 109 0 26
✅ nextjs-turbopack 133 0 2
✅ nextjs-webpack 133 0 2
✅ nitro 109 0 26
✅ nuxt 109 0 26
✅ sveltekit 128 0 7
✅ vite 109 0 26
✅ 💻 Local Development
App Passed Failed Skipped
✅ astro-stable 110 0 25
✅ express-stable 110 0 25
✅ fastify-stable 110 0 25
✅ hono-stable 110 0 25
✅ nextjs-turbopack-canary 116 0 19
✅ nextjs-turbopack-stable-lazy-discovery-disabled 135 0 0
✅ nextjs-turbopack-stable-lazy-discovery-enabled 135 0 0
✅ nextjs-webpack-canary 116 0 19
✅ nextjs-webpack-stable-lazy-discovery-disabled 135 0 0
✅ nextjs-webpack-stable-lazy-discovery-enabled 135 0 0
✅ nitro-stable 110 0 25
✅ nuxt-stable 110 0 25
✅ sveltekit-stable 129 0 6
✅ vite-stable 110 0 25
✅ 📦 Local Production
App Passed Failed Skipped
✅ astro-stable 110 0 25
✅ express-stable 110 0 25
✅ fastify-stable 110 0 25
✅ hono-stable 110 0 25
✅ nextjs-turbopack-canary 116 0 19
✅ nextjs-turbopack-stable-lazy-discovery-disabled 135 0 0
✅ nextjs-turbopack-stable-lazy-discovery-enabled 135 0 0
✅ nextjs-webpack-canary 116 0 19
✅ nextjs-webpack-stable-lazy-discovery-disabled 135 0 0
✅ nextjs-webpack-stable-lazy-discovery-enabled 135 0 0
✅ nitro-stable 110 0 25
✅ nuxt-stable 110 0 25
✅ sveltekit-stable 129 0 6
✅ vite-stable 110 0 25
✅ 🐘 Local Postgres
App Passed Failed Skipped
✅ astro-stable 110 0 25
✅ express-stable 110 0 25
✅ fastify-stable 110 0 25
✅ hono-stable 110 0 25
✅ nextjs-turbopack-canary 116 0 19
✅ nextjs-turbopack-stable-lazy-discovery-disabled 135 0 0
✅ nextjs-turbopack-stable-lazy-discovery-enabled 135 0 0
✅ nextjs-webpack-canary 116 0 19
✅ nextjs-webpack-stable-lazy-discovery-disabled 135 0 0
✅ nextjs-webpack-stable-lazy-discovery-enabled 135 0 0
✅ nitro-stable 110 0 25
✅ nuxt-stable 110 0 25
✅ sveltekit-stable 129 0 6
✅ vite-stable 110 0 25
✅ 🪟 Windows
App Passed Failed Skipped
✅ nextjs-turbopack 135 0 0
✅ 📋 Other
App Passed Failed Skipped
✅ e2e-local-dev-nest-stable 110 0 25
✅ e2e-local-dev-tanstack-start- 110 0 25
✅ e2e-local-postgres-nest-stable 110 0 25
✅ e2e-local-postgres-tanstack-start- 110 0 25
✅ e2e-local-prod-nest-stable 110 0 25
✅ e2e-local-prod-tanstack-start- 110 0 25
✅ e2e-vercel-prod-tanstack-start 109 0 26

📋 View full workflow run

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 4, 2026

📊 Benchmark Results

📈 Comparing against baseline from main branch. Green 🟢 = faster, Red 🔺 = slower.

workflow with no steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Express 0.041s (+1.2%) 1.005s (~) 0.964s 10 1.00x
💻 Local Nitro 0.043s (-1.8%) 1.005s (~) 0.963s 10 1.03x
🐘 Postgres Express 0.060s (-8.3% 🟢) 1.012s (~) 0.952s 10 1.45x
🐘 Postgres Nitro 0.062s (-31.3% 🟢) 1.012s (-1.8%) 0.951s 10 1.49x
💻 Local Next.js (Turbopack) 0.062s (-2.2%) 1.006s (~) 0.944s 10 1.50x
🐘 Postgres Next.js (Turbopack) 0.069s (-0.9%) 1.012s (~) 0.943s 10 1.67x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 0.268s (-99.1% 🟢) 2.185s (-93.3% 🟢) 1.917s 10 1.00x
▲ Vercel Next.js (Turbopack) 0.313s (-33.0% 🟢) 2.234s (+4.4%) 1.921s 10 1.17x
▲ Vercel Express ⚠️ missing - - - -

🔍 Observability: Nitro | Next.js (Turbopack)

workflow with 1 step

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 1.087s (-0.7%) 2.006s (~) 0.919s 10 1.00x
💻 Local Express 1.104s (+1.4%) 2.007s (~) 0.903s 10 1.02x
🐘 Postgres Nitro 1.109s (-3.0%) 2.009s (-1.2%) 0.900s 10 1.02x
🐘 Postgres Express 1.112s (~) 2.011s (~) 0.899s 10 1.02x
💻 Local Next.js (Turbopack) 1.134s (-0.5%) 2.006s (~) 0.872s 10 1.04x
🐘 Postgres Next.js (Turbopack) 1.143s (~) 2.011s (~) 0.868s 10 1.05x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 1.558s (-0.9%) 3.373s (-11.5% 🟢) 1.815s 10 1.00x
▲ Vercel Next.js (Turbopack) 1.669s (-4.8%) 3.571s (+9.7% 🔺) 1.902s 10 1.07x
▲ Vercel Express ⚠️ missing - - - -

🔍 Observability: Nitro | Next.js (Turbopack)

workflow with 10 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Express 10.529s (~) 11.023s (~) 0.494s 3 1.00x
💻 Local Nitro 10.548s (~) 11.023s (~) 0.475s 3 1.00x
🐘 Postgres Express 10.571s (~) 11.021s (~) 0.450s 3 1.00x
🐘 Postgres Nitro 10.593s (-1.0%) 11.016s (~) 0.424s 3 1.01x
💻 Local Next.js (Turbopack) 10.788s (~) 11.023s (~) 0.235s 3 1.02x
🐘 Postgres Next.js (Turbopack) 10.812s (~) 11.017s (~) 0.205s 3 1.03x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 13.491s (-2.2%) 14.882s (-2.1%) 1.391s 3 1.00x
▲ Vercel Nitro 13.630s (+3.3%) 15.255s (+3.2%) 1.625s 2 1.01x
▲ Vercel Express ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack) | Nitro

workflow with 25 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Express 13.674s (~) 14.026s (~) 0.352s 5 1.00x
🐘 Postgres Express 13.748s (-1.3%) 14.021s (~) 0.273s 5 1.01x
🐘 Postgres Nitro 13.776s (-6.0% 🟢) 14.019s (-6.7% 🟢) 0.243s 5 1.01x
💻 Local Nitro 13.784s (~) 14.026s (~) 0.242s 5 1.01x
💻 Local Next.js (Turbopack) 14.436s (+0.7%) 15.029s (~) 0.593s 4 1.06x
🐘 Postgres Next.js (Turbopack) 14.558s (+1.2%) 15.019s (~) 0.461s 4 1.06x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 21.581s (-0.9%) 24.526s (+3.8%) 2.945s 3 1.00x
▲ Vercel Nitro 21.936s (-5.3% 🟢) 23.651s (-6.0% 🟢) 1.715s 3 1.02x
▲ Vercel Express ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack) | Nitro

workflow with 50 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 12.370s (~) 13.025s (~) 0.654s 7 1.00x
💻 Local Express 12.380s (~) 13.025s (~) 0.645s 7 1.00x
🐘 Postgres Express 12.610s (~) 13.022s (~) 0.411s 7 1.02x
🐘 Postgres Nitro 12.614s (-0.6%) 13.022s (-2.1%) 0.408s 7 1.02x
💻 Local Next.js (Turbopack) 13.688s (~) 14.026s (~) 0.338s 7 1.11x
🐘 Postgres Next.js (Turbopack) 13.891s (+1.8%) 14.306s (+2.0%) 0.415s 7 1.12x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 28.396s (-3.4%) 30.334s (-1.7%) 1.938s 3 1.00x
▲ Vercel Nitro 30.618s (-9.6% 🟢) 33.147s (-8.2% 🟢) 2.529s 3 1.08x
▲ Vercel Express ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack) | Nitro

Promise.all with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 1.182s (-6.1% 🟢) 2.007s (~) 0.825s 15 1.00x
🐘 Postgres Express 1.195s (~) 2.008s (~) 0.813s 15 1.01x
💻 Local Nitro 1.210s (-0.5%) 2.006s (~) 0.796s 15 1.02x
🐘 Postgres Next.js (Turbopack) 1.233s (~) 2.007s (~) 0.775s 15 1.04x
💻 Local Express 1.282s (+3.7%) 2.006s (~) 0.723s 15 1.08x
💻 Local Next.js (Turbopack) 1.308s (-1.1%) 2.006s (~) 0.698s 15 1.11x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 3.736s (+44.6% 🔺) 5.132s (+25.4% 🔺) 1.396s 6 1.00x
▲ Vercel Nitro 308.080s (+8017.3% 🔺) 309.463s (+5930.9% 🔺) 1.383s 1 82.45x
▲ Vercel Express ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack) | Nitro

Promise.all with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.245s (-1.3%) 2.007s (~) 0.763s 15 1.00x
🐘 Postgres Nitro 1.260s (-7.2% 🟢) 2.007s (~) 0.747s 15 1.01x
🐘 Postgres Next.js (Turbopack) 1.391s (+0.5%) 2.008s (~) 0.617s 15 1.12x
💻 Local Nitro 1.721s (-2.0%) 2.006s (~) 0.284s 15 1.38x
💻 Local Express 1.728s (+1.3%) 2.006s (~) 0.278s 15 1.39x
💻 Local Next.js (Turbopack) 1.811s (-4.9%) 2.006s (-13.3% 🟢) 0.195s 15 1.46x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 4.529s (+3.2%) 6.096s (+7.4% 🔺) 1.567s 5 1.00x
▲ Vercel Nitro 64.758s (+1429.6% 🔺) 66.632s (+1003.3% 🔺) 1.874s 5 14.30x
▲ Vercel Express ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack) | Nitro

Promise.all with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.381s (-1.4%) 2.007s (~) 0.626s 15 1.00x
🐘 Postgres Nitro 1.386s (-5.8% 🟢) 2.007s (-13.5% 🟢) 0.621s 15 1.00x
🐘 Postgres Next.js (Turbopack) 1.756s (+3.5%) 2.223s (+3.7%) 0.467s 14 1.27x
💻 Local Express 4.667s (-3.1%) 5.012s (-6.2% 🟢) 0.345s 6 3.38x
💻 Local Nitro 4.904s (+3.3%) 5.346s (+3.1%) 0.442s 6 3.55x
💻 Local Next.js (Turbopack) 5.429s (-1.4%) 6.014s (-3.2%) 0.584s 5 3.93x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 5.400s (-22.2% 🟢) 7.357s (-15.5% 🟢) 1.957s 5 1.00x
▲ Vercel Nitro 5.450s (-60.3% 🟢) 7.775s (-49.6% 🟢) 2.325s 4 1.01x
▲ Vercel Express ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack) | Nitro

Promise.race with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.183s (~) 2.009s (~) 0.826s 15 1.00x
🐘 Postgres Nitro 1.204s (-8.3% 🟢) 2.009s (-3.3%) 0.805s 15 1.02x
🐘 Postgres Next.js (Turbopack) 1.248s (~) 2.009s (~) 0.761s 15 1.05x
💻 Local Next.js (Turbopack) 1.403s (+1.6%) 2.006s (~) 0.603s 15 1.19x
💻 Local Nitro 1.530s (-7.3% 🟢) 2.006s (-3.2%) 0.475s 15 1.29x
💻 Local Express 1.555s (+2.4%) 2.006s (~) 0.452s 15 1.31x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 2.535s (-12.0% 🟢) 4.314s (+0.6%) 1.779s 7 1.00x
▲ Vercel Next.js (Turbopack) 2.564s (-35.7% 🟢) 3.964s (-28.1% 🟢) 1.400s 8 1.01x
▲ Vercel Express ⚠️ missing - - - -

🔍 Observability: Nitro | Next.js (Turbopack)

Promise.race with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.257s (~) 2.010s (~) 0.753s 15 1.00x
🐘 Postgres Nitro 1.264s (+1.1%) 2.010s (~) 0.746s 15 1.01x
🐘 Postgres Next.js (Turbopack) 1.411s (-2.7%) 2.008s (-3.2%) 0.597s 15 1.12x
💻 Local Express 1.956s (+3.1%) 2.394s (+3.3%) 0.437s 13 1.56x
💻 Local Next.js (Turbopack) 2.032s (-2.5%) 2.674s (-5.4% 🟢) 0.643s 12 1.62x
💻 Local Nitro 2.138s (+1.2%) 2.674s (-2.2%) 0.536s 12 1.70x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 3.436s (-7.9% 🟢) 5.262s (-1.7%) 1.826s 6 1.00x
▲ Vercel Next.js (Turbopack) 4.639s (~) 6.016s (-6.4% 🟢) 1.377s 6 1.35x
▲ Vercel Express ⚠️ missing - - - -

🔍 Observability: Nitro | Next.js (Turbopack)

Promise.race with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 1.392s (-4.3%) 2.007s (-3.4%) 0.615s 15 1.00x
🐘 Postgres Express 1.399s (~) 2.009s (~) 0.609s 15 1.01x
🐘 Postgres Next.js (Turbopack) 1.761s (+2.3%) 2.395s (+7.8% 🔺) 0.634s 13 1.26x
💻 Local Nitro 5.032s (-14.9% 🟢) 5.513s (-14.0% 🟢) 0.481s 6 3.62x
💻 Local Express 5.443s (+2.8%) 5.846s (~) 0.402s 6 3.91x
💻 Local Next.js (Turbopack) 5.676s (-2.0%) 6.217s (~) 0.541s 5 4.08x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 5.553s (-13.8% 🟢) 7.345s (-8.5% 🟢) 1.792s 5 1.00x
▲ Vercel Next.js (Turbopack) 5.595s (-23.5% 🟢) 7.242s (-26.4% 🟢) 1.647s 5 1.01x
▲ Vercel Express ⚠️ missing - - - -

🔍 Observability: Nitro | Next.js (Turbopack)

workflow with 10 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Express 0.588s (-2.0%) 1.004s (~) 0.417s 60 1.00x
🐘 Postgres Nitro 0.590s (+17.8% 🔺) 1.024s (+1.1%) 0.434s 60 1.00x
🐘 Postgres Express 0.594s (+4.2%) 1.024s (+1.8%) 0.430s 59 1.01x
💻 Local Nitro 0.627s (+5.9% 🔺) 1.022s (+1.7%) 0.395s 59 1.07x
🐘 Postgres Next.js (Turbopack) 0.817s (-2.6%) 1.007s (-4.9%) 0.190s 60 1.39x
💻 Local Next.js (Turbopack) 0.852s (-2.4%) 1.004s (-3.3%) 0.153s 60 1.45x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 5.530s (+7.0% 🔺) 7.347s (+3.8%) 1.817s 9 1.00x
▲ Vercel Next.js (Turbopack) 5.783s (+1.8%) 7.534s (+2.5%) 1.752s 8 1.05x
▲ Vercel Express ⚠️ missing - - - -

🔍 Observability: Nitro | Next.js (Turbopack)

workflow with 25 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.334s (-1.7%) 2.008s (~) 0.674s 45 1.00x
🐘 Postgres Nitro 1.433s (-0.5%) 2.030s (+0.6%) 0.597s 45 1.07x
💻 Local Nitro 1.536s (+2.4%) 2.006s (-1.1%) 0.470s 45 1.15x
💻 Local Express 1.597s (+4.6%) 2.051s (+1.1%) 0.454s 45 1.20x
🐘 Postgres Next.js (Turbopack) 1.994s (+4.3%) 2.376s (+13.1% 🔺) 0.382s 38 1.50x
💻 Local Next.js (Turbopack) 2.076s (-1.3%) 2.943s (-2.2%) 0.867s 31 1.56x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 12.751s (-8.2% 🟢) 15.132s (-2.7%) 2.382s 6 1.00x
▲ Vercel Next.js (Turbopack) 14.376s (-15.6% 🟢) 16.066s (-12.7% 🟢) 1.691s 7 1.13x
▲ Vercel Express ⚠️ missing - - - -

🔍 Observability: Nitro | Next.js (Turbopack)

workflow with 50 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 2.769s (~) 3.137s (~) 0.368s 39 1.00x
🐘 Postgres Nitro 2.811s (+6.6% 🔺) 3.219s (-3.1%) 0.408s 38 1.02x
💻 Local Nitro 3.217s (+2.1%) 4.009s (+1.6%) 0.792s 30 1.16x
💻 Local Express 3.616s (+11.9% 🔺) 4.044s (+1.7%) 0.428s 30 1.31x
🐘 Postgres Next.js (Turbopack) 3.877s (+1.4%) 4.076s (-0.8%) 0.199s 30 1.40x
💻 Local Next.js (Turbopack) 4.240s (-4.5%) 5.010s (~) 0.771s 24 1.53x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 25.596s (-9.6% 🟢) 27.266s (-10.4% 🟢) 1.670s 5 1.00x
▲ Vercel Next.js (Turbopack) 27.293s (-8.2% 🟢) 29.696s (-6.0% 🟢) 2.403s 5 1.07x
▲ Vercel Express ⚠️ missing - - - -

🔍 Observability: Nitro | Next.js (Turbopack)

workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 0.227s (+2.5%) 1.006s (~) 0.779s 60 1.00x
🐘 Postgres Express 0.229s (+0.8%) 1.006s (~) 0.777s 60 1.01x
🐘 Postgres Next.js (Turbopack) 0.272s (+3.5%) 1.006s (~) 0.733s 60 1.20x
💻 Local Nitro 0.461s (+2.2%) 1.004s (~) 0.543s 60 2.03x
💻 Local Express 0.468s (+11.1% 🔺) 1.005s (~) 0.538s 60 2.06x
💻 Local Next.js (Turbopack) 0.599s (-6.7% 🟢) 1.039s (-1.8%) 0.440s 58 2.64x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 2.401s (+2.2%) 4.099s (+4.0%) 1.698s 15 1.00x
▲ Vercel Next.js (Turbopack) 2.586s (-20.2% 🟢) 4.024s (-14.2% 🟢) 1.438s 15 1.08x
▲ Vercel Express ⚠️ missing - - - -

🔍 Observability: Nitro | Next.js (Turbopack)

workflow with 25 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 0.343s (-4.8%) 1.006s (~) 0.663s 90 1.00x
🐘 Postgres Nitro 0.359s (-8.8% 🟢) 1.007s (-1.4%) 0.647s 90 1.05x
🐘 Postgres Next.js (Turbopack) 0.502s (+5.6% 🔺) 1.018s (+1.2%) 0.516s 89 1.46x
💻 Local Nitro 2.179s (+5.5% 🔺) 2.714s (+2.9%) 0.535s 34 6.35x
💻 Local Express 2.314s (+9.8% 🔺) 2.979s (+12.2% 🔺) 0.665s 31 6.74x
💻 Local Next.js (Turbopack) 2.320s (-8.9% 🟢) 3.114s (-5.5% 🟢) 0.794s 29 6.76x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 5.529s (-8.3% 🟢) 7.253s (-5.1% 🟢) 1.724s 13 1.00x
▲ Vercel Next.js (Turbopack) 6.145s (-10.4% 🟢) 7.456s (-11.7% 🟢) 1.311s 13 1.11x
▲ Vercel Express ⚠️ missing - - - -

🔍 Observability: Nitro | Next.js (Turbopack)

workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 0.670s (+7.7% 🔺) 1.006s (-6.2% 🟢) 0.336s 120 1.00x
🐘 Postgres Express 0.690s (~) 1.015s (+0.9%) 0.325s 119 1.03x
🐘 Postgres Next.js (Turbopack) 0.988s (+1.9%) 1.587s (+1.3%) 0.599s 76 1.48x
💻 Local Nitro 10.041s (+6.4% 🔺) 10.528s (+5.0%) 0.487s 12 14.99x
💻 Local Express 10.303s (+8.8% 🔺) 10.941s (+9.1% 🔺) 0.637s 11 15.38x
💻 Local Next.js (Turbopack) 10.956s (~) 11.670s (-0.7%) 0.713s 11 16.35x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 15.957s (-21.4% 🟢) 17.849s (-19.5% 🟢) 1.891s 7 1.00x
▲ Vercel Next.js (Turbopack) 82.420s (+378.6% 🔺) 83.995s (+350.9% 🔺) 1.575s 5 5.17x
▲ Vercel Express ⚠️ missing - - - -

🔍 Observability: Nitro | Next.js (Turbopack)

Stream Benchmarks (includes TTFB metrics)
workflow with stream

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 1.159s (~) 2.005s (~) 0.011s (-9.5% 🟢) 2.018s (~) 0.859s 10 1.00x
💻 Local Express 1.165s (+0.5%) 2.005s (~) 0.011s (+1.0%) 2.018s (~) 0.853s 10 1.01x
🐘 Postgres Express 1.178s (+0.6%) 2.000s (~) 0.001s (-44.4% 🟢) 2.011s (~) 0.833s 10 1.02x
🐘 Postgres Nitro 1.179s (+1.7%) 1.999s (~) 0.001s (+133.3% 🔺) 2.010s (~) 0.831s 10 1.02x
💻 Local Next.js (Turbopack) 1.215s (~) 2.004s (~) 0.013s (+4.2%) 2.020s (~) 0.805s 10 1.05x
🐘 Postgres Next.js (Turbopack) 1.232s (~) 2.001s (~) 0.001s (-23.1% 🟢) 2.011s (~) 0.779s 10 1.06x

▲ Production (Vercel)

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 2.081s (-6.9% 🟢) 3.185s (+1.8%) 1.495s (+59.2% 🔺) 5.142s (+12.3% 🔺) 3.061s 10 1.00x
▲ Vercel Next.js (Turbopack) 2.128s (-1.5%) 3.052s (+2.1%) 1.585s (+32.3% 🔺) 5.046s (+8.9% 🔺) 2.918s 10 1.02x
▲ Vercel Express ⚠️ missing - - - - -

🔍 Observability: Nitro | Next.js (Turbopack)

stream pipeline with 5 transform steps (1MB)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 1.578s (-4.5%) 2.003s (-3.2%) 0.004s (+17.3% 🔺) 2.026s (-2.9%) 0.448s 30 1.00x
🐘 Postgres Express 1.633s (+2.7%) 2.007s (~) 0.004s (+0.9%) 2.027s (~) 0.395s 30 1.03x
💻 Local Nitro 1.633s (+3.5%) 2.042s (+1.7%) 0.010s (+1.0%) 2.054s (+1.7%) 0.421s 30 1.03x
🐘 Postgres Next.js (Turbopack) 1.748s (+2.0%) 2.010s (~) 0.004s (+5.1% 🔺) 2.025s (~) 0.277s 30 1.11x
💻 Local Next.js (Turbopack) 1.750s (-2.4%) 2.043s (+1.7%) 0.009s (-23.8% 🟢) 2.055s (+1.5%) 0.306s 30 1.11x
💻 Local Express 1.751s (+12.0% 🔺) 2.010s (~) 0.010s (~) 2.202s (+8.9% 🔺) 0.451s 28 1.11x

▲ Production (Vercel)

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 6.044s (~) 7.208s (+1.8%) 0.224s (-52.2% 🟢) 7.877s (-2.0%) 1.832s 8 1.00x
▲ Vercel Next.js (Turbopack) 6.078s (-1.0%) 7.436s (~) 0.372s (+83.1% 🔺) 8.257s (+2.7%) 2.179s 8 1.01x
▲ Vercel Express ⚠️ missing - - - - -

🔍 Observability: Nitro | Next.js (Turbopack)

10 parallel streams (1MB each)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 0.712s (-25.5% 🟢) 1.006s (-20.8% 🟢) 0.000s (-58.6% 🟢) 1.047s (-20.0% 🟢) 0.335s 58 1.00x
🐘 Postgres Express 0.729s (+2.2%) 1.031s (~) 0.000s (+103.5% 🔺) 1.054s (+1.2%) 0.326s 57 1.02x
🐘 Postgres Next.js (Turbopack) 0.842s (+9.2% 🔺) 1.091s (+5.4% 🔺) 0.000s (+58.2% 🔺) 1.098s (+4.6%) 0.257s 55 1.18x
💻 Local Express 1.386s (~) 2.014s (~) 0.000s (~) 2.016s (~) 0.630s 30 1.95x
💻 Local Next.js (Turbopack) 1.480s (-0.5%) 2.013s (~) 0.000s (+60.0% 🔺) 2.016s (~) 0.536s 30 2.08x
💻 Local Nitro 1.544s (+11.5% 🔺) 2.048s (+1.7%) 0.000s (-42.1% 🟢) 2.050s (+1.7%) 0.506s 30 2.17x

▲ Production (Vercel)

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 3.845s (+2.7%) 4.927s (-2.0%) 0.000s (-90.9% 🟢) 5.478s (-0.7%) 1.633s 11 1.00x
▲ Vercel Next.js (Turbopack) 4.353s (+3.4%) 5.694s (+13.0% 🔺) 0.000s (NaN%) 6.262s (+14.5% 🔺) 1.909s 10 1.13x
▲ Vercel Express ⚠️ missing - - - - -

🔍 Observability: Nitro | Next.js (Turbopack)

fan-out fan-in 10 streams (1MB each)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.383s (-3.4%) 2.099s (-1.6%) 0.000s (-100.0% 🟢) 2.114s (-2.2%) 0.731s 29 1.00x
🐘 Postgres Nitro 1.397s (-27.5% 🟢) 2.064s (-11.8% 🟢) 0.000s (-10.3% 🟢) 2.079s (-12.2% 🟢) 0.683s 29 1.01x
🐘 Postgres Next.js (Turbopack) 1.888s (+11.2% 🔺) 2.403s (+8.4% 🔺) 0.000s (+236.0% 🔺) 2.421s (+8.0% 🔺) 0.533s 25 1.36x
💻 Local Express 3.033s (-1.2%) 3.776s (-1.6%) 0.001s (+33.3% 🔺) 3.779s (-1.7%) 0.746s 16 2.19x
💻 Local Nitro 3.228s (+8.7% 🔺) 3.903s (+8.1% 🔺) 0.000s (-7.0% 🟢) 3.905s (+8.0% 🔺) 0.677s 16 2.33x
💻 Local Next.js (Turbopack) 3.580s (+20.7% 🔺) 3.887s (+7.6% 🔺) 0.001s (+95.8% 🔺) 4.232s (+17.0% 🔺) 0.652s 15 2.59x

▲ Production (Vercel)

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 5.722s (-16.6% 🟢) 7.111s (-12.8% 🟢) 0.000s (-56.3% 🟢) 7.603s (-12.3% 🟢) 1.881s 8 1.00x
▲ Vercel Next.js (Turbopack) 7.051s (+6.6% 🔺) 8.441s (+8.5% 🔺) 0.000s (-100.0% 🟢) 8.947s (+9.0% 🔺) 1.895s 7 1.23x
▲ Vercel Express ⚠️ missing - - - - -

🔍 Observability: Nitro | Next.js (Turbopack)

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World 🥇 Fastest Framework Wins
💻 Local Nitro 12/21
🐘 Postgres Express 13/21
▲ Vercel Nitro 15/21
Fastest World by Framework

Winner determined by most benchmark wins

Framework 🥇 Fastest World Wins
Express 🐘 Postgres 14/21
Next.js (Turbopack) 🐘 Postgres 15/21
Nitro 🐘 Postgres 16/21
Column Definitions
  • Workflow Time: Runtime reported by workflow (completedAt - createdAt) - primary metric
  • TTFB: Time to First Byte - time from workflow start until first stream byte received (stream benchmarks only)
  • Slurp: Time from first byte to complete stream consumption (stream benchmarks only)
  • Wall Time: Total testbench time (trigger workflow + poll for result)
  • Overhead: Testbench overhead (Wall Time - Workflow Time)
  • Samples: Number of benchmark iterations run
  • vs Fastest: How much slower compared to the fastest configuration for this benchmark

Worlds:

  • 💻 Local: In-memory filesystem world (local development)
  • 🐘 Postgres: PostgreSQL database world (local development)
  • ▲ Vercel: Vercel production/preview deployment
  • 🌐 Turso: Community world (local development)
  • 🌐 MongoDB: Community world (local development)
  • 🌐 Redis: Community world (local development)
  • 🌐 Jazz: Community world (local development)
  • 🌐 Redis: Community world (local development)
  • 🌐 Redis + BullMQ: Community world (local development)
  • 🌐 Cloudflare: Community world (local development)
  • 🌐 MySQL: Community world (local development)
  • 🌐 Azure: Community world (local development)
  • 🌐 NATS JetStream: Community world (local development)
  • 🌐 Upstash: Community world (local development)

📋 View full workflow run


Some benchmark jobs failed:

  • Local: success
  • Postgres: success
  • Vercel: failure

Check the workflow run for details.

@karthikscale3 karthikscale3 changed the title [codex] Add serializable reviver compatibility check [web-shared][cli][ci] Add serializable reviver compatibility check Jun 4, 2026
@karthikscale3 karthikscale3 marked this pull request as ready for review June 4, 2026 18:55
@karthikscale3 karthikscale3 requested a review from a team as a code owner June 4, 2026 18:55
@karthikscale3 karthikscale3 merged commit 5bf2c16 into main Jun 4, 2026
200 of 210 checks passed
@karthikscale3 karthikscale3 deleted the codex/serializable-reviver-ci branch June 4, 2026 19:50
@github-actions github-actions Bot mentioned this pull request Jun 4, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 4, 2026

Backport to stable failed — the cherry-pick had conflicts that could not be resolved automatically (backport job run).

To resolve manually, push a backport branch and open a PR against stable (the workflow never pushes directly to stable). Note: this repository requires verified signatures on every branch, so your local commits must be signed (git config commit.gpgsign true with a configured GPG/SSH signing key, or git cherry-pick -S).

git fetch origin stable
git checkout -b backport/pr-2250-to-stable origin/stable
git cherry-pick -S 5bf2c167a56298a2480e451c9fba72282f93496a    # -S signs the commit
# Fix conflicts, then:
git add -A
git cherry-pick --continue
git push -u origin backport/pr-2250-to-stable
gh pr create --base stable --head backport/pr-2250-to-stable \
  --title "Backport #2250: <original PR title>" \
  --body "Manual backport of #2250 (cherry-pick 5bf2c167a562) to \`stable\`."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants