Skip to content

Version Packages (beta)#1045

Merged
VaguelySerious merged 1 commit into
mainfrom
changeset-release/main
Feb 19, 2026
Merged

Version Packages (beta)#1045
VaguelySerious merged 1 commit into
mainfrom
changeset-release/main

Conversation

@vercel-release-bot
Copy link
Copy Markdown
Contributor

@vercel-release-bot vercel-release-bot commented Feb 13, 2026

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

⚠️⚠️⚠️⚠️⚠️⚠️

main is currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, run changeset pre exit on main.

⚠️⚠️⚠️⚠️⚠️⚠️

Releases

@workflow/astro@4.0.0-beta.32

Patch Changes

  • Updated dependencies [1c11573, 29347b7]:
    • @workflow/builders@4.0.1-beta.49
    • @workflow/rollup@4.0.0-beta.15
    • @workflow/vite@4.0.0-beta.8

@workflow/builders@4.0.1-beta.49

Patch Changes

@workflow/cli@4.1.0-beta.58

Patch Changes

@workflow/core@4.1.0-beta.58

Patch Changes

  • #978 0d5323c Thanks @TooTallNate! - Refactor serialization code to be asynchronous

  • #1098 7046610 Thanks @pranaygp! - Auto-inject x-workflow-run-id and x-workflow-step-id VQS headers from queue payload in world-vercel

  • #1055 c2b4fe9 Thanks @pranaygp! - Detect and fatal error on orphaned/invalid events in the event log instead of silently hanging

  • #979 6e72b29 Thanks @TooTallNate! - Add World.getEncryptionKeyForRun() and thread encryption key through serialization layer

  • #999 ea3254e Thanks @TooTallNate! - Separate project ID and project name into distinct env vars (WORKFLOW_VERCEL_PROJECT and WORKFLOW_VERCEL_PROJECT_NAME)

  • #1031 1c11573 Thanks @karthikscale3! - Refactor and enhance web-shared observability UI components and update builders base behavior.

  • #1051 9f77380 Thanks @VaguelySerious! - Fix 429 backoff for workflow runtime API calls

  • #1118 852e3f1 Thanks @VaguelySerious! - Do not re-throw error when multiple workflow invocations race to complete the workflow

  • #1057 5e06a7c Thanks @pranaygp! - Materialize waits as entities to prevent duplicate wait_completed events

    • @workflow/core: Handle 409 conflict gracefully when creating wait_completed events, preventing crashes when multiple concurrent invocations race to complete the same wait
    • @workflow/world: Add Wait type, WaitSchema, and WaitStatusSchema exports; add optional wait field to EventResult
    • @workflow/world-local: Materialize wait entities on wait_created/wait_completed with duplicate detection; clean up waits on terminal run states
    • @workflow/world-postgres: Add workflow_waits table with wait_status enum; materialize wait entities with conditional writes for duplicate prevention; clean up waits on terminal run states
  • Updated dependencies [7046610, c2b4fe9, 6e72b29, ea3254e, 29347b7, 5e06a7c, 5487983, 5487983]:

    • @workflow/world-vercel@4.1.0-beta.33
    • @workflow/errors@4.1.0-beta.16
    • @workflow/world@4.1.0-beta.5
    • @workflow/world-local@4.1.0-beta.33

@workflow/errors@4.1.0-beta.16

Patch Changes

  • #1055 c2b4fe9 Thanks @pranaygp! - Detect and fatal error on orphaned/invalid events in the event log instead of silently hanging

@workflow/nest@0.0.0-beta.7

Patch Changes

@workflow/next@4.0.1-beta.54

Patch Changes

@workflow/nitro@4.0.1-beta.53

Patch Changes

@workflow/nuxt@4.0.1-beta.42

Patch Changes

  • Updated dependencies []:
    • @workflow/nitro@4.0.1-beta.53

@workflow/rollup@4.0.0-beta.15

Patch Changes

  • Updated dependencies [1c11573, 29347b7]:
    • @workflow/builders@4.0.1-beta.49

@workflow/sveltekit@4.0.0-beta.47

Patch Changes

  • #1096 29347b7 Thanks @ctgowrie! - Use new Vercel queue client with v2 message format, simplified callback handling, etc.

  • Updated dependencies [1c11573, 29347b7]:

    • @workflow/builders@4.0.1-beta.49
    • @workflow/rollup@4.0.0-beta.15
    • @workflow/vite@4.0.0-beta.8

@workflow/vite@4.0.0-beta.8

Patch Changes

  • Updated dependencies [1c11573, 29347b7]:
    • @workflow/builders@4.0.1-beta.49

@workflow/web@4.1.0-beta.34

Patch Changes

@workflow/web-shared@4.1.0-beta.53

Patch Changes

workflow@4.1.0-beta.58

Patch Changes

@workflow/world@4.1.0-beta.5

Patch Changes

  • #979 6e72b29 Thanks @TooTallNate! - Add World.getEncryptionKeyForRun() and thread encryption key through serialization layer

  • #1057 5e06a7c Thanks @pranaygp! - Materialize waits as entities to prevent duplicate wait_completed events

    • @workflow/core: Handle 409 conflict gracefully when creating wait_completed events, preventing crashes when multiple concurrent invocations race to complete the same wait
    • @workflow/world: Add Wait type, WaitSchema, and WaitStatusSchema exports; add optional wait field to EventResult
    • @workflow/world-local: Materialize wait entities on wait_created/wait_completed with duplicate detection; clean up waits on terminal run states
    • @workflow/world-postgres: Add workflow_waits table with wait_status enum; materialize wait entities with conditional writes for duplicate prevention; clean up waits on terminal run states
  • #1081 5487983 Thanks @TooTallNate! - Add optional close() method to the World interface for releasing resources held by a World implementation

@workflow/world-local@4.1.0-beta.33

Patch Changes

  • #1057 5e06a7c Thanks @pranaygp! - Materialize waits as entities to prevent duplicate wait_completed events

    • @workflow/core: Handle 409 conflict gracefully when creating wait_completed events, preventing crashes when multiple concurrent invocations race to complete the same wait
    • @workflow/world: Add Wait type, WaitSchema, and WaitStatusSchema exports; add optional wait field to EventResult
    • @workflow/world-local: Materialize wait entities on wait_created/wait_completed with duplicate detection; clean up waits on terminal run states
    • @workflow/world-postgres: Add workflow_waits table with wait_status enum; materialize wait entities with conditional writes for duplicate prevention; clean up waits on terminal run states
  • #1081 5487983 Thanks @TooTallNate! - Implement World.close() to close the undici HTTP agent; refactor agent from module-level singleton to instance-scoped

  • Updated dependencies [c2b4fe9, 6e72b29, 5e06a7c, 5487983]:

    • @workflow/errors@4.1.0-beta.16
    • @workflow/world@4.1.0-beta.5

@workflow/world-postgres@4.1.0-beta.35

Patch Changes

  • #1057 5e06a7c Thanks @pranaygp! - Materialize waits as entities to prevent duplicate wait_completed events

    • @workflow/core: Handle 409 conflict gracefully when creating wait_completed events, preventing crashes when multiple concurrent invocations race to complete the same wait
    • @workflow/world: Add Wait type, WaitSchema, and WaitStatusSchema exports; add optional wait field to EventResult
    • @workflow/world-local: Materialize wait entities on wait_created/wait_completed with duplicate detection; clean up waits on terminal run states
    • @workflow/world-postgres: Add workflow_waits table with wait_status enum; materialize wait entities with conditional writes for duplicate prevention; clean up waits on terminal run states
  • #1081 5487983 Thanks @TooTallNate! - Implement World.close() to stop PgBoss and close the postgres connection pool so the process can exit cleanly

  • Updated dependencies [c2b4fe9, 6e72b29, 5e06a7c, 5487983, 5487983]:

    • @workflow/errors@4.1.0-beta.16
    • @workflow/world@4.1.0-beta.5
    • @workflow/world-local@4.1.0-beta.33

@workflow/world-testing@4.1.0-beta.59

Patch Changes

@workflow/world-vercel@4.1.0-beta.33

Patch Changes

  • #1098 7046610 Thanks @pranaygp! - Auto-inject x-workflow-run-id and x-workflow-step-id VQS headers from queue payload in world-vercel

  • #999 ea3254e Thanks @TooTallNate! - Separate project ID and project name into distinct env vars (WORKFLOW_VERCEL_PROJECT and WORKFLOW_VERCEL_PROJECT_NAME)

  • #1096 29347b7 Thanks @ctgowrie! - Use new Vercel queue client with v2 message format, simplified callback handling, etc.

  • Updated dependencies [c2b4fe9, 6e72b29, 5e06a7c, 5487983]:

    • @workflow/errors@4.1.0-beta.16
    • @workflow/world@4.1.0-beta.5

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Feb 13, 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, Open in v0 Feb 19, 2026 10:27pm
example-nextjs-workflow-webpack Ready Ready Preview, Comment, Open in v0 Feb 19, 2026 10:27pm
example-workflow Ready Ready Preview, Comment, Open in v0 Feb 19, 2026 10:27pm
workbench-astro-workflow Ready Ready Preview, Comment, Open in v0 Feb 19, 2026 10:27pm
workbench-express-workflow Ready Ready Preview, Comment, Open in v0 Feb 19, 2026 10:27pm
workbench-fastify-workflow Ready Ready Preview, Comment, Open in v0 Feb 19, 2026 10:27pm
workbench-hono-workflow Ready Ready Preview, Comment, Open in v0 Feb 19, 2026 10:27pm
workbench-nitro-workflow Ready Ready Preview, Comment, Open in v0 Feb 19, 2026 10:27pm
workbench-nuxt-workflow Ready Ready Preview, Comment, Open in v0 Feb 19, 2026 10:27pm
workbench-sveltekit-workflow Ready Ready Preview, Comment, Open in v0 Feb 19, 2026 10:27pm
workbench-vite-workflow Ready Ready Preview, Comment, Open in v0 Feb 19, 2026 10:27pm
workflow-docs Ready Ready Preview, Comment, Open in v0 Feb 19, 2026 10:27pm
workflow-nest Ready Ready Preview, Comment, Open in v0 Feb 19, 2026 10:27pm
workflow-swc-playground Ready Ready Preview, Comment, Open in v0 Feb 19, 2026 10:27pm

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 13, 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.033s (+20.3% 🔺) 1.005s (~) 0.972s 10 1.00x
💻 Local Nitro 0.034s (+5.6% 🔺) 1.005s (~) 0.971s 10 1.03x
💻 Local Next.js (Turbopack) 0.041s 1.005s 0.964s 10 1.22x
🌐 Redis Next.js (Turbopack) 0.049s 1.005s 0.956s 10 1.48x
🌐 MongoDB Next.js (Turbopack) 0.096s 1.008s 0.912s 10 2.90x
🐘 Postgres Express 0.096s (+5.5% 🔺) 1.010s (~) 0.913s 10 2.90x
🐘 Postgres Nitro 0.367s (+74.0% 🔺) 1.012s (~) 0.645s 10 11.04x
🐘 Postgres Next.js (Turbopack) ⚠️ missing - - - -

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 0.548s (-8.6% 🟢) 1.946s (-2.5%) 1.397s 10 1.00x
▲ Vercel Next.js (Turbopack) 0.627s (-9.2% 🟢) 1.918s (-10.4% 🟢) 1.291s 10 1.14x
▲ Vercel Express 0.629s (-16.3% 🟢) 1.876s (-7.9% 🟢) 1.247s 10 1.15x

🔍 Observability: Nitro | Next.js (Turbopack) | Express

workflow with 1 step

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Next.js (Turbopack) 1.100s 2.005s 0.906s 10 1.00x
🌐 Redis Next.js (Turbopack) 1.106s 2.006s 0.900s 10 1.01x
💻 Local Nitro 1.109s (~) 2.005s (~) 0.895s 10 1.01x
💻 Local Express 1.110s (+2.8%) 2.006s (~) 0.896s 10 1.01x
🌐 MongoDB Next.js (Turbopack) 1.313s 2.009s 0.696s 10 1.19x
🐘 Postgres Nitro 2.015s (-17.3% 🟢) 2.314s (-23.3% 🟢) 0.298s 10 1.83x
🐘 Postgres Express 2.468s (~) 3.014s (~) 0.547s 10 2.24x
🐘 Postgres Next.js (Turbopack) ⚠️ missing - - - -

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 3.951s (+64.3% 🔺) 4.824s (+53.3% 🔺) 0.873s 10 1.00x
▲ Vercel Nitro 4.154s (+67.6% 🔺) 5.038s (+44.5% 🔺) 0.884s 10 1.05x
▲ Vercel Next.js (Turbopack) 4.443s (+70.9% 🔺) 5.481s (+59.8% 🔺) 1.038s 10 1.12x

🔍 Observability: Express | Nitro | Next.js (Turbopack)

workflow with 10 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Next.js (Turbopack) 10.706s 11.021s 0.315s 3 1.00x
🌐 Redis Next.js (Turbopack) 10.724s 11.023s 0.298s 3 1.00x
💻 Local Express 10.847s (+2.5%) 11.022s (~) 0.175s 3 1.01x
💻 Local Nitro 10.861s (~) 11.023s (~) 0.162s 3 1.01x
🌐 MongoDB Next.js (Turbopack) 12.290s 13.024s 0.734s 3 1.15x
🐘 Postgres Nitro 14.836s (-26.9% 🟢) 15.047s (-28.5% 🟢) 0.210s 2 1.39x
🐘 Postgres Express 20.323s (~) 21.060s (~) 0.736s 2 1.90x
🐘 Postgres Next.js (Turbopack) ⚠️ missing - - - -

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 17.822s (-6.0% 🟢) 18.699s (-7.6% 🟢) 0.877s 2 1.00x
▲ Vercel Express 18.160s (-1.2%) 18.888s (-4.5%) 0.728s 2 1.02x
▲ Vercel Nitro 20.070s (+9.3% 🔺) 21.048s (+7.4% 🔺) 0.978s 2 1.13x

🔍 Observability: Next.js (Turbopack) | Express | Nitro

workflow with 25 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 26.890s 27.049s 0.159s 3 1.00x
💻 Local Next.js (Turbopack) 27.176s 28.050s 0.874s 3 1.01x
💻 Local Nitro 27.549s (~) 28.053s (~) 0.503s 3 1.02x
💻 Local Express 27.560s (+2.5%) 28.053s (+3.7%) 0.493s 3 1.02x
🌐 MongoDB Next.js (Turbopack) 30.593s 31.044s 0.451s 2 1.14x
🐘 Postgres Nitro 37.612s (-25.4% 🟢) 38.091s (-25.5% 🟢) 0.479s 2 1.40x
🐘 Postgres Express 50.339s (~) 51.133s (+1.0%) 0.794s 2 1.87x
🐘 Postgres Next.js (Turbopack) ⚠️ missing - - - -

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 43.196s (-4.8%) 44.736s (-3.2%) 1.541s 2 1.00x
▲ Vercel Express 43.486s (-3.0%) 44.442s (-3.5%) 0.956s 2 1.01x
▲ Vercel Nitro 43.603s (-1.0%) 44.727s (-1.5%) 1.124s 2 1.01x

🔍 Observability: Next.js (Turbopack) | Express | Nitro

workflow with 50 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 54.297s 55.101s 0.804s 2 1.00x
💻 Local Next.js (Turbopack) 56.788s 57.100s 0.311s 2 1.05x
💻 Local Nitro 57.319s (~) 58.105s (~) 0.787s 2 1.06x
💻 Local Express 57.459s (+2.6%) 58.105s (+3.6%) 0.645s 2 1.06x
🌐 MongoDB Next.js (Turbopack) 61.276s 62.087s 0.810s 2 1.13x
🐘 Postgres Nitro 83.579s (-16.7% 🟢) 84.199s (-16.8% 🟢) 0.620s 2 1.54x
🐘 Postgres Express 94.741s (-5.4% 🟢) 95.233s (-5.0%) 0.492s 1 1.74x
🐘 Postgres Next.js (Turbopack) ⚠️ missing - - - -

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 89.567s (~) 90.243s (-0.9%) 0.676s 1 1.00x
▲ Vercel Nitro 90.334s (~) 91.272s (~) 0.938s 1 1.01x
▲ Vercel Next.js (Turbopack) 94.106s (+1.9%) 94.781s (+1.5%) 0.675s 1 1.05x

🔍 Observability: Express | Nitro | Next.js (Turbopack)

Promise.all with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 1.247s 2.006s 0.759s 15 1.00x
💻 Local Nitro 1.397s (-1.1%) 2.005s (~) 0.608s 15 1.12x
💻 Local Express 1.403s (+2.3%) 2.005s (~) 0.602s 15 1.12x
💻 Local Next.js (Turbopack) 1.412s 2.005s 0.593s 15 1.13x
🐘 Postgres Express 2.056s (-7.9% 🟢) 2.512s (-16.6% 🟢) 0.456s 12 1.65x
🌐 MongoDB Next.js (Turbopack) 2.153s 3.009s 0.856s 10 1.73x
🐘 Postgres Nitro 2.418s (~) 3.014s (~) 0.596s 10 1.94x
🐘 Postgres Next.js (Turbopack) ⚠️ missing - - - -

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 2.526s (-1.6%) 3.236s (-6.4% 🟢) 0.709s 10 1.00x
▲ Vercel Nitro 2.527s (-1.7%) 3.229s (-5.7% 🟢) 0.702s 10 1.00x
▲ Vercel Next.js (Turbopack) 2.763s (-10.2% 🟢) 3.600s (-13.4% 🟢) 0.837s 9 1.09x

🔍 Observability: Express | Nitro | Next.js (Turbopack)

Promise.all with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 2.494s 3.008s 0.513s 10 1.00x
💻 Local Next.js (Turbopack) 2.526s 3.007s 0.481s 10 1.01x
💻 Local Nitro 2.577s (-1.6%) 3.007s (~) 0.431s 10 1.03x
💻 Local Express 2.638s (+12.4% 🔺) 3.007s (~) 0.370s 10 1.06x
🌐 MongoDB Next.js (Turbopack) 4.839s 5.346s 0.507s 6 1.94x
🐘 Postgres Nitro 7.490s (-21.6% 🟢) 8.029s (-20.0% 🟢) 0.539s 4 3.00x
🐘 Postgres Express 9.982s (+13.7% 🔺) 10.371s (+11.7% 🔺) 0.389s 3 4.00x
🐘 Postgres Next.js (Turbopack) ⚠️ missing - - - -

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 3.132s (+7.2% 🔺) 4.164s (+6.5% 🔺) 1.032s 8 1.00x
▲ Vercel Next.js (Turbopack) 3.440s (+25.4% 🔺) 4.608s (+26.8% 🔺) 1.168s 7 1.10x
▲ Vercel Nitro 3.442s (-14.8% 🟢) 4.280s (-20.0% 🟢) 0.838s 8 1.10x

🔍 Observability: Express | Next.js (Turbopack) | Nitro

Promise.all with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 4.047s 4.725s 0.677s 7 1.00x
💻 Local Nitro 6.850s (-7.9% 🟢) 7.766s (-3.2%) 0.917s 4 1.69x
💻 Local Next.js (Turbopack) 7.480s 8.017s 0.537s 4 1.85x
💻 Local Express 7.788s (+20.3% 🔺) 8.018s (+14.3% 🔺) 0.230s 4 1.92x
🌐 MongoDB Next.js (Turbopack) 10.012s 10.683s 0.671s 3 2.47x
🐘 Postgres Express 38.201s (-18.5% 🟢) 39.097s (-17.0% 🟢) 0.896s 1 9.44x
🐘 Postgres Nitro 45.981s (~) 46.122s (~) 0.141s 1 11.36x
🐘 Postgres Next.js (Turbopack) ⚠️ missing - - - -

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 7.837s (+114.9% 🔺) 8.751s (+87.8% 🔺) 0.914s 4 1.00x
▲ Vercel Nitro 14.359s (+252.5% 🔺) 15.176s (+194.4% 🔺) 0.817s 3 1.83x
▲ Vercel Next.js (Turbopack) 18.696s (+346.5% 🔺) 19.284s (+269.4% 🔺) 0.588s 2 2.39x

🔍 Observability: Express | Nitro | Next.js (Turbopack)

Promise.race with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 1.252s 2.006s 0.754s 15 1.00x
💻 Local Next.js (Turbopack) 1.415s 2.005s 0.591s 15 1.13x
💻 Local Nitro 1.431s (+1.8%) 2.005s (~) 0.574s 15 1.14x
💻 Local Express 1.436s (+4.7%) 2.005s (~) 0.569s 15 1.15x
🐘 Postgres Nitro 1.960s (+8.4% 🔺) 2.600s (+8.3% 🔺) 0.640s 12 1.57x
🐘 Postgres Express 2.033s (-6.7% 🟢) 2.515s (-8.2% 🟢) 0.482s 12 1.62x
🌐 MongoDB Next.js (Turbopack) 2.157s 3.008s 0.851s 10 1.72x
🐘 Postgres Next.js (Turbopack) ⚠️ missing - - - -

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 2.429s (-0.8%) 3.303s (-5.3% 🟢) 0.874s 10 1.00x
▲ Vercel Nitro 3.160s (+32.0% 🔺) 4.066s (+20.5% 🔺) 0.906s 8 1.30x
▲ Vercel Express 4.520s (+55.4% 🔺) 5.513s (+44.5% 🔺) 0.993s 6 1.86x

🔍 Observability: Next.js (Turbopack) | Nitro | Express

Promise.race with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 2.519s 3.008s 0.489s 10 1.00x
💻 Local Next.js (Turbopack) 2.535s 3.009s 0.474s 10 1.01x
💻 Local Nitro 2.602s (-3.5%) 3.008s (~) 0.405s 10 1.03x
💻 Local Express 2.744s (+10.5% 🔺) 3.008s (~) 0.264s 10 1.09x
🌐 MongoDB Next.js (Turbopack) 4.759s 5.178s 0.420s 6 1.89x
🐘 Postgres Nitro 9.602s (-15.6% 🟢) 10.363s (-13.9% 🟢) 0.761s 3 3.81x
🐘 Postgres Express 11.747s (-4.3%) 12.033s (-2.7%) 0.286s 3 4.66x
🐘 Postgres Next.js (Turbopack) ⚠️ missing - - - -

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 2.551s (-14.9% 🟢) 3.481s (-8.3% 🟢) 0.931s 9 1.00x
▲ Vercel Nitro 3.381s (+38.6% 🔺) 4.096s (+24.5% 🔺) 0.715s 8 1.33x
▲ Vercel Next.js (Turbopack) 5.007s (+73.5% 🔺) 6.161s (+60.4% 🔺) 1.154s 6 1.96x

🔍 Observability: Express | Nitro | Next.js (Turbopack)

Promise.race with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Redis 🥇 Next.js (Turbopack) 4.128s 4.867s 0.739s 7 1.00x
💻 Local Nitro 7.375s (-7.1% 🟢) 8.021s (-3.0%) 0.646s 4 1.79x
💻 Local Next.js (Turbopack) 7.681s 8.015s 0.334s 4 1.86x
💻 Local Express 8.299s (+14.4% 🔺) 8.774s (+9.4% 🔺) 0.475s 4 2.01x
🌐 MongoDB Next.js (Turbopack) 10.025s 10.684s 0.659s 3 2.43x
🐘 Postgres Nitro 50.642s (+3.1%) 51.135s (+2.0%) 0.493s 1 12.27x
🐘 Postgres Express 53.673s (+8.9% 🔺) 54.152s (+8.0% 🔺) 0.479s 1 13.00x
🐘 Postgres Next.js (Turbopack) ⚠️ missing - - - -

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 9.622s (+33.3% 🔺) 10.440s (+21.9% 🔺) 0.818s 3 1.00x
▲ Vercel Express 13.276s (+203.5% 🔺) 14.155s (+158.4% 🔺) 0.880s 3 1.38x
▲ Vercel Nitro 15.088s (+109.7% 🔺) 16.156s (+89.1% 🔺) 1.068s 2 1.57x

🔍 Observability: Next.js (Turbopack) | Express | Nitro

Stream Benchmarks (includes TTFB metrics)
workflow with stream

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Next.js (Turbopack) 0.142s 1.001s 0.011s 1.016s 0.875s 10 1.00x
🌐 Redis Next.js (Turbopack) 0.143s 1.000s 0.001s 1.007s 0.864s 10 1.01x
💻 Local Express 0.176s (+53.0% 🔺) 1.002s (~) 0.011s (+4.6%) 1.017s (~) 0.841s 10 1.24x
💻 Local Nitro 0.181s (+4.3%) 1.002s (~) 0.010s (-5.6% 🟢) 1.016s (~) 0.835s 10 1.28x
🌐 MongoDB Next.js (Turbopack) 0.493s 0.957s 0.002s 1.010s 0.516s 10 3.48x
🐘 Postgres Express 1.364s (-40.5% 🟢) 1.720s (-37.5% 🟢) 0.001s (~) 2.013s (-33.2% 🟢) 0.649s 10 9.63x
🐘 Postgres Nitro 1.399s (-42.9% 🟢) 1.642s (-36.6% 🟢) 0.001s (-15.4% 🟢) 2.013s (-33.2% 🟢) 0.614s 10 9.88x
🐘 Postgres Next.js (Turbopack) ⚠️ missing - - - - -

▲ Production (Vercel)

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 2.050s (-5.8% 🟢) 2.615s (-6.4% 🟢) 0.221s (-20.2% 🟢) 3.397s (-7.6% 🟢) 1.347s 10 1.00x
▲ Vercel Next.js (Turbopack) 2.288s (-3.2%) 3.156s (+18.5% 🔺) 0.216s (-19.6% 🟢) 3.976s (+10.7% 🔺) 1.688s 10 1.12x
▲ Vercel Nitro 2.572s (+20.5% 🔺) 2.958s (+12.2% 🔺) 0.183s (-27.7% 🟢) 3.721s (+8.0% 🔺) 1.149s 10 1.25x

🔍 Observability: Express | Next.js (Turbopack) | Nitro

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World 🥇 Fastest Framework Wins
💻 Local Next.js (Turbopack) 8/12
🐘 Postgres Nitro 8/12
▲ Vercel Express 7/12
Fastest World by Framework

Winner determined by most benchmark wins

Framework 🥇 Fastest World Wins
Express 💻 Local 11/12
Next.js (Turbopack) 🌐 Redis 8/12
Nitro 💻 Local 12/12
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)

📋 View full workflow run

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 13, 2026

🧪 E2E Test Results

Some tests failed

Summary

Passed Failed Skipped Total
✅ ▲ Vercel Production 501 0 38 539
✅ 💻 Local Development 520 0 68 588
❌ 📦 Local Production 475 45 68 588
❌ 🐘 Local Postgres 475 45 68 588
✅ 🪟 Windows 46 0 3 49
❌ 🌍 Community Worlds 105 42 9 156
✅ 📋 Other 126 0 21 147
Total 2248 132 275 2655

❌ Failed Tests

📦 Local Production (45 failed)

nextjs-turbopack-canary (45 failed):

  • addTenWorkflow
  • addTenWorkflow
  • should work with react rendering in step
  • promiseAllWorkflow
  • promiseRaceWorkflow
  • promiseAnyWorkflow
  • hookWorkflow
  • webhookWorkflow
  • webhook route with invalid token
  • sleepingWorkflow
  • nullByteWorkflow
  • workflowAndStepMetadataWorkflow
  • fetchWorkflow
  • promiseRaceStressTestWorkflow
  • error handling error propagation workflow errors nested function calls preserve message and stack trace
  • error handling error propagation workflow errors cross-file imports preserve message and stack trace
  • error handling error propagation step errors basic step error preserves message and stack trace
  • error handling error propagation step errors cross-file step error preserves message and function names in stack
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior FatalError fails immediately without retries
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • error handling retry behavior maxRetries=0 disables retries
  • error handling retry behavior workflow completes despite transient 5xx on step_completed
  • error handling catchability FatalError can be caught and detected with FatalError.is()
  • hookCleanupTestWorkflow - hook token reuse after workflow completion
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously
  • stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars)
  • stepFunctionWithClosureWorkflow - step function with closure variables passed as argument
  • closureVariableWorkflow - nested step functions with closure variables
  • spawnWorkflowFromStepWorkflow - spawning a child workflow using start() inside a step
  • health check endpoint (HTTP) - workflow and step endpoints respond to __health query parameter
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • pathsAliasWorkflow - TypeScript path aliases resolve correctly
  • Calculator.calculate - static workflow method using static step methods from another class
  • AllInOneService.processNumber - static workflow method using sibling static step methods
  • ChainableService.processWithThis - static step methods using this to reference the class
  • thisSerializationWorkflow - step function invoked with .call() and .apply()
  • customSerializationWorkflow - custom class serialization with WORKFLOW_SERIALIZE/WORKFLOW_DESERIALIZE
  • instanceMethodStepWorkflow - instance methods with "use step" directive
  • crossContextSerdeWorkflow - classes defined in step code are deserializable in workflow context
  • stepFunctionAsStartArgWorkflow - step function reference passed as start() argument
  • pages router addTenWorkflow via pages router
  • pages router promiseAllWorkflow via pages router
  • pages router sleepingWorkflow via pages router
🐘 Local Postgres (45 failed)

nextjs-turbopack-canary (45 failed):

  • addTenWorkflow
  • addTenWorkflow
  • should work with react rendering in step
  • promiseAllWorkflow
  • promiseRaceWorkflow
  • promiseAnyWorkflow
  • hookWorkflow
  • webhookWorkflow
  • webhook route with invalid token
  • sleepingWorkflow
  • nullByteWorkflow
  • workflowAndStepMetadataWorkflow
  • fetchWorkflow
  • promiseRaceStressTestWorkflow
  • error handling error propagation workflow errors nested function calls preserve message and stack trace
  • error handling error propagation workflow errors cross-file imports preserve message and stack trace
  • error handling error propagation step errors basic step error preserves message and stack trace
  • error handling error propagation step errors cross-file step error preserves message and function names in stack
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior FatalError fails immediately without retries
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • error handling retry behavior maxRetries=0 disables retries
  • error handling retry behavior workflow completes despite transient 5xx on step_completed
  • error handling catchability FatalError can be caught and detected with FatalError.is()
  • hookCleanupTestWorkflow - hook token reuse after workflow completion
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously
  • stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars)
  • stepFunctionWithClosureWorkflow - step function with closure variables passed as argument
  • closureVariableWorkflow - nested step functions with closure variables
  • spawnWorkflowFromStepWorkflow - spawning a child workflow using start() inside a step
  • health check endpoint (HTTP) - workflow and step endpoints respond to __health query parameter
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • pathsAliasWorkflow - TypeScript path aliases resolve correctly
  • Calculator.calculate - static workflow method using static step methods from another class
  • AllInOneService.processNumber - static workflow method using sibling static step methods
  • ChainableService.processWithThis - static step methods using this to reference the class
  • thisSerializationWorkflow - step function invoked with .call() and .apply()
  • customSerializationWorkflow - custom class serialization with WORKFLOW_SERIALIZE/WORKFLOW_DESERIALIZE
  • instanceMethodStepWorkflow - instance methods with "use step" directive
  • crossContextSerdeWorkflow - classes defined in step code are deserializable in workflow context
  • stepFunctionAsStartArgWorkflow - step function reference passed as start() argument
  • pages router addTenWorkflow via pages router
  • pages router promiseAllWorkflow via pages router
  • pages router sleepingWorkflow via pages router
🌍 Community Worlds (42 failed)

turso (42 failed):

  • addTenWorkflow
  • addTenWorkflow
  • should work with react rendering in step
  • promiseAllWorkflow
  • promiseRaceWorkflow
  • promiseAnyWorkflow
  • hookWorkflow
  • webhookWorkflow
  • sleepingWorkflow
  • nullByteWorkflow
  • workflowAndStepMetadataWorkflow
  • fetchWorkflow
  • promiseRaceStressTestWorkflow
  • error handling error propagation workflow errors nested function calls preserve message and stack trace
  • error handling error propagation workflow errors cross-file imports preserve message and stack trace
  • error handling error propagation step errors basic step error preserves message and stack trace
  • error handling error propagation step errors cross-file step error preserves message and function names in stack
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior FatalError fails immediately without retries
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • error handling retry behavior maxRetries=0 disables retries
  • error handling retry behavior workflow completes despite transient 5xx on step_completed
  • error handling catchability FatalError can be caught and detected with FatalError.is()
  • hookCleanupTestWorkflow - hook token reuse after workflow completion
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously
  • stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars)
  • stepFunctionWithClosureWorkflow - step function with closure variables passed as argument
  • closureVariableWorkflow - nested step functions with closure variables
  • spawnWorkflowFromStepWorkflow - spawning a child workflow using start() inside a step
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • pathsAliasWorkflow - TypeScript path aliases resolve correctly
  • Calculator.calculate - static workflow method using static step methods from another class
  • AllInOneService.processNumber - static workflow method using sibling static step methods
  • ChainableService.processWithThis - static step methods using this to reference the class
  • thisSerializationWorkflow - step function invoked with .call() and .apply()
  • customSerializationWorkflow - custom class serialization with WORKFLOW_SERIALIZE/WORKFLOW_DESERIALIZE
  • instanceMethodStepWorkflow - instance methods with "use step" directive
  • crossContextSerdeWorkflow - classes defined in step code are deserializable in workflow context
  • stepFunctionAsStartArgWorkflow - step function reference passed as start() argument
  • pages router addTenWorkflow via pages router
  • pages router promiseAllWorkflow via pages router
  • pages router sleepingWorkflow via pages router

Details by Category

✅ ▲ Vercel Production
App Passed Failed Skipped
✅ astro 45 0 4
✅ example 45 0 4
✅ express 45 0 4
✅ fastify 45 0 4
✅ hono 45 0 4
✅ nextjs-turbopack 48 0 1
✅ nextjs-webpack 48 0 1
✅ nitro 45 0 4
✅ nuxt 45 0 4
✅ sveltekit 45 0 4
✅ vite 45 0 4
✅ 💻 Local Development
App Passed Failed Skipped
✅ astro-stable 42 0 7
✅ express-stable 42 0 7
✅ fastify-stable 42 0 7
✅ hono-stable 42 0 7
✅ nextjs-turbopack-canary 46 0 3
✅ nextjs-turbopack-stable 46 0 3
✅ nextjs-webpack-canary 46 0 3
✅ nextjs-webpack-stable 46 0 3
✅ nitro-stable 42 0 7
✅ nuxt-stable 42 0 7
✅ sveltekit-stable 42 0 7
✅ vite-stable 42 0 7
❌ 📦 Local Production
App Passed Failed Skipped
✅ astro-stable 42 0 7
✅ express-stable 42 0 7
✅ fastify-stable 42 0 7
✅ hono-stable 42 0 7
❌ nextjs-turbopack-canary 1 45 3
✅ nextjs-turbopack-stable 46 0 3
✅ nextjs-webpack-canary 46 0 3
✅ nextjs-webpack-stable 46 0 3
✅ nitro-stable 42 0 7
✅ nuxt-stable 42 0 7
✅ sveltekit-stable 42 0 7
✅ vite-stable 42 0 7
❌ 🐘 Local Postgres
App Passed Failed Skipped
✅ astro-stable 42 0 7
✅ express-stable 42 0 7
✅ fastify-stable 42 0 7
✅ hono-stable 42 0 7
❌ nextjs-turbopack-canary 1 45 3
✅ nextjs-turbopack-stable 46 0 3
✅ nextjs-webpack-canary 46 0 3
✅ nextjs-webpack-stable 46 0 3
✅ nitro-stable 42 0 7
✅ nuxt-stable 42 0 7
✅ sveltekit-stable 42 0 7
✅ vite-stable 42 0 7
✅ 🪟 Windows
App Passed Failed Skipped
✅ nextjs-turbopack 46 0 3
❌ 🌍 Community Worlds
App Passed Failed Skipped
✅ mongodb-dev 3 0 0
✅ mongodb 46 0 3
✅ redis-dev 3 0 0
✅ redis 46 0 3
✅ turso-dev 3 0 0
❌ turso 4 42 3
✅ 📋 Other
App Passed Failed Skipped
✅ e2e-local-dev-nest-stable 42 0 7
✅ e2e-local-postgres-nest-stable 42 0 7
✅ e2e-local-prod-nest-stable 42 0 7

📋 View full workflow run


Some E2E test jobs failed:

  • Vercel Prod: success
  • Local Dev: success
  • Local Prod: failure
  • Local Postgres: failure
  • Windows: success

Check the workflow run for details.

@github-actions github-actions Bot force-pushed the changeset-release/main branch from 96e8785 to e506eb1 Compare February 13, 2026 21:47
@github-actions github-actions Bot force-pushed the changeset-release/main branch from d118f93 to 55340da Compare February 13, 2026 22:04
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 55340da to 63cb5c3 Compare February 13, 2026 22:21
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 63cb5c3 to d1bb002 Compare February 13, 2026 22:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants