Skip to content

test: enable step source-map assertions for vite local dev#1862

Merged
TooTallNate merged 3 commits intomainfrom
fix/vite-step-source-maps-e2e
Apr 28, 2026
Merged

test: enable step source-map assertions for vite local dev#1862
TooTallNate merged 3 commits intomainfrom
fix/vite-step-source-maps-e2e

Conversation

@TooTallNate
Copy link
Copy Markdown
Member

@TooTallNate TooTallNate commented Apr 28, 2026

Summary

  • Vite local-dev e2e tests basic step error preserves message and stack trace and cross-file step error preserves message and function names in stack have been failing consistently since #1827 bumped workbench/vite from vite@^7.1.12 to vite@^7.3.2.
  • The newer vite preserves step bundle source maps in dev mode, so stack traces now point at original files (99_e2e.ts, helpers.ts). However, hasStepSourceMaps() in packages/core/e2e/utils.ts still hard-codes vite as having no step source maps in any local environment, so the assertion expect(stack).not.toContain('99_e2e.ts') fails.
  • Fix: drop the vite-specific block in hasStepSourceMaps() entirely. Vite local dev now falls through to the default return true, while vite local prod is still caught by the existing !DEV_TEST_CONFIG guard further down — so local-prod behavior is unchanged.

Why this took 6 days to surface

  1. The push for [workflow] Bump Vite #1827 had Local Dev tests skipped due to matrix selection at the time.
  2. The next push (Lock next@canary test version #1860) introduced a CI env-var bug that prevented Local Dev tests from running at all.
  3. ci: fix VERCEL_WORKFLOW_SERVER_* env var ternary on main #1859 (28dc089e) fixed the env-var bug, finally letting vite local dev run — and it surfaced this assertion failure.

Reference failing run: https://github.com/vercel/workflow/actions/runs/25067758534/job/73444472541

Vite ^7.3.2 (bumped in #1827) preserves step bundle source maps in
dev mode, so stack traces now contain original file paths. Update
hasStepSourceMaps() so vite returns true in local dev and stays false
only in local prod, fixing the consistently failing 'basic step error'
and 'cross-file step error' e2e tests.
Copilot AI review requested due to automatic review settings April 28, 2026 18:49
@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Apr 28, 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 Apr 28, 2026 7:01pm
example-nextjs-workflow-webpack Ready Ready Preview, Comment Apr 28, 2026 7:01pm
example-workflow Ready Ready Preview, Comment Apr 28, 2026 7:01pm
workbench-astro-workflow Ready Ready Preview, Comment Apr 28, 2026 7:01pm
workbench-express-workflow Ready Ready Preview, Comment Apr 28, 2026 7:01pm
workbench-fastify-workflow Ready Ready Preview, Comment Apr 28, 2026 7:01pm
workbench-hono-workflow Ready Ready Preview, Comment Apr 28, 2026 7:01pm
workbench-nitro-workflow Ready Ready Preview, Comment Apr 28, 2026 7:01pm
workbench-nuxt-workflow Ready Ready Preview, Comment Apr 28, 2026 7:01pm
workbench-sveltekit-workflow Ready Ready Preview, Comment Apr 28, 2026 7:01pm
workbench-vite-workflow Ready Ready Preview, Comment Apr 28, 2026 7:01pm
workflow-docs Ready Ready Preview, Comment, Open in v0 Apr 28, 2026 7:01pm
workflow-swc-playground Ready Ready Preview, Comment Apr 28, 2026 7:01pm
workflow-web Ready Ready Preview, Comment Apr 28, 2026 7:01pm

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Apr 28, 2026

🦋 Changeset detected

Latest commit: 072a4d0

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

This PR includes changesets to release 0 packages

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

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 Apr 28, 2026

🧪 E2E Test Results

All tests passed

Summary

Passed Failed Skipped Total
✅ ▲ Vercel Production 978 0 67 1045
✅ 💻 Local Development 1054 0 86 1140
✅ 📦 Local Production 1054 0 86 1140
✅ 🐘 Local Postgres 1054 0 86 1140
✅ 🪟 Windows 95 0 0 95
✅ 📋 Other 267 0 18 285
Total 4502 0 343 4845

Details by Category

✅ ▲ Vercel Production
App Passed Failed Skipped
✅ astro 88 0 7
✅ example 88 0 7
✅ express 88 0 7
✅ fastify 88 0 7
✅ hono 88 0 7
✅ nextjs-turbopack 93 0 2
✅ nextjs-webpack 93 0 2
✅ nitro 88 0 7
✅ nuxt 88 0 7
✅ sveltekit 88 0 7
✅ vite 88 0 7
✅ 💻 Local Development
App Passed Failed Skipped
✅ astro-stable 89 0 6
✅ express-stable 89 0 6
✅ fastify-stable 89 0 6
✅ hono-stable 89 0 6
✅ nextjs-turbopack-canary 76 0 19
✅ nextjs-turbopack-stable 95 0 0
✅ nextjs-webpack-canary 76 0 19
✅ nextjs-webpack-stable 95 0 0
✅ nitro-stable 89 0 6
✅ nuxt-stable 89 0 6
✅ sveltekit-stable 89 0 6
✅ vite-stable 89 0 6
✅ 📦 Local Production
App Passed Failed Skipped
✅ astro-stable 89 0 6
✅ express-stable 89 0 6
✅ fastify-stable 89 0 6
✅ hono-stable 89 0 6
✅ nextjs-turbopack-canary 76 0 19
✅ nextjs-turbopack-stable 95 0 0
✅ nextjs-webpack-canary 76 0 19
✅ nextjs-webpack-stable 95 0 0
✅ nitro-stable 89 0 6
✅ nuxt-stable 89 0 6
✅ sveltekit-stable 89 0 6
✅ vite-stable 89 0 6
✅ 🐘 Local Postgres
App Passed Failed Skipped
✅ astro-stable 89 0 6
✅ express-stable 89 0 6
✅ fastify-stable 89 0 6
✅ hono-stable 89 0 6
✅ nextjs-turbopack-canary 76 0 19
✅ nextjs-turbopack-stable 95 0 0
✅ nextjs-webpack-canary 76 0 19
✅ nextjs-webpack-stable 95 0 0
✅ nitro-stable 89 0 6
✅ nuxt-stable 89 0 6
✅ sveltekit-stable 89 0 6
✅ vite-stable 89 0 6
✅ 🪟 Windows
App Passed Failed Skipped
✅ nextjs-turbopack 95 0 0
✅ 📋 Other
App Passed Failed Skipped
✅ e2e-local-dev-nest-stable 89 0 6
✅ e2e-local-postgres-nest-stable 89 0 6
✅ e2e-local-prod-nest-stable 89 0 6

📋 View full workflow run

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 28, 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.040s (-9.3% 🟢) 1.005s (~) 0.965s 10 1.00x
💻 Local Nitro 0.046s (+6.7% 🔺) 1.005s (~) 0.959s 10 1.14x
🐘 Postgres Nitro 0.049s (-48.3% 🟢) 1.011s (-3.1%) 0.961s 10 1.22x
💻 Local Next.js (Turbopack) 0.051s 1.005s 0.954s 10 1.27x
🐘 Postgres Express 0.053s (-8.4% 🟢) 1.012s (~) 0.959s 10 1.32x
🐘 Postgres Next.js (Turbopack) 0.057s 1.009s 0.952s 10 1.42x
workflow with 1 step

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Next.js (Turbopack) 1.120s 2.005s 0.886s 10 1.00x
💻 Local Express 1.127s (~) 2.005s (~) 0.878s 10 1.01x
🐘 Postgres Nitro 1.128s (-1.1%) 2.008s (~) 0.880s 10 1.01x
💻 Local Nitro 1.137s (+0.5%) 2.006s (~) 0.869s 10 1.02x
🐘 Postgres Express 1.144s (~) 2.010s (~) 0.867s 10 1.02x
🐘 Postgres Next.js (Turbopack) 1.150s 2.012s 0.862s 10 1.03x
workflow with 10 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 10.770s (-0.9%) 11.023s (~) 0.253s 3 1.00x
🐘 Postgres Express 10.787s (-1.6%) 11.025s (~) 0.238s 3 1.00x
💻 Local Next.js (Turbopack) 10.789s 11.024s 0.235s 3 1.00x
🐘 Postgres Next.js (Turbopack) 10.879s 11.025s 0.146s 3 1.01x
💻 Local Express 10.922s (~) 11.023s (~) 0.100s 3 1.01x
💻 Local Nitro 10.955s (~) 11.024s (~) 0.069s 3 1.02x
workflow with 25 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 14.344s (-1.6%) 15.034s (~) 0.691s 4 1.00x
🐘 Postgres Next.js (Turbopack) 14.467s 15.023s 0.556s 4 1.01x
💻 Local Next.js (Turbopack) 14.720s 15.030s 0.310s 4 1.03x
🐘 Postgres Nitro 14.789s (+1.3%) 15.529s (+3.3%) 0.740s 4 1.03x
💻 Local Express 14.980s (~) 15.029s (~) 0.049s 4 1.04x
💻 Local Nitro 15.104s (~) 16.033s (~) 0.929s 4 1.05x
workflow with 50 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 13.522s (-3.5%) 14.029s (-3.9%) 0.507s 7 1.00x
🐘 Postgres Next.js (Turbopack) 13.921s 14.022s 0.101s 7 1.03x
🐘 Postgres Nitro 14.610s (+4.6%) 15.355s (+7.3% 🔺) 0.745s 6 1.08x
💻 Local Next.js (Turbopack) 16.229s 17.032s 0.803s 6 1.20x
💻 Local Express 16.828s (+1.4%) 17.198s (+1.0%) 0.370s 6 1.24x
💻 Local Nitro 16.921s (+0.8%) 17.032s (~) 0.111s 6 1.25x
Promise.all with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 1.203s (-5.6% 🟢) 2.010s (~) 0.807s 15 1.00x
🐘 Postgres Next.js (Turbopack) 1.233s 2.010s 0.777s 15 1.03x
🐘 Postgres Express 1.234s (-2.1%) 2.011s (~) 0.777s 15 1.03x
💻 Local Next.js (Turbopack) 1.509s 2.006s 0.497s 15 1.25x
💻 Local Express 1.526s (+2.5%) 2.006s (~) 0.480s 15 1.27x
💻 Local Nitro 1.561s (-4.3%) 2.006s (-3.3%) 0.445s 15 1.30x
Promise.all with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 2.304s (-2.0%) 3.026s (+0.6%) 0.722s 10 1.00x
🐘 Postgres Express 2.376s (+0.6%) 3.011s (~) 0.635s 10 1.03x
🐘 Postgres Next.js (Turbopack) 2.406s 3.009s 0.603s 10 1.04x
💻 Local Next.js (Turbopack) 2.809s 3.454s 0.645s 9 1.22x
💻 Local Nitro 3.045s (-3.1%) 3.453s (-11.1% 🟢) 0.407s 9 1.32x
💻 Local Express 3.066s (+3.8%) 3.885s (+12.5% 🔺) 0.819s 8 1.33x
Promise.all with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 3.494s (~) 4.014s (~) 0.520s 8 1.00x
🐘 Postgres Nitro 3.496s (~) 4.026s (~) 0.530s 8 1.00x
🐘 Postgres Next.js (Turbopack) 3.682s 4.011s 0.329s 8 1.05x
💻 Local Next.js (Turbopack) 7.885s 8.519s 0.634s 4 2.26x
💻 Local Express 8.294s (-0.5%) 9.022s (~) 0.728s 4 2.37x
💻 Local Nitro 9.038s (+8.2% 🔺) 9.522s (+5.6% 🔺) 0.485s 4 2.59x
Promise.race with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 1.206s (-4.0%) 2.007s (~) 0.801s 15 1.00x
🐘 Postgres Next.js (Turbopack) 1.239s 2.010s 0.771s 15 1.03x
🐘 Postgres Express 1.247s (-0.8%) 2.010s (~) 0.763s 15 1.03x
💻 Local Next.js (Turbopack) 1.520s 2.006s 0.486s 15 1.26x
💻 Local Nitro 1.566s (-16.1% 🟢) 2.006s (-14.3% 🟢) 0.440s 15 1.30x
💻 Local Express 1.678s (-11.4% 🟢) 2.222s (-6.0% 🟢) 0.544s 14 1.39x
Promise.race with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 2.270s (-3.0%) 3.007s (~) 0.737s 10 1.00x
🐘 Postgres Express 2.342s (~) 3.009s (~) 0.667s 10 1.03x
🐘 Postgres Next.js (Turbopack) 2.402s 3.010s 0.608s 10 1.06x
💻 Local Next.js (Turbopack) 2.983s 3.760s 0.776s 8 1.31x
💻 Local Nitro 3.004s (-2.0%) 3.760s (-3.3%) 0.756s 8 1.32x
💻 Local Express 3.144s (~) 4.010s (+6.6% 🔺) 0.866s 8 1.39x
Promise.race with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 3.416s (-1.9%) 4.008s (~) 0.593s 8 1.00x
🐘 Postgres Express 3.448s (-1.5%) 4.011s (~) 0.563s 8 1.01x
🐘 Postgres Next.js (Turbopack) 3.649s 4.014s 0.365s 8 1.07x
💻 Local Next.js (Turbopack) 8.305s 9.021s 0.716s 4 2.43x
💻 Local Express 8.866s (+0.7%) 9.273s (~) 0.406s 4 2.60x
💻 Local Nitro 9.213s (+0.8%) 9.772s (-2.5%) 0.559s 4 2.70x
workflow with 10 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 0.714s (-15.0% 🟢) 1.007s (-1.6%) 0.293s 60 1.00x
🐘 Postgres Next.js (Turbopack) 0.781s 1.006s 0.226s 60 1.09x
💻 Local Next.js (Turbopack) 0.890s 1.039s 0.149s 58 1.25x
🐘 Postgres Nitro 0.982s (+19.7% 🔺) 1.346s (+33.7% 🔺) 0.363s 45 1.38x
💻 Local Nitro 1.014s (+3.4%) 1.720s (+57.2% 🔺) 0.706s 35 1.42x
💻 Local Express 1.128s (+14.6% 🔺) 1.570s (+45.9% 🔺) 0.442s 39 1.58x
workflow with 25 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.698s (-14.1% 🟢) 2.009s (-11.0% 🟢) 0.311s 45 1.00x
🐘 Postgres Nitro 1.728s (-10.3% 🟢) 2.100s (~) 0.372s 43 1.02x
🐘 Postgres Next.js (Turbopack) 1.932s 2.173s 0.241s 42 1.14x
💻 Local Next.js (Turbopack) 2.943s 3.223s 0.280s 28 1.73x
💻 Local Express 3.035s (+0.6%) 3.586s (~) 0.550s 26 1.79x
💻 Local Nitro 3.041s (~) 3.843s (+2.3%) 0.803s 24 1.79x
workflow with 50 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 3.431s (-16.4% 🟢) 4.108s (-10.8% 🟢) 0.678s 30 1.00x
🐘 Postgres Express 3.498s (-12.3% 🟢) 4.012s (-8.2% 🟢) 0.514s 30 1.02x
🐘 Postgres Next.js (Turbopack) 3.864s 4.045s 0.181s 30 1.13x
💻 Local Next.js (Turbopack) 8.870s 9.161s 0.291s 14 2.59x
💻 Local Nitro 9.175s (-1.3%) 9.787s (-2.3%) 0.613s 13 2.67x
💻 Local Express 9.295s (+0.9%) 9.941s (-0.8%) 0.646s 13 2.71x
workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 0.244s (-13.9% 🟢) 1.007s (~) 0.764s 60 1.00x
🐘 Postgres Next.js (Turbopack) 0.248s 1.007s 0.759s 60 1.02x
🐘 Postgres Express 0.261s (-7.6% 🟢) 1.008s (~) 0.747s 60 1.07x
💻 Local Express 0.595s (+6.1% 🔺) 1.005s (~) 0.410s 60 2.44x
💻 Local Nitro 0.599s (-1.0%) 1.005s (-1.6%) 0.406s 60 2.46x
💻 Local Next.js (Turbopack) 0.607s 1.022s 0.415s 59 2.49x
workflow with 25 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 0.409s (-19.7% 🟢) 1.007s (~) 0.598s 90 1.00x
🐘 Postgres Nitro 0.426s (-14.1% 🟢) 1.009s (~) 0.583s 90 1.04x
🐘 Postgres Next.js (Turbopack) 0.504s 1.007s 0.503s 90 1.23x
💻 Local Nitro 2.548s (~) 3.009s (~) 0.461s 30 6.23x
💻 Local Next.js (Turbopack) 2.681s 3.009s 0.328s 30 6.55x
💻 Local Express 2.844s (+13.1% 🔺) 3.472s (+15.4% 🔺) 0.629s 26 6.95x
workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 0.654s (-20.1% 🟢) 1.016s (~) 0.362s 119 1.00x
🐘 Postgres Nitro 0.657s (-16.8% 🟢) 1.054s (+4.7%) 0.397s 114 1.01x
🐘 Postgres Next.js (Turbopack) 0.820s 1.016s 0.196s 119 1.25x
💻 Local Nitro 11.257s (+0.6%) 11.938s (+2.3%) 0.681s 11 17.21x
💻 Local Next.js (Turbopack) 11.270s 11.847s 0.577s 11 17.23x
💻 Local Express 12.606s (+12.7% 🔺) 13.033s (+9.1% 🔺) 0.426s 10 19.28x
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.180s 1.002s 0.013s 1.019s 0.839s 10 1.00x
🐘 Postgres Next.js (Turbopack) 0.198s 1.000s 0.001s 1.010s 0.812s 10 1.10x
💻 Local Express 0.201s (+0.8%) 1.005s (~) 0.012s (-0.8%) 1.018s (~) 0.818s 10 1.12x
💻 Local Nitro 0.209s (-2.2%) 1.004s (~) 0.013s (+3.2%) 1.019s (~) 0.810s 10 1.16x
🐘 Postgres Express 0.255s (+24.3% 🔺) 1.000s (~) 0.045s (+2712.5% 🔺) 1.056s (+4.4%) 0.801s 10 1.42x
🐘 Postgres Nitro 0.330s (+60.9% 🔺) 1.008s (+0.8%) 0.124s (+8166.7% 🔺) 1.159s (+14.6% 🔺) 0.829s 10 1.84x
stream pipeline with 5 transform steps (1MB)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 0.585s (-6.3% 🟢) 1.040s (+3.3%) 0.032s (+667.7% 🔺) 1.083s (+5.9% 🔺) 0.499s 56 1.00x
🐘 Postgres Express 0.600s (-4.7%) 1.008s (~) 0.005s (+32.7% 🔺) 1.025s (~) 0.425s 59 1.03x
🐘 Postgres Next.js (Turbopack) 0.650s 1.026s 0.007s 1.042s 0.392s 58 1.11x
💻 Local Next.js (Turbopack) 0.680s 1.011s 0.009s 1.023s 0.343s 59 1.16x
💻 Local Express 0.825s (+8.9% 🔺) 1.013s (-1.5%) 0.015s (+59.3% 🔺) 1.030s (-0.9%) 0.206s 59 1.41x
💻 Local Nitro 0.847s (+0.9%) 1.012s (~) 0.010s (+4.2%) 1.116s (~) 0.269s 54 1.45x
10 parallel streams (1MB each)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 0.965s 1.250s 0.000s 1.264s 0.299s 48 1.00x
🐘 Postgres Express 1.015s (+5.6% 🔺) 1.463s (+14.5% 🔺) 0.000s (-43.9% 🟢) 1.478s (+13.1% 🔺) 0.463s 41 1.05x
🐘 Postgres Nitro 1.144s (+18.1% 🔺) 1.461s (+17.1% 🔺) 0.000s (-41.5% 🟢) 1.481s (+17.7% 🔺) 0.336s 41 1.19x
💻 Local Nitro 1.252s (+2.4%) 2.022s (~) 0.000s (+266.7% 🔺) 2.024s (~) 0.772s 30 1.30x
💻 Local Next.js (Turbopack) 1.309s 2.020s 0.000s 2.023s 0.714s 30 1.36x
💻 Local Express 1.374s (+12.2% 🔺) 2.022s (~) 0.001s (+60.0% 🔺) 2.025s (~) 0.651s 30 1.42x
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.888s (+6.5% 🔺) 2.312s (+6.2% 🔺) 0.000s (NaN%) 2.331s (+6.0% 🔺) 0.443s 26 1.00x
🐘 Postgres Next.js (Turbopack) 1.890s 2.146s 0.000s 2.153s 0.264s 28 1.00x
🐘 Postgres Nitro 1.917s (+7.0% 🔺) 2.465s (+15.1% 🔺) 0.000s (-100.0% 🟢) 2.532s (+16.4% 🔺) 0.615s 25 1.02x
💻 Local Next.js (Turbopack) 3.662s 4.032s 0.001s 4.038s 0.376s 15 1.94x
💻 Local Nitro 3.709s (+9.5% 🔺) 4.234s (+5.0% 🔺) 0.000s (-25.0% 🟢) 4.236s (+5.0%) 0.528s 15 1.96x
💻 Local Express 4.304s (+24.1% 🔺) 4.423s (+9.7% 🔺) 0.000s (-42.3% 🟢) 4.812s (+19.2% 🔺) 0.507s 13 2.28x

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World 🥇 Fastest Framework Wins
💻 Local Next.js (Turbopack) 16/21
🐘 Postgres Nitro 11/21
Fastest World by Framework

Winner determined by most benchmark wins

Framework 🥇 Fastest World Wins
Express 🐘 Postgres 18/21
Next.js (Turbopack) 🐘 Postgres 17/21
Nitro 🐘 Postgres 19/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

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adjusts the e2e “step error preserves stack trace” assertions for Vite local dev after the Vite upgrade started preserving step bundle source maps in dev mode.

Changes:

  • Update hasStepSourceMaps() to allow Vite local dev to assert original source filenames in stacks (while keeping local prod behavior unchanged).
  • Add an (empty) changeset note documenting the Vite local-dev e2e fix.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
packages/core/e2e/utils.ts Refines step sourcemap support matrix so Vite local dev no longer disables stack source assertions.
.changeset/fix-vite-step-source-maps-e2e.md Documents the reason for the Vite local-dev e2e assertion change.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/core/e2e/utils.ts Outdated
The default `!DEV_TEST_CONFIG` fall-through already returns false for
vite local prod, so the vite-specific guard is dead code. Just remove
the vite block entirely now that vite local dev matches the default
'has source maps' behavior.
@TooTallNate TooTallNate enabled auto-merge (squash) April 28, 2026 19:13
@TooTallNate TooTallNate merged commit d6f7eb6 into main Apr 28, 2026
154 of 163 checks passed
@TooTallNate TooTallNate deleted the fix/vite-step-source-maps-e2e branch April 28, 2026 19:26
ijjk pushed a commit that referenced this pull request Apr 28, 2026
* test: enable step source-map assertions for vite local dev

Vite ^7.3.2 (bumped in #1827) preserves step bundle source maps in
dev mode, so stack traces now contain original file paths. Update
hasStepSourceMaps() so vite returns true in local dev and stays false
only in local prod, fixing the consistently failing 'basic step error'
and 'cross-file step error' e2e tests.

* chore: drop body from empty changeset

* address review: drop redundant vite local-prod guard

The default `!DEV_TEST_CONFIG` fall-through already returns false for
vite local prod, so the vite-specific guard is dead code. Just remove
the vite block entirely now that vite local dev matches the default
'has source maps' behavior.
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.

3 participants