Skip to content

Make TypeScript peer dependency optional#1830

Merged
ijjk merged 8 commits intomainfrom
ijjk/optional-typescript
Apr 28, 2026
Merged

Make TypeScript peer dependency optional#1830
ijjk merged 8 commits intomainfrom
ijjk/optional-typescript

Conversation

@ijjk
Copy link
Copy Markdown
Member

@ijjk ijjk commented Apr 22, 2026

Summary

  • mark typescript as an optional peer dependency in @workflow/typescript-plugin
  • add a patch changeset for the package

Testing

  • not run (package metadata change only)

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Apr 22, 2026

🦋 Changeset detected

Latest commit: aec9a27

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

This PR includes changesets to release 18 packages
Name Type
@workflow/typescript-plugin Patch
workflow Patch
@workflow/ai Patch
@workflow/world-testing Patch
@workflow/core Patch
@workflow/builders Patch
@workflow/cli Patch
@workflow/next Patch
@workflow/nitro Patch
@workflow/vitest Patch
@workflow/web-shared Patch
@workflow/web 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

@vercel
Copy link
Copy Markdown
Contributor

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 22, 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 22, 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 🥇 Nitro 0.033s (-23.2% 🟢) 1.004s (~) 0.971s 10 1.00x
💻 Local Express 0.042s (-5.9% 🟢) 1.005s (~) 0.963s 10 1.26x
🐘 Postgres Express 0.045s (-21.9% 🟢) 1.009s (~) 0.964s 10 1.37x
💻 Local Next.js (Turbopack) 0.047s 1.005s 0.958s 10 1.41x
🐘 Postgres Nitro 0.048s (-49.4% 🟢) 1.010s (-3.2%) 0.962s 10 1.46x
🐘 Postgres Next.js (Turbopack) 0.056s 1.010s 0.954s 10 1.69x
workflow with 1 step

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 1.108s (-2.1%) 2.005s (~) 0.897s 10 1.00x
🐘 Postgres Express 1.114s (-2.8%) 2.008s (~) 0.895s 10 1.01x
💻 Local Next.js (Turbopack) 1.118s 2.006s 0.888s 10 1.01x
🐘 Postgres Nitro 1.121s (-1.6%) 2.008s (~) 0.887s 10 1.01x
💻 Local Express 1.127s (~) 2.007s (~) 0.880s 10 1.02x
🐘 Postgres Next.js (Turbopack) 1.134s 2.010s 0.876s 10 1.02x
workflow with 10 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 10.658s (-2.8%) 11.019s (~) 0.361s 3 1.00x
🐘 Postgres Nitro 10.737s (-1.2%) 11.022s (~) 0.286s 3 1.01x
💻 Local Nitro 10.769s (-1.6%) 11.021s (~) 0.252s 3 1.01x
💻 Local Next.js (Turbopack) 10.783s 11.023s 0.240s 3 1.01x
🐘 Postgres Next.js (Turbopack) 10.859s 11.022s 0.163s 3 1.02x
💻 Local Express 10.909s (~) 11.024s (~) 0.115s 3 1.02x
workflow with 25 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 14.013s (-3.9%) 14.222s (-5.3% 🟢) 0.209s 5 1.00x
🐘 Postgres Nitro 14.099s (-3.4%) 15.020s (~) 0.922s 4 1.01x
🐘 Postgres Next.js (Turbopack) 14.496s 15.024s 0.528s 4 1.03x
💻 Local Nitro 14.569s (-3.3%) 15.028s (-6.3% 🟢) 0.459s 4 1.04x
💻 Local Next.js (Turbopack) 14.585s 15.029s 0.443s 4 1.04x
💻 Local Express 14.977s (~) 15.028s (~) 0.052s 4 1.07x
workflow with 50 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 12.971s (-7.4% 🟢) 13.163s (-9.8% 🟢) 0.193s 7 1.00x
🐘 Postgres Nitro 13.104s (-6.2% 🟢) 13.879s (-3.0%) 0.776s 7 1.01x
🐘 Postgres Next.js (Turbopack) 13.875s 14.021s 0.146s 7 1.07x
💻 Local Nitro 15.084s (-10.1% 🟢) 15.694s (-7.8% 🟢) 0.610s 6 1.16x
💻 Local Next.js (Turbopack) 15.737s 16.029s 0.292s 6 1.21x
💻 Local Express 16.558s (~) 17.030s (~) 0.471s 6 1.28x
Promise.all with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.199s (-4.9%) 2.008s (~) 0.809s 15 1.00x
🐘 Postgres Nitro 1.202s (-5.7% 🟢) 2.010s (~) 0.808s 15 1.00x
🐘 Postgres Next.js (Turbopack) 1.231s 2.011s 0.780s 15 1.03x
💻 Local Nitro 1.400s (-14.2% 🟢) 2.005s (-3.3%) 0.605s 15 1.17x
💻 Local Express 1.497s (+0.6%) 2.005s (~) 0.508s 15 1.25x
💻 Local Next.js (Turbopack) 1.533s 2.006s 0.473s 15 1.28x
Promise.all with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 2.293s (-2.9%) 3.009s (~) 0.716s 10 1.00x
🐘 Postgres Nitro 2.325s (-1.1%) 3.008s (~) 0.683s 10 1.01x
🐘 Postgres Next.js (Turbopack) 2.409s 3.008s 0.600s 10 1.05x
💻 Local Nitro 2.460s (-21.7% 🟢) 3.007s (-22.6% 🟢) 0.547s 10 1.07x
💻 Local Next.js (Turbopack) 2.796s 3.309s 0.514s 10 1.22x
💻 Local Express 3.046s (+3.2%) 3.564s (+3.2%) 0.518s 9 1.33x
Promise.all with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 3.388s (-2.8%) 4.009s (~) 0.621s 8 1.00x
🐘 Postgres Nitro 3.422s (-1.7%) 4.013s (~) 0.591s 8 1.01x
🐘 Postgres Next.js (Turbopack) 3.655s 4.012s 0.357s 8 1.08x
💻 Local Nitro 5.999s (-28.1% 🟢) 6.816s (-24.4% 🟢) 0.817s 5 1.77x
💻 Local Next.js (Turbopack) 7.529s 8.270s 0.741s 4 2.22x
💻 Local Express 8.164s (-2.1%) 8.770s (-2.8%) 0.607s 4 2.41x
Promise.race with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.186s (-5.7% 🟢) 2.007s (~) 0.821s 15 1.00x
🐘 Postgres Nitro 1.196s (-4.8%) 2.007s (~) 0.811s 15 1.01x
🐘 Postgres Next.js (Turbopack) 1.223s 2.008s 0.785s 15 1.03x
💻 Local Nitro 1.458s (-21.8% 🟢) 2.004s (-14.4% 🟢) 0.546s 15 1.23x
💻 Local Next.js (Turbopack) 1.477s 2.005s 0.528s 15 1.25x
💻 Local Express 1.527s (-19.4% 🟢) 2.005s (-15.2% 🟢) 0.478s 15 1.29x
Promise.race with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 2.296s (-1.9%) 3.011s (~) 0.715s 10 1.00x
🐘 Postgres Nitro 2.299s (-1.7%) 3.009s (~) 0.710s 10 1.00x
💻 Local Nitro 2.452s (-20.0% 🟢) 3.008s (-22.6% 🟢) 0.556s 10 1.07x
🐘 Postgres Next.js (Turbopack) 2.457s 3.009s 0.553s 10 1.07x
💻 Local Next.js (Turbopack) 2.788s 3.308s 0.520s 10 1.21x
💻 Local Express 3.056s (-2.4%) 3.884s (+3.2%) 0.828s 8 1.33x
Promise.race with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 3.386s (-3.2%) 4.011s (~) 0.625s 8 1.00x
🐘 Postgres Nitro 3.395s (-2.5%) 4.010s (~) 0.615s 8 1.00x
🐘 Postgres Next.js (Turbopack) 3.643s 4.010s 0.367s 8 1.08x
💻 Local Nitro 6.592s (-27.9% 🟢) 7.033s (-29.8% 🟢) 0.441s 5 1.95x
💻 Local Next.js (Turbopack) 7.715s 8.267s 0.552s 4 2.28x
💻 Local Express 8.995s (+2.2%) 9.524s (+2.7%) 0.530s 4 2.66x
workflow with 10 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 0.613s (-26.9% 🟢) 1.006s (-1.7%) 0.393s 60 1.00x
🐘 Postgres Nitro 0.625s (-23.9% 🟢) 1.006s (~) 0.381s 60 1.02x
🐘 Postgres Next.js (Turbopack) 0.772s 1.006s 0.234s 60 1.26x
💻 Local Next.js (Turbopack) 0.827s 1.021s 0.194s 59 1.35x
💻 Local Nitro 0.915s (-6.7% 🟢) 1.228s (+12.3% 🔺) 0.313s 49 1.49x
💻 Local Express 0.988s (~) 1.181s (+9.7% 🔺) 0.193s 51 1.61x
workflow with 25 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 1.432s (-27.6% 🟢) 2.007s (-11.1% 🟢) 0.575s 45 1.00x
🐘 Postgres Nitro 1.552s (-19.5% 🟢) 2.008s (-4.4%) 0.456s 45 1.08x
🐘 Postgres Next.js (Turbopack) 1.963s 2.203s 0.239s 41 1.37x
💻 Local Next.js (Turbopack) 2.629s 3.008s 0.378s 30 1.84x
💻 Local Nitro 2.640s (-13.0% 🟢) 3.040s (-19.1% 🟢) 0.401s 30 1.84x
💻 Local Express 3.001s (~) 3.470s (-3.2%) 0.468s 26 2.10x
workflow with 50 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 2.943s (-26.2% 🟢) 3.251s (-25.6% 🟢) 0.308s 37 1.00x
🐘 Postgres Nitro 3.204s (-21.9% 🟢) 4.010s (-12.9% 🟢) 0.806s 30 1.09x
🐘 Postgres Next.js (Turbopack) 3.957s 4.296s 0.339s 28 1.34x
💻 Local Nitro 7.764s (-16.5% 🟢) 8.214s (-18.0% 🟢) 0.450s 15 2.64x
💻 Local Next.js (Turbopack) 8.482s 9.017s 0.536s 14 2.88x
💻 Local Express 9.071s (-1.5%) 9.710s (-3.1%) 0.640s 13 3.08x
workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 0.227s (-19.8% 🟢) 1.007s (~) 0.780s 60 1.00x
🐘 Postgres Nitro 0.234s (-17.4% 🟢) 1.007s (~) 0.773s 60 1.03x
🐘 Postgres Next.js (Turbopack) 0.242s 1.007s 0.765s 60 1.07x
💻 Local Nitro 0.490s (-19.0% 🟢) 1.004s (-1.7%) 0.514s 60 2.16x
💻 Local Next.js (Turbopack) 0.551s 1.004s 0.453s 60 2.43x
💻 Local Express 0.574s (+2.4%) 1.004s (~) 0.430s 60 2.53x
workflow with 25 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 0.356s (-30.1% 🟢) 1.006s (~) 0.649s 90 1.00x
🐘 Postgres Nitro 0.372s (-25.1% 🟢) 1.006s (~) 0.634s 90 1.04x
🐘 Postgres Next.js (Turbopack) 0.476s 1.006s 0.530s 90 1.34x
💻 Local Nitro 2.045s (-19.4% 🟢) 2.753s (-8.5% 🟢) 0.708s 33 5.74x
💻 Local Express 2.478s (-1.4%) 3.008s (~) 0.530s 30 6.96x
💻 Local Next.js (Turbopack) 2.560s 3.009s 0.448s 30 7.19x
workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 0.566s (-30.9% 🟢) 1.006s (-1.1%) 0.440s 120 1.00x
🐘 Postgres Nitro 0.577s (-27.0% 🟢) 1.006s (~) 0.430s 120 1.02x
🐘 Postgres Next.js (Turbopack) 0.767s 1.006s 0.240s 120 1.35x
💻 Local Nitro 8.859s (-20.8% 🟢) 9.502s (-18.5% 🟢) 0.643s 13 15.65x
💻 Local Next.js (Turbopack) 10.800s 11.302s 0.502s 11 19.08x
💻 Local Express 10.847s (-3.1%) 11.302s (-5.3% 🟢) 0.455s 11 19.16x
Stream Benchmarks (includes TTFB metrics)
workflow with stream

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 0.156s (-24.1% 🟢) 1.000s (~) 0.001s (-13.3% 🟢) 1.010s (~) 0.854s 10 1.00x
🐘 Postgres Express 0.158s (-22.8% 🟢) 1.000s (~) 0.001s (-31.3% 🟢) 1.010s (~) 0.852s 10 1.02x
💻 Local Next.js (Turbopack) 0.173s 1.003s 0.012s 1.017s 0.844s 10 1.11x
💻 Local Nitro 0.184s (-13.8% 🟢) 1.003s (~) 0.008s (-36.0% 🟢) 1.013s (-0.6%) 0.829s 10 1.18x
🐘 Postgres Next.js (Turbopack) 0.191s 1.002s 0.001s 1.011s 0.820s 10 1.23x
💻 Local Express 0.203s (+2.0%) 1.004s (~) 0.012s (-3.3%) 1.018s (~) 0.815s 10 1.31x
stream pipeline with 5 transform steps (1MB)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 0.502s (-20.3% 🟢) 1.007s (~) 0.003s (-8.8% 🟢) 1.021s (~) 0.519s 59 1.00x
🐘 Postgres Nitro 0.511s (-18.1% 🟢) 1.007s (~) 0.006s (+42.2% 🔺) 1.025s (~) 0.514s 59 1.02x
🐘 Postgres Next.js (Turbopack) 0.628s 1.026s 0.004s 1.040s 0.412s 58 1.25x
💻 Local Next.js (Turbopack) 0.656s 1.012s 0.009s 1.024s 0.368s 59 1.31x
💻 Local Nitro 0.817s (-2.6%) 1.048s (+3.6%) 0.017s (+84.1% 🔺) 1.163s (+4.2%) 0.347s 52 1.63x
💻 Local Express 0.835s (+10.3% 🔺) 1.012s (-1.7%) 0.009s (-8.5% 🟢) 1.115s (+7.2% 🔺) 0.279s 54 1.66x
10 parallel streams (1MB each)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 0.891s (-8.1% 🟢) 1.052s (-15.7% 🟢) 0.000s (+26.3% 🔺) 1.060s (-15.7% 🟢) 0.169s 57 1.00x
🐘 Postgres Express 0.908s (-5.5% 🟢) 1.072s (-16.1% 🟢) 0.000s (-58.9% 🟢) 1.087s (-16.8% 🟢) 0.179s 56 1.02x
🐘 Postgres Next.js (Turbopack) 0.924s 1.053s 0.000s 1.060s 0.136s 57 1.04x
💻 Local Nitro 1.068s (-12.6% 🟢) 1.780s (-11.9% 🟢) 0.000s (+252.9% 🔺) 1.782s (-11.9% 🟢) 0.714s 34 1.20x
💻 Local Express 1.213s (-1.0%) 2.020s (~) 0.000s (~) 2.022s (~) 0.809s 30 1.36x
💻 Local Next.js (Turbopack) ⚠️ missing - - - - -
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.611s (-9.1% 🟢) 2.069s (-5.0%) 0.000s (+Infinity% 🔺) 2.103s (-4.3%) 0.492s 29 1.00x
🐘 Postgres Nitro 1.738s (-3.0%) 2.104s (-1.7%) 0.000s (+93.1% 🔺) 2.114s (-2.8%) 0.376s 29 1.08x
🐘 Postgres Next.js (Turbopack) 1.795s 2.146s 0.000s 2.162s 0.366s 28 1.11x
💻 Local Nitro 3.074s (-9.3% 🟢) 3.569s (-11.5% 🟢) 0.001s (+21.3% 🔺) 3.572s (-11.5% 🟢) 0.498s 17 1.91x
💻 Local Next.js (Turbopack) 3.471s 4.025s 0.000s 4.028s 0.557s 15 2.15x
💻 Local Express 3.531s (+1.8%) 4.165s (+3.3%) 0.000s (-41.7% 🟢) 4.167s (+3.2%) 0.636s 15 2.19x

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World 🥇 Fastest Framework Wins
💻 Local Nitro 17/21
🐘 Postgres Express 19/21
Fastest World by Framework

Winner determined by most benchmark wins

Framework 🥇 Fastest World Wins
Express 🐘 Postgres 20/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

@ijjk ijjk enabled auto-merge (squash) April 28, 2026 21:00
@vercel vercel Bot temporarily deployed to Preview – workflow-docs April 28, 2026 21:31 Inactive
ijjk and others added 5 commits April 28, 2026 14:31
* ci: fix VERCEL_WORKFLOW_SERVER_* ternary so main actually unsets them

In GitHub Actions expressions, '' is falsy, so the original
`cond && '' || secrets.X` pattern always fell through to the secret
regardless of branch. The result was that pushes to main were sending
preview workflow-server values to production, causing 'invalid_url'
errors on `x-vercel-workflow-api-url` across all e2e jobs.

Flip the condition so the secret sits in the truthy branch and ||
correctly selects '' on main.

* ci: skip pnpm cache in matrix-generation jobs

The Get Test Matrix and Get Community Worlds Matrix jobs only run a
small Node script to emit a JSON matrix; they never run `pnpm install`.
With `cache: 'pnpm'` set on actions/setup-node, the post-job cache save
step fails with 'Path Validation Error' because the pnpm store path was
never created, marking the whole job as failed.

Add a cache-pnpm input to setup-workflow-dev (default true) and opt out
in the two matrix-generation jobs.
* 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.
…1861)

* ci: refactor wait-for-vercel-project to use GitHub Deployments API

Replaces the Vercel SDK / Vercel API token-based implementation with one
that resolves the deployment URL via the GitHub Deployments API:

- Find the GitHub Deployment for (target SHA, environment) where
  environment matches the Vercel-app-created "Preview \u2013 <slug>" or
  "Production \u2013 <slug>" naming pattern.
- Wait for the latest deployment status to be `success` (or `inactive`
  when Vercel skips a duplicate build, in which case its environment_url
  still points at the live deployment).
- Probe the URL to confirm the edge can route to it (any non-5xx
  response counts as live, including 401/403 from Deployment Protection
  and 404/405 from the app). Manual redirect handling treats redirects
  to vercel.com as "still building".
- Resolve the dpl_xxx deployment ID from the matching commit status
  (Vercel posts `Vercel \u2013 <slug>` statuses where target_url's last
  path segment is the inspector ID == deployment ID without the prefix).

Inputs change: project-slug + bypass-secret + github-token (with
GITHUB_TOKEN default) replace team-id + project-id + vercel-token.

Removes the @vercel/sdk dependency, shrinking the bundled dist from
5.4MB to 829KB. The VERCEL_DOCS_TOKEN secret is no longer referenced
anywhere in the repo and can be deleted from GH after this lands.

* ci(wait-for-vercel-project): drop URL probe and bypass-secret input

The GitHub Deployment status transitions to `success` only after the
Vercel app finishes building and routing is live, so an extra HTTP
liveness probe of the deployment URL was redundant. Removing it lets
us also drop the bypass-secret input \u2014 protected deployments don't
need a workaround anymore because we never make the request.

Reduces the action surface area and eliminates a runtime fetch.

* ci(wait-for-vercel-project): address PR review

- Fail loudly when the dpl_xxx deployment ID can't be resolved instead
  of returning an empty string. Consumers wire this into
  VERCEL_DEPLOYMENT_ID, which world-target uses to pick between the
  vercel and local worlds (packages/utils/src/world-target.ts), so an
  empty value would silently flip execution mode.
- Pass the GitHub App token to wait-for-vercel-project in the dispatch
  release workflow. The job sets `permissions: contents: read`, which
  blocks the default GITHUB_TOKEN from reading the Deployments API.
  The App token (already generated for workflow,front) has the
  necessary scopes.
@ijjk ijjk force-pushed the ijjk/optional-typescript branch from 192fd89 to aec9a27 Compare April 28, 2026 21:31
@ijjk ijjk merged commit a38f140 into main Apr 28, 2026
96 of 101 checks passed
@ijjk ijjk deleted the ijjk/optional-typescript branch April 28, 2026 21:48
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