Skip to content

fix(core): add world-init side-effect module to fix cold-start MODULE_NOT_FOUND#1951

Draft
VaguelySerious wants to merge 3 commits intomainfrom
peter/fix-cold-start-world-init
Draft

fix(core): add world-init side-effect module to fix cold-start MODULE_NOT_FOUND#1951
VaguelySerious wants to merge 3 commits intomainfrom
peter/fix-cold-start-world-init

Conversation

@VaguelySerious
Copy link
Copy Markdown
Member

Summary

Fixes a v2-flow cold-start regression where the first server request through start() on a fresh function instance throws:

POST /api/review/submit -> 500
{"status":"error","message":"Failed to start PR workflow",
 "error":"Cannot find module './world.js'"}
  at .next/server/app/api/review/submit/route.js:25:11
  at async getWorldLazy (.../runtime/get-world-lazy.js:42:26)

Reproduced in vade-review against the latest workflow tarballs.

Why it happens

getWorldLazy() was designed around two paths: the globalThis cache (populated by world.ts's module-load side effect) or a runtime-built dynamic import('./world.js') as a last resort.

Both fail on a cold serverless invocation when the consumer only uses start:

  1. Tree-shaking drops world.ts. Webpack/Turbopack walk workflow/api → @workflow/core/runtime → start.ts. The named import { getWorld } from './runtime/world.js' in runtime.ts is unused after tree-shaking the re-export, so the bundler removes the entire import — taking world.ts's module evaluation with it. The globalThis[GetWorldFnKey] ??= getWorld registration never fires.

  2. The dynamic-import fallback can't survive bundling. The specifier ./world.js is built at runtime to evade bundler tracing, but webpack inlines get-world-lazy.js into the bundled route file. At runtime the relative specifier resolves against /var/task/<app>/.next/server/app/<route>/route.js, where no sibling world.js exists. Node throws MODULE_NOT_FOUND.

The symptom is flake-shaped: once any other code path (queue-driven /flow, an admin route that uses getWorld directly, …) has loaded world.ts, subsequent calls succeed for the rest of the process lifetime — so dev environments where everything tends to be warmed don't reproduce, but first prod traffic into a fresh function does.

Fix

A new server-only side-effect module @workflow/core/runtime/world-init:

// packages/core/src/runtime/world-init.ts
import './world.js';

Imported once from packages/workflow/src/api.ts (the host file behind workflow/api's default condition):

// Side-effect import: ensure `world.ts` is loaded so its module-load
// `globalThis[GetWorldFnKey] ??= getWorld` registration fires before any
// host route reaches `getWorldLazy()`. […]
import '@workflow/core/runtime/world-init';

VM and step bundles continue to skip world.ts: the export is resolved via the workflow condition to dist/workflow/world-init-stub.js, an empty module. The matching api-workflow.ts (the workflow condition entry for workflow/api) does not import world-init at all, so it stays out of the sandbox bundle entirely.

Why a separate module instead of importing ./world.js directly

world.ts is internal to @workflow/core and not part of the public exports surface. A dedicated public init entry:

  • Keeps the side-effect intent obvious to anyone reading workflow/api.
  • Lets the workflow export condition route to a stub for VM/step bundles.
  • Gives us a single place to anchor a regression test (world-init.test.ts) against the cross-module global handshake.

Reverification (end-to-end against vade-review)

Built the change into local tarballs via tarballs/scripts/pack.ts, served them locally, switched vade-review to point at them, then:

Bundle createLocalWorld createVercelWorld GetWorldFnKey
@workflow/core vendor chunk in route bundle (server) 0 → 1 0 → 1 0 → 3
flow/route.js (workflow VM) 0 (unchanged) 0 (unchanged) 0 (unchanged)
__step_registrations.js (step bundle) 0 (unchanged) 0 (unchanged) 0 (unchanged)

And the runtime check:

POST /api/review/submit (cold) -> 200
{"status":"success","runId":"wrun_01KQY45YFR91032VQF3Y3XN6WB", …}

(Same request before the fix returns 500 with Cannot find module './world.js'.)

Tests

packages/core/src/runtime/world-init.test.ts covers:

  1. Importing the module registers getWorld on globalThis.
  2. getWorldLazy() resolves through the registered global (sentinel-based, so a real getWorld() from world.ts can't accidentally satisfy the assertion).
  3. The ??= assignment is idempotent — re-importing does not clobber a prior registration.

pnpm --filter @workflow/core test passes 944/944 unit tests.

The dynamic-import fallback in get-world-lazy.ts is preserved as defense-in-depth for environments outside the documented configurations (CJS test runners, scripts that import deeply into @workflow/core without going through workflow/api, future bundlers with stricter tree-shaking). The docstring on get-world-lazy.ts now spells out the resolution-priority order so future readers understand why all three branches exist.

Maintenance considerations

The fix relies on a precise contract: any host-side entry point that ends up using getWorldLazy() needs to either import @workflow/core/runtime/world-init itself or transitively reach world.ts through a non-tree-shakeable path. The host-side workflow/api covers the common case (every consumer that uses start, getRun, resumeHook, …). A maintenance note in world-init.ts calls this out, and world-init.test.ts is the natural place to add a regression test if a new entry point is added.

Documented in docs/content/docs/changelog/eager-processing.mdx under the new "Cold-Start MODULE_NOT_FOUND: './world.js'" section.

Test plan

  • pnpm --filter @workflow/core test (944/944 pass)
  • pnpm --filter @workflow/core --filter workflow build clean
  • pnpm --filter @workflow/core --filter workflow typecheck clean
  • pnpm biome check (lint clean on changed files)
  • End-to-end smoke against vade-review with local tarballs: cold-start POST /api/review/submit returns 200, workflow runs through inline step executor as expected
  • Static check: workflow VM and step bundles unchanged (no world-init, no world.ts references)
  • CI green
  • e2e suite against deployed tarball preview

🤖 Generated with Claude Code

…_NOT_FOUND

Webpack/Turbopack tree-shake `runtime/world.ts` out of server routes that
only consume `start` (or other `getWorldLazy`-using helpers) from
`workflow/api`. The module-load side effect that registers `getWorld` on
`globalThis[GetWorldFnKey]` never fires, and `getWorldLazy()`'s dynamic
`import('./world.js')` fallback can't recover: the bundler inlined
`get-world-lazy.js` into the route file, so the relative specifier
resolves against `/var/task/<app>/.next/server/app/<route>/route.js`
where no sibling `world.js` exists. Node throws `MODULE_NOT_FOUND`.

The symptom is a cold-start regression: the very first user request
through `start()` on a fresh function instance fails. Once any other
code path (queue-driven `/flow`, an internal admin route that hits
`getWorld` directly, …) has loaded `world.ts`, the rest of the process
lifetime works fine — making this hard to catch in dev but reliable on
first prod traffic.

Reproduced in vade-review against the latest workflow tarballs:

  POST /api/review/submit -> 500
  {"status":"error","message":"Failed to start PR workflow",
   "error":"Cannot find module './world.js'"}
    at .next/server/app/api/review/submit/route.js:25:11
    at async getWorldLazy (.../runtime/get-world-lazy.js:42:26)

# Fix

A new server-only side-effect module `@workflow/core/runtime/world-init`
imports `./world.js` purely to fire its globalThis registration. It is
imported by `packages/workflow/src/api.ts` (the host file behind
`workflow/api`'s `default` condition) so every server bundle that
touches `workflow/api` loads `world.ts` regardless of which named
exports the consumer actually uses.

VM and step bundles continue to skip `world.ts`: the
`@workflow/core/runtime/world-init` export resolves via the `workflow`
condition to `dist/workflow/world-init-stub.js`, an empty module. The
matching `api-workflow.ts` (workflow/api's `workflow` condition entry)
does not import it.

Reverified end-to-end against vade-review with locally-packed tarballs:

- The `@workflow/core` vendor chunk in the host route bundle now
  includes `createLocalWorld`, `createVercelWorld`, and `GetWorldFnKey`
  (all 0 occurrences before this fix).
- The workflow VM bundle (`flow/route.js`) and step registrations
  bundle (`__step_registrations.js`) have 0 references to `world-init`,
  `world.ts`, `createLocalWorld`, or `createVercelWorld` — i.e. no
  regression on the sandbox-bundle hygiene side.
- Cold-start `POST /api/review/submit` succeeds on the first request
  after a fresh server boot (`runId: wrun_…` returned, workflow
  executes inline through the step executor as expected). Same request
  on `main` returns 500 with the MODULE_NOT_FOUND trace above.

# Tests

`world-init.test.ts` covers three contracts:
1. Importing the module registers `getWorld` on `globalThis`.
2. `getWorldLazy()` resolves through the registered global rather than
   falling through to the dynamic-import branch (sentinel-based proof).
3. The `??=` assignment is idempotent — re-importing does not clobber
   a prior registration.

The `getWorldLazy` dynamic-import fallback is preserved as
defense-in-depth for environments outside the documented configurations
(CJS test runners, scripts that import deeply into `@workflow/core`
without going through `workflow/api`).

Documented in `docs/content/docs/changelog/eager-processing.mdx` under
the "Cold-Start `MODULE_NOT_FOUND: './world.js'`" section, with a
maintenance note in `world-init.ts` for anyone adding new
`getWorldLazy` consumers reachable from a host route.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented May 6, 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 May 6, 2026 8:20am
example-nextjs-workflow-webpack Ready Ready Preview, Comment May 6, 2026 8:20am
example-workflow Ready Ready Preview, Comment May 6, 2026 8:20am
workbench-astro-workflow Ready Ready Preview, Comment May 6, 2026 8:20am
workbench-express-workflow Ready Ready Preview, Comment May 6, 2026 8:20am
workbench-fastify-workflow Ready Ready Preview, Comment May 6, 2026 8:20am
workbench-hono-workflow Ready Ready Preview, Comment May 6, 2026 8:20am
workbench-nitro-workflow Ready Ready Preview, Comment May 6, 2026 8:20am
workbench-nuxt-workflow Ready Ready Preview, Comment May 6, 2026 8:20am
workbench-sveltekit-workflow Ready Ready Preview, Comment May 6, 2026 8:20am
workbench-tanstack-start-workflow Ready Ready Preview, Comment May 6, 2026 8:20am
workbench-vite-workflow Ready Ready Preview, Comment May 6, 2026 8:20am
workflow-docs Ready Ready Preview, Comment, Open in v0 May 6, 2026 8:20am
workflow-swc-playground Ready Ready Preview, Comment May 6, 2026 8:20am
workflow-tarballs Ready Ready Preview, Comment May 6, 2026 8:20am
workflow-web Ready Ready Preview, Comment May 6, 2026 8:20am

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 6, 2026

🦋 Changeset detected

Latest commit: 8a033c7

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

This PR includes changesets to release 18 packages
Name Type
@workflow/core Patch
workflow Patch
@workflow/builders Patch
@workflow/cli Patch
@workflow/next Patch
@workflow/nitro Patch
@workflow/vitest Patch
@workflow/web-shared Patch
@workflow/web Patch
@workflow/world-testing Patch
tarballs Patch
@workflow/ai Patch
@workflow/astro Patch
@workflow/nest Patch
@workflow/rollup Patch
@workflow/sveltekit Patch
@workflow/vite Patch
@workflow/nuxt 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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 6, 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.031s (-30.0% 🟢) 1.006s (~) 0.975s 10 1.00x
💻 Local Nitro 0.033s (-24.4% 🟢) 1.006s (~) 0.973s 10 1.05x
🐘 Postgres Express 0.047s (-18.4% 🟢) 1.011s (~) 0.964s 10 1.53x
💻 Local Next.js (Turbopack) 0.052s 1.005s 0.954s 10 1.67x
🌐 Redis Next.js (Turbopack) 0.053s 1.005s 0.952s 10 1.70x
🐘 Postgres Next.js (Turbopack) 0.055s 1.012s 0.957s 10 1.78x
🐘 Postgres Nitro 0.056s (-41.7% 🟢) 1.014s (-2.8%) 0.958s 10 1.79x
🌐 MongoDB Next.js (Turbopack) 0.079s 1.008s 0.929s 10 2.55x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 0.261s (+10.7% 🔺) 2.096s (-1.9%) 1.835s 10 1.00x
▲ Vercel Next.js (Turbopack) 0.735s (+192.1% 🔺) 2.871s (+23.0% 🔺) 2.136s 10 2.82x
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Express | Next.js (Turbopack)

workflow with 1 step

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Express 1.070s (-4.9%) 2.006s (~) 0.936s 10 1.00x
💻 Local Nitro 1.075s (-5.0% 🟢) 2.007s (~) 0.933s 10 1.00x
🐘 Postgres Nitro 1.082s (-5.1% 🟢) 2.009s (~) 0.927s 10 1.01x
🐘 Postgres Express 1.084s (-5.5% 🟢) 2.009s (~) 0.925s 10 1.01x
🌐 Redis Next.js (Turbopack) 1.111s 2.007s 0.896s 10 1.04x
🐘 Postgres Next.js (Turbopack) 1.119s 2.009s 0.891s 10 1.05x
💻 Local Next.js (Turbopack) 1.122s 2.005s 0.884s 10 1.05x
🌐 MongoDB Next.js (Turbopack) 1.172s 2.008s 0.837s 10 1.09x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 1.622s (-13.5% 🟢) 3.906s (+2.6%) 2.284s 10 1.00x
▲ Vercel Next.js (Turbopack) 3.170s (+55.8% 🔺) 4.709s (+22.9% 🔺) 1.538s 10 1.95x
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Express | Next.js (Turbopack)

workflow with 10 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 10.409s (-4.2%) 11.018s (~) 0.608s 3 1.00x
💻 Local Express 10.415s (-4.6%) 11.022s (~) 0.606s 3 1.00x
💻 Local Nitro 10.437s (-4.6%) 11.022s (~) 0.585s 3 1.00x
🐘 Postgres Express 10.442s (-4.8%) 11.016s (~) 0.574s 3 1.00x
🌐 Redis Next.js (Turbopack) 10.672s 11.023s 0.351s 3 1.03x
💻 Local Next.js (Turbopack) 10.673s 11.022s 0.349s 3 1.03x
🐘 Postgres Next.js (Turbopack) 10.702s 11.014s 0.312s 3 1.03x
🌐 MongoDB Next.js (Turbopack) 10.787s 11.018s 0.232s 3 1.04x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 13.124s (-22.7% 🟢) 15.196s (-24.1% 🟢) 2.072s 2 1.00x
▲ Vercel Next.js (Turbopack) 15.618s (-9.8% 🟢) 17.878s (-7.8% 🟢) 2.260s 2 1.19x
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Express | Next.js (Turbopack)

workflow with 25 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Express 13.466s (-10.0% 🟢) 14.026s (-6.7% 🟢) 0.560s 5 1.00x
💻 Local Nitro 13.498s (-10.4% 🟢) 14.028s (-12.5% 🟢) 0.529s 5 1.00x
🐘 Postgres Nitro 13.519s (-7.4% 🟢) 14.023s (-6.7% 🟢) 0.504s 5 1.00x
🐘 Postgres Express 13.520s (-7.3% 🟢) 14.019s (-6.7% 🟢) 0.499s 5 1.00x
🌐 Redis Next.js (Turbopack) 14.032s 14.429s 0.397s 5 1.04x
🐘 Postgres Next.js (Turbopack) 14.117s 15.022s 0.905s 4 1.05x
💻 Local Next.js (Turbopack) 14.117s 15.030s 0.913s 4 1.05x
🌐 MongoDB Next.js (Turbopack) 14.197s 15.023s 0.826s 4 1.05x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 21.633s (-57.0% 🟢) 23.348s (-55.6% 🟢) 1.714s 3 1.00x
▲ Vercel Next.js (Turbopack) 22.882s (-56.5% 🟢) 24.780s (-54.6% 🟢) 1.898s 3 1.06x
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Express | Next.js (Turbopack)

workflow with 50 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Express 11.897s (-28.3% 🟢) 12.021s (-29.4% 🟢) 0.124s 8 1.00x
💻 Local Nitro 11.969s (-28.7% 🟢) 12.398s (-27.2% 🟢) 0.429s 8 1.01x
🐘 Postgres Express 12.028s (-14.1% 🟢) 12.393s (-15.1% 🟢) 0.365s 8 1.01x
🐘 Postgres Nitro 12.049s (-13.7% 🟢) 12.877s (-10.0% 🟢) 0.828s 7 1.01x
💻 Local Next.js (Turbopack) 13.079s 14.028s 0.949s 7 1.10x
🌐 Redis Next.js (Turbopack) 13.210s 13.885s 0.675s 7 1.11x
🐘 Postgres Next.js (Turbopack) 13.281s 14.020s 0.739s 7 1.12x
🌐 MongoDB Next.js (Turbopack) 13.311s 14.021s 0.710s 7 1.12x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 32.557s (-73.1% 🟢) 34.498s (-72.1% 🟢) 1.941s 3 1.00x
▲ Vercel Next.js (Turbopack) 35.922s (-90.9% 🟢) 37.797s (-90.4% 🟢) 1.875s 3 1.10x
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Express | Next.js (Turbopack)

Promise.all with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.141s (-9.5% 🟢) 2.007s (~) 0.867s 15 1.00x
🐘 Postgres Nitro 1.166s (-8.5% 🟢) 2.008s (~) 0.842s 15 1.02x
💻 Local Nitro 1.181s (-27.6% 🟢) 2.006s (-3.3%) 0.825s 15 1.04x
💻 Local Express 1.183s (-20.5% 🟢) 2.006s (~) 0.823s 15 1.04x
🐘 Postgres Next.js (Turbopack) 1.231s 2.007s 0.776s 15 1.08x
🌐 Redis Next.js (Turbopack) 1.267s 2.006s 0.739s 15 1.11x
💻 Local Next.js (Turbopack) 1.290s 2.006s 0.716s 15 1.13x
🌐 MongoDB Next.js (Turbopack) 2.029s 2.827s 0.797s 11 1.78x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 2.941s (+2.8%) 4.792s (+3.7%) 1.851s 7 1.00x
▲ Vercel Next.js (Turbopack) 5.240s (+54.2% 🔺) 7.120s (+44.3% 🔺) 1.880s 5 1.78x
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Express | Next.js (Turbopack)

Promise.all with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.202s (-49.1% 🟢) 2.007s (-33.3% 🟢) 0.806s 15 1.00x
🐘 Postgres Nitro 1.228s (-47.8% 🟢) 2.006s (-33.3% 🟢) 0.779s 15 1.02x
🐘 Postgres Next.js (Turbopack) 1.401s 2.007s 0.606s 15 1.17x
💻 Local Express 1.815s (-38.5% 🟢) 2.073s (-40.0% 🟢) 0.258s 15 1.51x
💻 Local Next.js (Turbopack) 1.822s 2.007s 0.185s 15 1.52x
💻 Local Nitro 1.836s (-41.6% 🟢) 2.072s (-46.7% 🟢) 0.237s 15 1.53x
🌐 Redis Next.js (Turbopack) 2.384s 3.008s 0.624s 10 1.98x
🌐 MongoDB Next.js (Turbopack) 3.579s 4.008s 0.430s 8 2.98x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 4.446s (+22.8% 🔺) 6.238s (+22.1% 🔺) 1.791s 5 1.00x
▲ Vercel Next.js (Turbopack) 6.288s (-11.4% 🟢) 7.619s (-14.4% 🟢) 1.331s 4 1.41x
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Express | Next.js (Turbopack)

Promise.all with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.300s (-62.7% 🟢) 2.007s (-50.0% 🟢) 0.707s 15 1.00x
🐘 Postgres Nitro 1.368s (-60.7% 🟢) 2.007s (-49.9% 🟢) 0.639s 15 1.05x
🐘 Postgres Next.js (Turbopack) 1.688s 2.075s 0.387s 15 1.30x
🌐 Redis Next.js (Turbopack) 3.612s 4.010s 0.398s 8 2.78x
💻 Local Express 5.224s (-37.4% 🟢) 5.680s (-37.1% 🟢) 0.456s 6 4.02x
💻 Local Nitro 5.255s (-37.1% 🟢) 5.847s (-35.2% 🟢) 0.592s 6 4.04x
💻 Local Next.js (Turbopack) 5.581s 6.212s 0.631s 5 4.29x
🌐 MongoDB Next.js (Turbopack) 6.307s 7.013s 0.706s 5 4.85x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 6.111s (-31.5% 🟢) 8.440s (-23.0% 🟢) 2.330s 4 1.00x
▲ Vercel Express 6.314s (+48.9% 🔺) 7.751s (+26.5% 🔺) 1.437s 4 1.03x
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Next.js (Turbopack) | Express

Promise.race with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.151s (-8.4% 🟢) 2.008s (~) 0.857s 15 1.00x
🐘 Postgres Nitro 1.159s (-7.8% 🟢) 2.008s (~) 0.849s 15 1.01x
🌐 Redis Next.js (Turbopack) 1.230s 2.006s 0.776s 15 1.07x
🐘 Postgres Next.js (Turbopack) 1.231s 2.008s 0.777s 15 1.07x
💻 Local Next.js (Turbopack) 1.330s 2.006s 0.676s 15 1.16x
💻 Local Express 1.395s (-26.3% 🟢) 2.006s (-15.1% 🟢) 0.611s 15 1.21x
💻 Local Nitro 1.404s (-24.8% 🟢) 2.007s (-14.3% 🟢) 0.603s 15 1.22x
🌐 MongoDB Next.js (Turbopack) 2.038s 2.826s 0.789s 11 1.77x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 2.910s (+12.7% 🔺) 4.596s (+5.7% 🔺) 1.686s 7 1.00x
▲ Vercel Next.js (Turbopack) 4.495s (+53.3% 🔺) 6.202s (+33.6% 🔺) 1.707s 5 1.54x
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Express | Next.js (Turbopack)

Promise.race with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.207s (-48.5% 🟢) 2.008s (-33.3% 🟢) 0.801s 15 1.00x
🐘 Postgres Nitro 1.230s (-47.4% 🟢) 2.007s (-33.3% 🟢) 0.777s 15 1.02x
🐘 Postgres Next.js (Turbopack) 1.390s 2.009s 0.619s 15 1.15x
💻 Local Express 1.969s (-37.1% 🟢) 2.393s (-36.4% 🟢) 0.424s 13 1.63x
💻 Local Nitro 2.008s (-34.5% 🟢) 2.470s (-36.4% 🟢) 0.462s 13 1.66x
💻 Local Next.js (Turbopack) 2.098s 2.735s 0.637s 11 1.74x
🌐 Redis Next.js (Turbopack) 2.366s 3.008s 0.643s 10 1.96x
🌐 MongoDB Next.js (Turbopack) 3.569s 4.008s 0.440s 8 2.96x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 3.510s (+9.9% 🔺) 5.090s (+6.2% 🔺) 1.580s 7 1.00x
▲ Vercel Next.js (Turbopack) 5.730s (+82.3% 🔺) 7.665s (+69.5% 🔺) 1.935s 4 1.63x
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Express | Next.js (Turbopack)

Promise.race with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.312s (-62.5% 🟢) 2.008s (-49.9% 🟢) 0.695s 15 1.00x
🐘 Postgres Nitro 1.373s (-60.6% 🟢) 2.007s (-49.9% 🟢) 0.635s 15 1.05x
🐘 Postgres Next.js (Turbopack) 1.680s 2.008s 0.328s 15 1.28x
🌐 Redis Next.js (Turbopack) 3.579s 4.010s 0.432s 8 2.73x
💻 Local Next.js (Turbopack) 5.859s 6.413s 0.554s 5 4.47x
💻 Local Express 5.956s (-32.3% 🟢) 6.413s (-30.8% 🟢) 0.457s 5 4.54x
💻 Local Nitro 6.204s (-32.2% 🟢) 6.617s (-34.0% 🟢) 0.413s 5 4.73x
🌐 MongoDB Next.js (Turbopack) 6.331s 7.011s 0.679s 5 4.83x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 5.511s (-14.1% 🟢) 7.422s (-9.2% 🟢) 1.911s 5 1.00x
▲ Vercel Next.js (Turbopack) 6.436s (-4.8%) 8.377s (-2.0%) 1.941s 4 1.17x
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Express | Next.js (Turbopack)

workflow with 10 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 0.450s (-45.1% 🟢) 1.007s (~) 0.557s 60 1.00x
🐘 Postgres Express 0.450s (-46.3% 🟢) 1.024s (~) 0.574s 59 1.00x
💻 Local Express 0.460s (-53.3% 🟢) 1.004s (-6.7% 🟢) 0.544s 60 1.02x
💻 Local Nitro 0.481s (-51.0% 🟢) 1.004s (-8.2% 🟢) 0.523s 60 1.07x
🌐 Redis Next.js (Turbopack) 0.634s 1.004s 0.370s 60 1.41x
🐘 Postgres Next.js (Turbopack) 0.681s 1.007s 0.326s 60 1.51x
🌐 MongoDB Next.js (Turbopack) 0.726s 1.006s 0.280s 60 1.61x
💻 Local Next.js (Turbopack) 0.729s 1.005s 0.276s 60 1.62x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 5.683s (-70.1% 🟢) 7.416s (-65.2% 🟢) 1.733s 9 1.00x
▲ Vercel Next.js (Turbopack) 6.813s (-53.0% 🟢) 8.721s (-45.8% 🟢) 1.908s 7 1.20x
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Express | 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.032s (-47.8% 🟢) 1.631s (-27.7% 🟢) 0.599s 56 1.00x
🐘 Postgres Nitro 1.069s (-44.6% 🟢) 1.807s (-14.0% 🟢) 0.738s 50 1.04x
💻 Local Express 1.170s (-61.2% 🟢) 2.005s (-44.1% 🟢) 0.836s 45 1.13x
💻 Local Nitro 1.198s (-60.5% 🟢) 2.006s (-46.6% 🟢) 0.808s 45 1.16x
🌐 Redis Next.js (Turbopack) 1.606s 2.028s 0.422s 45 1.56x
🐘 Postgres Next.js (Turbopack) 1.633s 2.007s 0.374s 45 1.58x
💻 Local Next.js (Turbopack) 1.794s 2.006s 0.212s 45 1.74x
🌐 MongoDB Next.js (Turbopack) 1.825s 2.007s 0.182s 45 1.77x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 13.395s (-61.2% 🟢) 15.180s (-58.8% 🟢) 1.785s 6 1.00x
▲ Vercel Next.js (Turbopack) 16.377s (-67.1% 🟢) 18.554s (-64.1% 🟢) 2.177s 5 1.22x
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Express | 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.039s (-48.9% 🟢) 2.477s (-43.3% 🟢) 0.438s 49 1.00x
🐘 Postgres Nitro 2.175s (-47.0% 🟢) 2.889s (-37.2% 🟢) 0.714s 42 1.07x
💻 Local Express 2.650s (-71.2% 🟢) 3.008s (-70.0% 🟢) 0.357s 40 1.30x
💻 Local Nitro 2.725s (-70.7% 🟢) 3.008s (-70.0% 🟢) 0.283s 40 1.34x
🌐 Redis Next.js (Turbopack) 3.067s 4.009s 0.942s 30 1.50x
🐘 Postgres Next.js (Turbopack) 3.176s 4.010s 0.834s 30 1.56x
💻 Local Next.js (Turbopack) 3.840s 4.075s 0.234s 30 1.88x
🌐 MongoDB Next.js (Turbopack) 4.166s 5.012s 0.847s 24 2.04x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 40.669s (-68.7% 🟢) 43.011s (-67.5% 🟢) 2.342s 3 1.00x
▲ Vercel Next.js (Turbopack) 49.197s (-54.1% 🟢) 51.483s (-52.7% 🟢) 2.285s 3 1.21x
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Express | Next.js (Turbopack)

workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 0.200s (-29.1% 🟢) 1.023s (+1.5%) 0.823s 59 1.00x
🐘 Postgres Nitro 0.205s (-27.6% 🟢) 1.006s (~) 0.801s 60 1.02x
🌐 Redis Next.js (Turbopack) 0.244s 1.004s 0.760s 60 1.22x
🐘 Postgres Next.js (Turbopack) 0.251s 1.006s 0.756s 60 1.25x
💻 Local Nitro 0.439s (-27.3% 🟢) 1.004s (-1.7%) 0.565s 60 2.20x
💻 Local Express 0.444s (-20.8% 🟢) 1.005s (~) 0.561s 60 2.22x
💻 Local Next.js (Turbopack) 0.565s 1.005s 0.439s 60 2.82x
🌐 MongoDB Next.js (Turbopack) 1.034s 1.855s 0.821s 33 5.17x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 2.579s (+32.0% 🔺) 4.090s (+12.5% 🔺) 1.511s 15 1.00x
▲ Vercel Next.js (Turbopack) 3.804s (+88.1% 🔺) 5.498s (+44.9% 🔺) 1.694s 11 1.48x
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Express | 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.294s (-42.2% 🟢) 1.006s (~) 0.711s 90 1.00x
🐘 Postgres Nitro 0.367s (-26.1% 🟢) 1.018s (+1.1%) 0.651s 89 1.24x
🌐 Redis Next.js (Turbopack) 0.429s 1.004s 0.575s 90 1.46x
🐘 Postgres Next.js (Turbopack) 0.505s 1.006s 0.501s 90 1.72x
💻 Local Express 2.186s (-13.0% 🟢) 2.884s (-4.2%) 0.698s 32 7.42x
💻 Local Nitro 2.237s (-11.9% 🟢) 2.914s (-3.2%) 0.677s 31 7.59x
💻 Local Next.js (Turbopack) 2.556s 3.109s 0.554s 30 8.68x
🌐 MongoDB Next.js (Turbopack) 2.624s 3.007s 0.383s 30 8.91x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 7.959s (+161.2% 🔺) 9.824s (+104.4% 🔺) 1.865s 10 1.00x
▲ Vercel Next.js (Turbopack) 8.180s (+131.4% 🔺) 10.227s (+96.9% 🔺) 2.047s 9 1.03x
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Express | Next.js (Turbopack)

workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 0.586s (-28.4% 🟢) 1.006s (-1.1%) 0.420s 120 1.00x
🐘 Postgres Nitro 0.684s (-13.4% 🟢) 1.007s (~) 0.322s 120 1.17x
🌐 Redis Next.js (Turbopack) 0.797s 1.004s 0.207s 120 1.36x
🐘 Postgres Next.js (Turbopack) 1.053s 1.930s 0.877s 63 1.80x
🌐 MongoDB Next.js (Turbopack) 5.385s 6.012s 0.627s 20 9.19x
💻 Local Express 10.040s (-10.3% 🟢) 10.609s (-11.1% 🟢) 0.569s 12 17.13x
💻 Local Nitro 10.387s (-7.2% 🟢) 11.029s (-5.4% 🟢) 0.642s 11 17.72x
💻 Local Next.js (Turbopack) 11.643s 12.229s 0.586s 10 19.86x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 19.499s (+162.8% 🔺) 21.599s (+133.6% 🔺) 2.100s 6 1.00x
▲ Vercel Next.js (Turbopack) 23.762s (+130.1% 🔺) 25.933s (+111.1% 🔺) 2.171s 5 1.22x
▲ Vercel Nitro ⚠️ missing - - - -

🔍 Observability: Express | 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 🥇 Express 1.132s (+468.7% 🔺) 2.005s (+99.6% 🔺) 0.012s (~) 2.019s (+98.3% 🔺) 0.887s 10 1.00x
🐘 Postgres Express 1.134s (+452.9% 🔺) 2.002s (+100.4% 🔺) 0.001s (-31.3% 🟢) 2.009s (+98.7% 🔺) 0.875s 10 1.00x
💻 Local Nitro 1.137s (+432.0% 🔺) 2.005s (+99.6% 🔺) 0.012s (-2.4%) 2.019s (+98.2% 🔺) 0.882s 10 1.00x
🐘 Postgres Nitro 1.159s (+465.3% 🔺) 1.996s (+99.6% 🔺) 0.002s (+6.7% 🔺) 2.011s (+98.9% 🔺) 0.852s 10 1.02x
💻 Local Next.js (Turbopack) 1.180s 2.004s 0.012s 2.019s 0.839s 10 1.04x
🐘 Postgres Next.js (Turbopack) 1.192s 2.002s 0.002s 2.013s 0.821s 10 1.05x
🌐 MongoDB Next.js (Turbopack) ⚠️ missing - - - - -
🌐 Redis Next.js (Turbopack) ⚠️ missing - - - - -

▲ Production (Vercel)

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 2.423s (-3.3%) 3.441s (-15.9% 🟢) 2.426s (+152.5% 🔺) 6.369s (+13.9% 🔺) 3.945s 10 1.00x
▲ Vercel Next.js (Turbopack) 4.971s (-27.5% 🟢) 4.825s (-44.2% 🟢) 1.721s (+172.3% 🔺) 8.337s (-14.8% 🟢) 3.366s 10 2.05x
▲ Vercel Nitro ⚠️ missing - - - - -

🔍 Observability: Express | Next.js (Turbopack)

stream pipeline with 5 transform steps (1MB)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Express 1.528s (+101.9% 🔺) 2.011s (+95.4% 🔺) 0.010s (+3.4%) 2.022s (+94.5% 🔺) 0.494s 30 1.00x
💻 Local Nitro 1.541s (+83.8% 🔺) 2.011s (+98.7% 🔺) 0.011s (+15.3% 🔺) 2.023s (+81.3% 🔺) 0.482s 30 1.01x
🐘 Postgres Nitro 1.543s (+147.2% 🔺) 2.003s (+98.9% 🔺) 0.004s (-7.3% 🟢) 2.026s (+98.1% 🔺) 0.483s 30 1.01x
🐘 Postgres Express 1.550s (+146.0% 🔺) 2.007s (+99.4% 🔺) 0.003s (-13.0% 🟢) 2.023s (+97.7% 🔺) 0.473s 30 1.01x
💻 Local Next.js (Turbopack) 1.689s 2.011s 0.010s 2.024s 0.335s 30 1.10x
🐘 Postgres Next.js (Turbopack) 1.738s 2.010s 0.004s 2.028s 0.289s 30 1.14x
🌐 MongoDB Next.js (Turbopack) ⚠️ missing - - - - -
🌐 Redis Next.js (Turbopack) ⚠️ missing - - - - -

▲ Production (Vercel)

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 5.845s (-10.1% 🟢) 7.229s (-9.8% 🟢) 0.218s (-46.7% 🟢) 7.874s (-10.9% 🟢) 2.029s 8 1.00x
▲ Vercel Next.js (Turbopack) 12.876s (-23.9% 🟢) 13.594s (-25.5% 🟢) 0.213s (+0.8%) 15.107s (-20.2% 🟢) 2.231s 4 2.20x
▲ Vercel Nitro ⚠️ missing - - - - -

🔍 Observability: Express | Next.js (Turbopack)

10 parallel streams (1MB each)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 0.663s (-31.0% 🟢) 1.035s (-19.0% 🟢) 0.000s (-60.3% 🟢) 1.042s (-20.2% 🟢) 0.379s 58 1.00x
🐘 Postgres Nitro 0.696s (-28.2% 🟢) 1.032s (-17.3% 🟢) 0.000s (+65.5% 🔺) 1.047s (-16.8% 🟢) 0.351s 58 1.05x
🐘 Postgres Next.js (Turbopack) 0.837s 1.073s 0.000s 1.092s 0.255s 55 1.26x
💻 Local Express 1.336s (+9.0% 🔺) 2.015s (~) 0.000s (~) 2.017s (~) 0.682s 30 2.01x
💻 Local Nitro 1.372s (+12.2% 🔺) 2.014s (~) 0.000s (+66.7% 🔺) 2.016s (~) 0.644s 30 2.07x
💻 Local Next.js (Turbopack) 1.483s 2.014s 0.000s 2.017s 0.534s 30 2.24x
🌐 MongoDB Next.js (Turbopack) ⚠️ missing - - - - -
🌐 Redis Next.js (Turbopack) ⚠️ missing - - - - -

▲ Production (Vercel)

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 3.824s (+2.2%) 5.279s (+3.5%) 0.000s (-50.0% 🟢) 5.673s (+2.6%) 1.849s 11 1.00x
▲ Vercel Next.js (Turbopack) 6.010s (-41.0% 🟢) 6.242s (-45.8% 🟢) 0.000s (+Infinity% 🔺) 7.757s (-35.6% 🟢) 1.747s 8 1.57x
▲ Vercel Nitro ⚠️ missing - - - - -

🔍 Observability: Express | 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.349s (-23.9% 🟢) 2.067s (-5.1% 🟢) 0.000s (+Infinity% 🔺) 2.102s (-4.4%) 0.753s 29 1.00x
🐘 Postgres Nitro 1.367s (-23.7% 🟢) 2.067s (-3.5%) 0.000s (-100.0% 🟢) 2.097s (-3.6%) 0.730s 29 1.01x
🐘 Postgres Next.js (Turbopack) 1.803s 2.310s 0.000s 2.318s 0.515s 26 1.34x
💻 Local Express 3.092s (-10.8% 🟢) 3.838s (-4.9%) 0.001s (+17.2% 🔺) 3.844s (-4.8%) 0.752s 16 2.29x
💻 Local Next.js (Turbopack) 3.141s 3.321s 0.000s 3.619s 0.479s 17 2.33x
💻 Local Nitro 3.204s (-5.4% 🟢) 4.029s (~) 0.001s (~) 4.032s (~) 0.828s 15 2.38x
🌐 MongoDB Next.js (Turbopack) ⚠️ missing - - - - -
🌐 Redis Next.js (Turbopack) ⚠️ missing - - - - -

▲ Production (Vercel)

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 5.955s (+29.8% 🔺) 7.151s (+18.7% 🔺) 0.004s (+Infinity% 🔺) 7.665s (+18.7% 🔺) 1.711s 8 1.00x
▲ Vercel Next.js (Turbopack) 8.279s (+47.4% 🔺) 9.661s (+38.4% 🔺) 0.000s (-100.0% 🟢) 10.452s (+38.6% 🔺) 2.173s 6 1.39x
▲ Vercel Nitro ⚠️ missing - - - - -

🔍 Observability: Express | Next.js (Turbopack)

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World 🥇 Fastest Framework Wins
💻 Local Express 17/21
🐘 Postgres Express 16/21
▲ Vercel Express 20/21
Fastest World by Framework

Winner determined by most benchmark wins

Framework 🥇 Fastest World Wins
Express 🐘 Postgres 14/21
Next.js (Turbopack) 🌐 Redis 10/21
Nitro 🐘 Postgres 15/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)

📋 View full workflow run


Some benchmark jobs failed:

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

Check the workflow run for details.

Comment thread .changeset/world-init-cold-start.md Outdated
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 6, 2026

🧪 E2E Test Results

Some tests failed

Summary

Passed Failed Skipped Total
❌ ▲ Vercel Production 1199 1 219 1419
✅ 💻 Local Development 1587 0 219 1806
✅ 📦 Local Production 1587 0 219 1806
✅ 🐘 Local Postgres 1587 0 219 1806
✅ 🪟 Windows 129 0 0 129
✅ 📋 Other 727 0 176 903
Total 6816 1 1052 7869

❌ Failed Tests

▲ Vercel Production (1 failed)

sveltekit (1 failed):

Details by Category

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

📋 View full workflow run


Some E2E test jobs failed:

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

Check the workflow run for details.

Signed-off-by: Peter Wielander <mittgfu@gmail.com>
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.

1 participant