Skip to content

Conversation

@VaguelySerious
Copy link
Member

image

Signed-off-by: Peter Wielander <[email protected]>

[web] Allow selecting and cancelling multiple runs from table view

Signed-off-by: Peter Wielander <[email protected]>
@changeset-bot
Copy link

changeset-bot bot commented Jan 2, 2026

🦋 Changeset detected

Latest commit: eed42dd

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

This PR includes changesets to release 5 packages
Name Type
@workflow/web Patch
@workflow/cli Patch
workflow Patch
@workflow/world-testing Patch
@workflow/ai 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
Contributor

vercel bot commented Jan 2, 2026

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

Project Deployment Review Updated (UTC)
example-nextjs-workflow-turbopack Ready Ready Preview, Comment Jan 2, 2026 2:10pm
example-nextjs-workflow-webpack Ready Ready Preview, Comment Jan 2, 2026 2:10pm
example-workflow Ready Ready Preview, Comment Jan 2, 2026 2:10pm
workbench-astro-workflow Ready Ready Preview, Comment Jan 2, 2026 2:10pm
workbench-express-workflow Ready Ready Preview, Comment Jan 2, 2026 2:10pm
workbench-fastify-workflow Ready Ready Preview, Comment Jan 2, 2026 2:10pm
workbench-hono-workflow Ready Ready Preview, Comment Jan 2, 2026 2:10pm
workbench-nitro-workflow Ready Ready Preview, Comment Jan 2, 2026 2:10pm
workbench-nuxt-workflow Ready Ready Preview, Comment Jan 2, 2026 2:10pm
workbench-sveltekit-workflow Ready Ready Preview, Comment Jan 2, 2026 2:10pm
workbench-vite-workflow Ready Ready Preview, Comment Jan 2, 2026 2:10pm

@github-actions
Copy link
Contributor

github-actions bot commented Jan 2, 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
🌐 Starter 🥇 Next.js (Turbopack) 0.038s (+3.8%) 1.014s (~) 0.975s 10 1.00x
💻 Local Nitro 0.041s (-8.4% 🟢) 1.006s (~) 0.965s 10 1.06x
🌐 Redis Next.js (Turbopack) 0.044s (+7.6% 🔺) 1.018s (~) 0.975s 10 1.14x
💻 Local Next.js (Turbopack) 0.044s (+18.2% 🔺) 1.017s (~) 0.973s 10 1.15x
💻 Local Express 0.046s (+7.2% 🔺) 1.007s (~) 0.961s 10 1.21x
🌐 MongoDB Next.js (Turbopack) 0.091s (-9.7% 🟢) 1.016s (~) 0.925s 10 2.37x
🌐 Turso Next.js (Turbopack) 0.109s (+6.9% 🔺) 1.013s (~) 0.904s 10 2.84x
🐘 Postgres Next.js (Turbopack) 0.285s (+18.5% 🔺) 1.030s (+0.8%) 0.744s 10 7.43x
🐘 Postgres Express 0.303s (-19.1% 🟢) 1.022s (+0.8%) 0.719s 10 7.89x
🐘 Postgres Nitro 0.303s (-3.0%) 1.014s (~) 0.710s 10 7.90x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Express 0.594s (-21.6% 🟢) 1.999s (+8.7% 🔺) 1.405s 10 1.00x
▲ Vercel Nitro 1.102s (-1.3%) 1.979s (-1.0%) 0.877s 10 1.85x
▲ Vercel Next.js (Turbopack) 1.173s (+94.8% 🔺) 2.219s (+38.6% 🔺) 1.047s 10 1.97x

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

workflow with 1 step

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Starter 🥇 Next.js (Turbopack) 1.093s (~) 2.009s (~) 0.916s 10 1.00x
💻 Local Next.js (Turbopack) 1.105s (+0.8%) 2.012s (~) 0.907s 10 1.01x
🌐 Redis Next.js (Turbopack) 1.106s (~) 2.012s (~) 0.906s 10 1.01x
💻 Local Nitro 1.111s (-0.5%) 2.006s (~) 0.895s 10 1.02x
💻 Local Express 1.119s (+0.8%) 2.007s (~) 0.887s 10 1.02x
🌐 MongoDB Next.js (Turbopack) 1.311s (~) 2.013s (~) 0.702s 10 1.20x
🌐 Turso Next.js (Turbopack) 1.325s (+1.9%) 2.011s (~) 0.686s 10 1.21x
🐘 Postgres Nitro 2.156s (+1.6%) 3.013s (~) 0.857s 10 1.97x
🐘 Postgres Express 2.182s (-2.2%) 3.014s (~) 0.832s 10 2.00x
🐘 Postgres Next.js (Turbopack) 2.286s (+24.4% 🔺) 2.817s (+39.7% 🔺) 0.531s 10 2.09x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 2.937s (+7.4% 🔺) 3.793s (+3.7%) 0.856s 10 1.00x
▲ Vercel Express 2.991s (-6.5% 🟢) 3.696s (-10.8% 🟢) 0.705s 10 1.02x
▲ Vercel Nitro 2.993s (+8.3% 🔺) 3.661s (~) 0.667s 10 1.02x

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

workflow with 10 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Starter 🥇 Next.js (Turbopack) 10.605s (~) 11.012s (~) 0.407s 5 1.00x
💻 Local Next.js (Turbopack) 10.688s (~) 11.019s (~) 0.331s 5 1.01x
🌐 Redis Next.js (Turbopack) 10.697s (~) 11.018s (~) 0.321s 5 1.01x
💻 Local Nitro 10.759s (~) 11.013s (~) 0.253s 5 1.01x
💻 Local Express 10.830s (+0.6%) 11.015s (~) 0.186s 5 1.02x
🌐 Turso Next.js (Turbopack) 12.182s (~) 13.020s (~) 0.838s 5 1.15x
🌐 MongoDB Next.js (Turbopack) 12.262s (~) 13.027s (~) 0.765s 5 1.16x
🐘 Postgres Next.js (Turbopack) 15.354s (+2.6%) 16.038s (+2.6%) 0.684s 5 1.45x
🐘 Postgres Nitro 20.411s (~) 21.028s (~) 0.617s 5 1.92x
🐘 Postgres Express 20.429s (+0.7%) 21.038s (~) 0.608s 5 1.93x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 22.230s (-4.6%) 22.970s (-3.4%) 0.740s 5 1.00x
▲ Vercel Express 22.322s (-3.1%) 22.964s (-2.6%) 0.642s 5 1.00x
▲ Vercel Next.js (Turbopack) 23.399s (+2.1%) 24.230s (+1.7%) 0.831s 5 1.05x

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

Promise.all with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Starter 🥇 Next.js (Turbopack) 1.345s (~) 2.008s (~) 0.662s 15 1.00x
🌐 Redis Next.js (Turbopack) 1.386s (+2.6%) 2.013s (~) 0.626s 15 1.03x
💻 Local Next.js (Turbopack) 1.392s (~) 2.011s (~) 0.619s 15 1.03x
💻 Local Nitro 1.393s (-1.9%) 2.005s (~) 0.612s 15 1.04x
💻 Local Express 1.399s (+0.7%) 2.007s (~) 0.608s 15 1.04x
🐘 Postgres Next.js (Turbopack) 1.961s (+11.2% 🔺) 2.234s (+10.9% 🔺) 0.273s 14 1.46x
🌐 MongoDB Next.js (Turbopack) 2.144s (-0.5%) 3.013s (~) 0.869s 10 1.59x
🌐 Turso Next.js (Turbopack) 2.212s (~) 3.012s (~) 0.800s 10 1.64x
🐘 Postgres Nitro 2.439s (+3.5%) 3.011s (~) 0.572s 10 1.81x
🐘 Postgres Express 2.512s (+11.9% 🔺) 3.016s (+6.6% 🔺) 0.504s 10 1.87x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 3.261s (+1.8%) 3.882s (+1.5%) 0.621s 8 1.00x
▲ Vercel Next.js (Turbopack) 3.521s (+9.5% 🔺) 4.288s (+6.3% 🔺) 0.767s 7 1.08x
▲ Vercel Express 4.192s (+28.2% 🔺) 5.040s (+22.5% 🔺) 0.848s 6 1.29x

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

Promise.all with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 2.146s (-1.8%) 3.021s (-3.3%) 0.875s 10 1.00x
💻 Local Next.js (Turbopack) 2.190s (+5.8% 🔺) 3.144s (+10.9% 🔺) 0.954s 10 1.02x
💻 Local Express 2.203s (+2.1%) 3.133s (+0.6%) 0.930s 10 1.03x
🌐 Starter Next.js (Turbopack) 2.456s (+0.8%) 3.009s (~) 0.553s 10 1.14x
🌐 Redis Next.js (Turbopack) 2.498s (~) 3.011s (~) 0.513s 10 1.16x
🐘 Postgres Next.js (Turbopack) 2.782s (+10.0% 🔺) 3.030s (~) 0.248s 10 1.30x
🐘 Postgres Express 2.832s (+15.6% 🔺) 3.356s (+11.4% 🔺) 0.524s 9 1.32x
🐘 Postgres Nitro 2.865s (-4.0%) 3.115s (-7.2% 🟢) 0.250s 10 1.33x
🌐 Turso Next.js (Turbopack) 4.686s (~) 5.178s (~) 0.492s 6 2.18x
🌐 MongoDB Next.js (Turbopack) 4.754s (+2.9%) 5.180s (~) 0.426s 6 2.22x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 5.375s (+49.9% 🔺) 6.353s (+30.1% 🔺) 0.978s 5 1.00x
▲ Vercel Next.js (Turbopack) 5.460s (+54.8% 🔺) 6.174s (+39.7% 🔺) 0.714s 5 1.02x
▲ Vercel Express 5.721s (+41.3% 🔺) 6.608s (+40.2% 🔺) 0.887s 5 1.06x

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

Promise.race with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🌐 Starter 🥇 Next.js (Turbopack) 1.337s (-1.1%) 2.007s (~) 0.670s 15 1.00x
💻 Local Next.js (Turbopack) 1.388s (~) 2.013s (~) 0.625s 15 1.04x
🌐 Redis Next.js (Turbopack) 1.395s (+2.4%) 2.011s (~) 0.616s 15 1.04x
💻 Local Nitro 1.400s (-1.0%) 2.004s (~) 0.604s 15 1.05x
💻 Local Express 1.426s (+2.1%) 2.006s (~) 0.581s 15 1.07x
🐘 Postgres Express 1.812s (+1.9%) 2.009s (~) 0.197s 15 1.36x
🐘 Postgres Next.js (Turbopack) 1.816s (+8.4% 🔺) 2.012s (~) 0.197s 15 1.36x
🌐 MongoDB Next.js (Turbopack) 2.133s (-0.7%) 3.014s (~) 0.881s 10 1.60x
🐘 Postgres Nitro 2.215s (+16.0% 🔺) 2.744s (+36.6% 🔺) 0.529s 11 1.66x
🌐 Turso Next.js (Turbopack) 2.227s (+0.7%) 3.014s (~) 0.787s 10 1.67x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 2.957s (+5.8% 🔺) 3.753s (+4.1%) 0.796s 8 1.00x
▲ Vercel Express 3.070s (+3.9%) 3.754s (-2.7%) 0.684s 8 1.04x
▲ Vercel Next.js (Turbopack) 3.256s (+15.6% 🔺) 4.260s (+14.3% 🔺) 1.004s 8 1.10x

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

Promise.race with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Nitro 2.174s (-1.6%) 3.139s (-0.5%) 0.964s 10 1.00x
💻 Local Express 2.212s (+1.4%) 3.138s (~) 0.926s 10 1.02x
💻 Local Next.js (Turbopack) 2.223s (+2.7%) 3.191s (+7.0% 🔺) 0.968s 10 1.02x
🐘 Postgres Next.js (Turbopack) 2.443s (-1.9%) 3.022s (~) 0.579s 10 1.12x
🌐 Starter Next.js (Turbopack) 2.450s (-0.8%) 3.010s (~) 0.559s 10 1.13x
🌐 Redis Next.js (Turbopack) 2.517s (+2.1%) 3.015s (~) 0.498s 10 1.16x
🐘 Postgres Express 2.728s (+5.2% 🔺) 3.022s (~) 0.294s 10 1.25x
🐘 Postgres Nitro 2.781s (+5.1% 🔺) 3.037s (+0.8%) 0.256s 10 1.28x
🌐 Turso Next.js (Turbopack) 4.653s (~) 5.181s (~) 0.528s 6 2.14x
🌐 MongoDB Next.js (Turbopack) 4.669s (-0.9%) 5.179s (~) 0.510s 6 2.15x

▲ Production (Vercel)

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Nitro 3.280s (-3.6%) 3.707s (-11.3% 🟢) 0.427s 9 1.00x
▲ Vercel Next.js (Turbopack) 3.323s (-9.1% 🟢) 3.965s (-8.4% 🟢) 0.641s 8 1.01x
▲ Vercel Express 3.500s (-7.7% 🟢) 4.201s (-4.4%) 0.701s 8 1.07x

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

Stream Benchmarks (includes TTFB metrics)
workflow with stream

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🌐 Starter 🥇 Next.js (Turbopack) 0.128s (+1.8%) 1.005s (~) 0.000s (~) 1.012s (~) 0.884s 10 1.00x
💻 Local Next.js (Turbopack) 0.142s (+2.1%) 1.004s (~) 0.017s (-4.5%) 1.029s (~) 0.887s 10 1.11x
🌐 Redis Next.js (Turbopack) 0.147s (+2.4%) 1.005s (~) 0.000s (+Infinity% 🔺) 1.014s (~) 0.867s 10 1.15x
💻 Local Nitro 0.173s (-2.5%) 0.992s (~) 0.016s (-2.4%) 1.022s (~) 0.849s 10 1.35x
💻 Local Express 0.187s (+7.3% 🔺) 0.991s (~) 0.016s (-0.6%) 1.023s (~) 0.836s 10 1.46x
🌐 MongoDB Next.js (Turbopack) 0.500s (-4.2%) 0.954s (+2.7%) 0.000s (+Infinity% 🔺) 1.014s (~) 0.514s 10 3.90x
🌐 Turso Next.js (Turbopack) 0.510s (~) 0.938s (~) 0.000s (+Infinity% 🔺) 1.012s (~) 0.503s 10 3.98x
🐘 Postgres Next.js (Turbopack) 1.273s (+7.5% 🔺) 1.773s (+15.4% 🔺) 0.000s (+Infinity% 🔺) 2.020s (+17.0% 🔺) 0.747s 10 9.95x
🐘 Postgres Express 2.205s (-8.1% 🟢) 2.841s (+7.4% 🔺) 0.000s (NaN%) 3.016s (~) 0.811s 10 17.23x
🐘 Postgres Nitro 2.345s (+5.5% 🔺) 2.699s (-4.4%) 0.000s (-50.0% 🟢) 3.013s (~) 0.669s 10 18.32x

▲ Production (Vercel)

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
▲ Vercel 🥇 Next.js (Turbopack) 2.999s (-4.8%) 3.735s (+3.8%) 0.760s (+53.8% 🔺) 5.000s (+8.6% 🔺) 2.001s 10 1.00x
▲ Vercel Nitro 3.611s (+24.1% 🔺) 4.048s (+22.3% 🔺) 1.359s (+211.3% 🔺) 5.917s (+40.4% 🔺) 2.306s 10 1.20x
▲ Vercel Express 3.762s (+27.6% 🔺) 4.490s (+39.1% 🔺) 0.829s (+105.6% 🔺) 5.898s (+40.9% 🔺) 2.136s 10 1.25x

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

Summary

Fastest Framework by World

Winner determined by most benchmark wins

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

Winner determined by most benchmark wins

Framework 🥇 Fastest World Wins
Express 💻 Local 8/8
Next.js (Turbopack) 🌐 Starter 6/8
Nitro 💻 Local 8/8
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
  • 🌐 Starter: Community world (local development)
  • 🌐 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
Contributor

github-actions bot commented Jan 2, 2026

🧪 E2E Test Results

Some tests failed

Summary

Passed Failed Skipped Total
✅ ▲ Vercel Production 308 0 11 319
✅ 💻 Local Development 282 0 8 290
✅ 📦 Local Production 282 0 8 290
✅ 🐘 Local Postgres 282 0 8 290
✅ 🪟 Windows 29 0 0 29
❌ 🌍 Community Worlds 116 12 0 128
Total 1299 12 35 1346

❌ Failed Tests

🌍 Community Worlds (12 failed)

mongodb (1 failed):

  • webhookWorkflow

redis (1 failed):

  • webhookWorkflow

starter (9 failed):

  • addTenWorkflow
  • addTenWorkflow
  • retryAttemptCounterWorkflow
  • crossFileErrorWorkflow - stack traces work across imported modules
  • hookCleanupTestWorkflow - hook token reuse after workflow completion
  • stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars)
  • stepFunctionWithClosureWorkflow - step function with closure variables passed as argument
  • spawnWorkflowFromStepWorkflow - spawning a child workflow using start() inside a step
  • pathsAliasWorkflow - TypeScript path aliases resolve correctly

turso (1 failed):

  • webhookWorkflow

Details by Category

✅ ▲ Vercel Production
App Passed Failed Skipped
✅ astro 28 0 1
✅ example 28 0 1
✅ express 28 0 1
✅ fastify 28 0 1
✅ hono 28 0 1
✅ nextjs-turbopack 28 0 1
✅ nextjs-webpack 28 0 1
✅ nitro 28 0 1
✅ nuxt 28 0 1
✅ sveltekit 28 0 1
✅ vite 28 0 1
✅ 💻 Local Development
App Passed Failed Skipped
✅ astro-stable 28 0 1
✅ express-stable 28 0 1
✅ fastify-stable 28 0 1
✅ hono-stable 28 0 1
✅ nextjs-turbopack-stable 29 0 0
✅ nextjs-webpack-stable 29 0 0
✅ nitro-stable 28 0 1
✅ nuxt-stable 28 0 1
✅ sveltekit-stable 28 0 1
✅ vite-stable 28 0 1
✅ 📦 Local Production
App Passed Failed Skipped
✅ astro-stable 28 0 1
✅ express-stable 28 0 1
✅ fastify-stable 28 0 1
✅ hono-stable 28 0 1
✅ nextjs-turbopack-stable 29 0 0
✅ nextjs-webpack-stable 29 0 0
✅ nitro-stable 28 0 1
✅ nuxt-stable 28 0 1
✅ sveltekit-stable 28 0 1
✅ vite-stable 28 0 1
✅ 🐘 Local Postgres
App Passed Failed Skipped
✅ astro-stable 28 0 1
✅ express-stable 28 0 1
✅ fastify-stable 28 0 1
✅ hono-stable 28 0 1
✅ nextjs-turbopack-stable 29 0 0
✅ nextjs-webpack-stable 29 0 0
✅ nitro-stable 28 0 1
✅ nuxt-stable 28 0 1
✅ sveltekit-stable 28 0 1
✅ vite-stable 28 0 1
✅ 🪟 Windows
App Passed Failed Skipped
✅ nextjs-turbopack 29 0 0
❌ 🌍 Community Worlds
App Passed Failed Skipped
✅ mongodb-dev 3 0 0
❌ mongodb 28 1 0
✅ redis-dev 3 0 0
❌ redis 28 1 0
✅ starter-dev 3 0 0
❌ starter 20 9 0
✅ turso-dev 3 0 0
❌ turso 28 1 0

📋 View full workflow run

@socket-security
Copy link

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addednpm/​@​radix-ui/​react-checkbox@​1.1.4991007392100

View full report

@VaguelySerious VaguelySerious merged commit 0da8e54 into main Jan 3, 2026
143 of 144 checks passed
@VaguelySerious VaguelySerious deleted the peter/cancel-multiple branch January 3, 2026 19:56
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