Skip to content

[cli] [world-local] Ensure update checks don't suggest upgrading from stable release to pre-releases - #1490

Merged
VaguelySerious merged 5 commits into
mainfrom
peter/fix-version-check-for-release
Mar 24, 2026
Merged

[cli] [world-local] Ensure update checks don't suggest upgrading from stable release to pre-releases#1490
VaguelySerious merged 5 commits into
mainfrom
peter/fix-version-check-for-release

Conversation

@VaguelySerious

Copy link
Copy Markdown
Member

No description provided.

…able releases
Signed-off-by: Peter Wielander <mittgfu@gmail.com>
@changeset-bot

changeset-botBot commented Mar 23, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: c33475c

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

This PR includes changesets to release 16 packages
NameType
@workflow/cliPatch
workflowPatch
@workflow/world-testingPatch
@workflow/aiPatch
@workflow/corePatch
@workflow/buildersPatch
@workflow/nextPatch
@workflow/nitroPatch
@workflow/vitestPatch
@workflow/web-sharedPatch
@workflow/astroPatch
@workflow/nestPatch
@workflow/rollupPatch
@workflow/sveltekitPatch
@workflow/vitePatch
@workflow/nuxtPatch

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

vercelBot commented Mar 23, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actionsBot commented Mar 23, 2026

Copy link
Copy Markdown
Contributor

📊 Benchmark Results

📈 Comparing against baseline from main branch. Green 🟢 = faster, Red 🔺 = slower.

workflow with no steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Nitro0.039s (+3.1%)1.005s (~)0.966s101.00x
💻 LocalNext.js (Turbopack)0.047s1.005s0.958s101.21x
🌐 RedisNext.js (Turbopack)0.053s1.006s0.953s101.34x
🐘 PostgresNext.js (Turbopack)0.058s1.010s0.953s101.46x
🐘 PostgresExpress0.065s (+16.4% 🔺)1.012s (~)0.947s101.65x
🐘 PostgresNitro0.072s (+2.9%)1.013s (~)0.942s101.82x
💻 LocalExpress⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Nitro0.509s (-12.7% 🟢)2.981s (+40.0% 🔺)2.471s101.00x
▲ VercelNext.js (Turbopack)0.523s (-20.9% 🟢)2.899s (+21.2% 🔺)2.376s101.03x
▲ VercelExpress0.559s (-19.1% 🟢)2.710s (-7.9% 🟢)2.151s101.10x

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

workflow with 1 step

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Nitro1.099s (+0.6%)2.006s (~)0.906s101.00x
🌐 RedisNext.js (Turbopack)1.105s2.006s0.901s101.01x
💻 LocalNext.js (Turbopack)1.120s2.006s0.886s101.02x
🐘 PostgresNext.js (Turbopack)1.137s2.011s0.874s101.03x
🐘 PostgresExpress1.143s (-0.9%)2.011s (~)0.868s101.04x
🐘 PostgresNitro1.167s (~)2.011s (~)0.844s101.06x
💻 LocalExpress⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Nitro2.248s (+7.7% 🔺)4.040s (+19.9% 🔺)1.793s101.00x
▲ VercelNext.js (Turbopack)2.347s (+13.8% 🔺)4.366s (+19.1% 🔺)2.019s101.04x
▲ VercelExpress2.380s (+12.9% 🔺)4.347s (+16.5% 🔺)1.967s101.06x

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

workflow with 10 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🌐 Redis🥇 Next.js (Turbopack)10.595s11.023s0.428s31.00x
💻 LocalNitro10.640s (~)11.022s (~)0.381s31.00x
💻 LocalNext.js (Turbopack)10.770s11.024s0.253s31.02x
🐘 PostgresNext.js (Turbopack)10.891s11.025s0.134s31.03x
🐘 PostgresNitro10.941s (-1.8%)11.026s (-8.5% 🟢)0.085s31.03x
🐘 PostgresExpress10.952s (~)11.360s (+2.9%)0.407s31.03x
💻 LocalExpress⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Next.js (Turbopack)18.008s (+4.6%)19.577s (+2.8%)1.570s21.00x
▲ VercelExpress18.631s (-3.9%)20.488s (-3.4%)1.857s21.03x
▲ VercelNitro19.164s (+7.1% 🔺)22.464s (+14.4% 🔺)3.300s21.06x

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

workflow with 25 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🌐 Redis🥇 Next.js (Turbopack)13.903s14.028s0.125s51.00x
💻 LocalNitro14.192s (~)15.029s (~)0.837s41.02x
🐘 PostgresNext.js (Turbopack)14.418s15.025s0.607s41.04x
🐘 PostgresExpress14.558s (-1.8%)15.024s (~)0.466s41.05x
💻 LocalNext.js (Turbopack)14.585s15.028s0.443s41.05x
🐘 PostgresNitro14.648s (-1.6%)15.028s (~)0.380s41.05x
💻 LocalExpress⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Nitro33.395s (+2.2%)34.730s (+2.0%)1.335s21.00x
▲ VercelExpress35.916s (+7.2% 🔺)37.503s (+7.3% 🔺)1.586s21.08x
▲ VercelNext.js (Turbopack)36.660s (+9.0% 🔺)38.516s (+10.6% 🔺)1.856s21.10x

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

workflow with 50 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🌐 Redis🥇 Next.js (Turbopack)12.832s13.168s0.336s71.00x
🐘 PostgresNext.js (Turbopack)13.737s14.025s0.287s71.07x
🐘 PostgresExpress13.984s (-3.1%)14.454s (-3.9%)0.470s71.09x
🐘 PostgresNitro14.056s (-5.4% 🟢)14.884s (-2.1%)0.828s71.10x
💻 LocalNitro14.865s (~)15.193s (+1.1%)0.329s61.16x
💻 LocalNext.js (Turbopack)16.157s16.864s0.707s61.26x
💻 LocalExpress⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Express57.456s (-5.2% 🟢)59.303s (-5.7% 🟢)1.846s21.00x
▲ VercelNitro57.605s (-6.6% 🟢)60.043s (-4.5%)2.438s21.00x
▲ VercelNext.js (Turbopack)61.632s (+0.7%)63.877s (+2.1%)2.245s21.07x

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

Promise.all with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Next.js (Turbopack)1.227s2.011s0.784s151.00x
🌐 RedisNext.js (Turbopack)1.256s2.006s0.750s151.02x
🐘 PostgresExpress1.275s (-0.6%)2.012s (~)0.737s151.04x
🐘 PostgresNitro1.289s (-0.9%)2.013s (~)0.725s151.05x
💻 LocalNext.js (Turbopack)1.482s2.005s0.523s151.21x
💻 LocalNitro1.484s (+1.8%)2.006s (~)0.522s151.21x
💻 LocalExpress⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Nitro2.632s (+4.2%)4.983s (+29.8% 🔺)2.351s71.00x
▲ VercelExpress3.127s (+10.0% 🔺)4.830s (+9.2% 🔺)1.702s71.19x
▲ VercelNext.js (Turbopack)3.380s (+30.4% 🔺)5.099s (+24.4% 🔺)1.718s61.28x

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

Promise.all with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express2.326s (-4.7%)3.010s (~)0.684s101.00x
🐘 PostgresNitro2.386s (-4.3%)3.012s (~)0.626s101.03x
🐘 PostgresNext.js (Turbopack)2.401s3.011s0.609s101.03x
🌐 RedisNext.js (Turbopack)2.446s3.008s0.562s101.05x
💻 LocalNext.js (Turbopack)2.682s3.108s0.426s101.15x
💻 LocalNitro2.862s (+13.3% 🔺)3.108s (+3.3%)0.246s101.23x
💻 LocalExpress⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Nitro2.929s (+12.4% 🔺)4.630s (+26.2% 🔺)1.701s71.00x
▲ VercelExpress2.941s (-10.0% 🟢)4.604s (-10.9% 🟢)1.663s71.00x
▲ VercelNext.js (Turbopack)3.026s (+3.0%)5.153s (+20.2% 🔺)2.127s61.03x

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

Promise.all with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.450s (-3.4%)4.010s (~)0.560s81.00x
🐘 PostgresNitro3.508s (-4.3%)4.014s (~)0.506s81.02x
🐘 PostgresNext.js (Turbopack)3.645s4.012s0.367s81.06x
🌐 RedisNext.js (Turbopack)3.927s4.296s0.368s71.14x
💻 LocalNitro6.926s (+3.6%)7.414s (+5.7% 🔺)0.487s52.01x
💻 LocalNext.js (Turbopack)7.326s8.018s0.692s42.12x
💻 LocalExpress⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Express3.340s (+6.0% 🔺)5.083s (+4.3%)1.744s61.00x
▲ VercelNitro3.491s (+3.0%)6.053s (+26.3% 🔺)2.562s51.05x
▲ VercelNext.js (Turbopack)3.845s (-7.7% 🟢)5.420s (-2.4%)1.575s61.15x

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

Promise.race with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Next.js (Turbopack)1.214s2.010s0.796s151.00x
🌐 RedisNext.js (Turbopack)1.232s2.006s0.775s151.01x
🐘 PostgresExpress1.252s (-3.0%)2.009s (~)0.757s151.03x
🐘 PostgresNitro1.259s (-2.4%)2.010s (~)0.751s151.04x
💻 LocalNitro1.473s (+0.6%)2.005s (~)0.532s151.21x
💻 LocalNext.js (Turbopack)1.565s2.006s0.441s151.29x
💻 LocalExpress⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Next.js (Turbopack)2.457s (-5.0%)4.374s (+15.7% 🔺)1.917s81.00x
▲ VercelNitro2.797s (+21.3% 🔺)4.379s (+16.5% 🔺)1.581s71.14x
▲ VercelExpress2.821s (+24.6% 🔺)4.573s (+17.0% 🔺)1.752s71.15x

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

Promise.race with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express2.340s (-4.6%)3.011s (~)0.672s101.00x
🐘 PostgresNitro2.352s (-5.7% 🟢)3.012s (~)0.660s101.01x
🐘 PostgresNext.js (Turbopack)2.398s3.009s0.610s101.03x
🌐 RedisNext.js (Turbopack)2.452s3.008s0.556s101.05x
💻 LocalNitro2.819s (-1.7%)3.108s (~)0.288s101.21x
💻 LocalNext.js (Turbopack)3.045s3.760s0.715s81.30x
💻 LocalExpress⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Next.js (Turbopack)2.781s (-7.2% 🟢)5.029s (+17.2% 🔺)2.248s61.00x
▲ VercelNitro3.040s (+5.7% 🔺)4.934s (+14.6% 🔺)1.894s71.09x
▲ VercelExpress3.207s (+34.1% 🔺)4.900s (+24.1% 🔺)1.694s71.15x

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

Promise.race with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.474s (-3.4%)4.012s (~)0.539s81.00x
🐘 PostgresNitro3.522s (-3.5%)4.015s (~)0.493s81.01x
🐘 PostgresNext.js (Turbopack)3.631s4.011s0.380s81.05x
🌐 RedisNext.js (Turbopack)3.919s4.296s0.377s71.13x
💻 LocalNitro7.724s (+4.5%)8.015s (~)0.291s42.22x
💻 LocalNext.js (Turbopack)8.690s9.266s0.576s42.50x
💻 LocalExpress⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Nitro3.260s (+5.1% 🔺)5.025s (+6.6% 🔺)1.764s61.00x
▲ VercelExpress3.502s (+12.0% 🔺)5.204s (+11.2% 🔺)1.702s61.07x
▲ VercelNext.js (Turbopack)3.668s (+2.3%)5.536s (+12.4% 🔺)1.868s61.13x

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

workflow with 10 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🌐 Redis🥇 Next.js (Turbopack)0.572s1.004s0.433s601.00x
💻 LocalNitro0.684s (+1.5%)1.004s (~)0.320s601.20x
🐘 PostgresNext.js (Turbopack)0.744s1.007s0.264s601.30x
🐘 PostgresExpress0.817s (-10.7% 🟢)1.008s (-6.6% 🟢)0.191s601.43x
🐘 PostgresNitro0.845s (-12.8% 🟢)1.008s (-18.4% 🟢)0.163s601.48x
💻 LocalNext.js (Turbopack)0.850s1.039s0.189s581.49x
💻 LocalExpress⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Nitro10.178s (+1.1%)12.623s (+10.5% 🔺)2.445s51.00x
▲ VercelNext.js (Turbopack)10.632s (+7.0% 🔺)13.163s (+6.5% 🔺)2.531s51.04x
▲ VercelExpress10.765s (~)18.663s (+51.5% 🔺)7.898s51.06x

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

workflow with 25 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🌐 Redis🥇 Next.js (Turbopack)1.351s2.006s0.655s451.00x
🐘 PostgresNext.js (Turbopack)1.883s2.077s0.193s441.39x
🐘 PostgresExpress1.929s (-13.3% 🟢)2.125s (-29.5% 🟢)0.196s431.43x
🐘 PostgresNitro2.013s (-12.9% 🟢)2.510s (-16.7% 🟢)0.498s361.49x
💻 LocalNitro2.221s (+1.3%)3.007s (~)0.786s301.64x
💻 LocalNext.js (Turbopack)2.606s3.008s0.402s301.93x
💻 LocalExpress⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Express31.599s (+4.7%)33.369s (+4.3%)1.770s31.00x
▲ VercelNitro32.208s (+7.3% 🔺)33.802s (+6.0% 🔺)1.595s31.02x
▲ VercelNext.js (Turbopack)33.366s (+2.9%)35.577s (+5.7% 🔺)2.211s31.06x

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

workflow with 50 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🌐 Redis🥇 Next.js (Turbopack)2.732s3.085s0.352s391.00x
🐘 PostgresNext.js (Turbopack)3.802s4.077s0.276s301.39x
🐘 PostgresExpress3.915s (-12.9% 🟢)4.218s (-15.9% 🟢)0.303s291.43x
🐘 PostgresNitro4.232s (-11.6% 🟢)5.014s (-1.7%)0.782s241.55x
💻 LocalNitro7.292s (+0.7%)8.015s (~)0.723s152.67x
💻 LocalNext.js (Turbopack)8.430s9.017s0.587s143.09x
💻 LocalExpress⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Nitro85.132s (-1.2%)101.929s (+16.8% 🔺)16.796s21.00x
▲ VercelExpress85.478s (-4.9%)87.510s (-4.6%)2.033s21.00x
▲ VercelNext.js (Turbopack)88.102s (+2.3%)90.043s (+1.8%)1.941s21.03x

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

workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Next.js (Turbopack)0.246s1.007s0.761s601.00x
🌐 RedisNext.js (Turbopack)0.253s1.004s0.751s601.03x
🐘 PostgresExpress0.275s (-7.3% 🟢)1.008s (~)0.733s601.11x
🐘 PostgresNitro0.296s (-6.8% 🟢)1.009s (~)0.713s601.20x
💻 LocalNext.js (Turbopack)0.547s1.004s0.457s602.22x
💻 LocalNitro0.580s (+3.4%)1.004s (~)0.424s602.35x
💻 LocalExpress⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Express2.172s (+10.6% 🔺)4.108s (+14.3% 🔺)1.936s161.00x
▲ VercelNitro2.426s (+44.4% 🔺)24.398s (+639.0% 🔺)21.973s31.12x
▲ VercelNext.js (Turbopack)2.446s (+29.3% 🔺)12.841s (+242.3% 🔺)10.395s71.13x

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

workflow with 25 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Next.js (Turbopack)0.469s1.007s0.538s901.00x
🐘 PostgresExpress0.502s (-8.4% 🟢)1.008s (~)0.506s901.07x
🐘 PostgresNitro0.531s (-9.0% 🟢)1.008s (~)0.478s901.13x
🌐 RedisNext.js (Turbopack)1.112s1.942s0.830s472.37x
💻 LocalNitro2.395s (+2.2%)3.008s (~)0.613s305.10x
💻 LocalNext.js (Turbopack)2.565s3.008s0.443s305.46x
💻 LocalExpress⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Express2.911s (+3.9%)7.095s (+51.5% 🔺)4.184s131.00x
▲ VercelNitro3.229s (+7.5% 🔺)7.163s (+61.0% 🔺)3.934s131.11x
▲ VercelNext.js (Turbopack)3.635s (+12.1% 🔺)5.292s (+12.0% 🔺)1.657s181.25x

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

workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Next.js (Turbopack)0.729s1.007s0.278s1201.00x
🐘 PostgresExpress0.777s (-15.5% 🟢)1.008s (-18.7% 🟢)0.231s1201.07x
🐘 PostgresNitro0.830s (-14.2% 🟢)1.011s (-27.7% 🟢)0.181s1191.14x
🌐 RedisNext.js (Turbopack)2.635s3.007s0.373s403.62x
💻 LocalNitro10.320s (+4.0%)10.856s (+4.8%)0.536s1214.16x
💻 LocalNext.js (Turbopack)10.600s11.209s0.609s1114.54x
💻 LocalExpress⚠️missing----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Next.js (Turbopack)6.600s (-79.4% 🟢)8.387s (-75.2% 🟢)1.786s151.00x
▲ VercelExpress6.661s (~)8.339s (-4.8%)1.679s151.01x
▲ VercelNitro7.491s (+3.6%)9.347s (+7.8% 🔺)1.855s131.14x

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

Stream Benchmarks(includes TTFB metrics)
workflow with stream

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Nitro0.138s (-1.0%)1.003s (~)0.010s (+4.1%)1.016s (~)0.878s101.00x
🌐 RedisNext.js (Turbopack)0.154s1.001s0.001s1.008s0.854s101.12x
💻 LocalNext.js (Turbopack)0.171s1.000s0.012s1.017s0.846s101.25x
🐘 PostgresNext.js (Turbopack)0.189s1.000s0.001s1.010s0.822s101.37x
🐘 PostgresExpress0.203s (-8.7% 🟢)0.993s (~)0.001s (~)1.010s (~)0.806s101.48x
🐘 PostgresNitro0.228s (-5.3% 🟢)0.992s (~)0.001s (-22.2% 🟢)1.013s (~)0.785s101.66x
💻 LocalExpress⚠️missing-----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Next.js (Turbopack)1.708s (+4.4%)3.249s (+11.3% 🔺)0.735s (+84.2% 🔺)5.069s (+30.8% 🔺)3.361s101.00x
▲ VercelExpress1.772s (-17.2% 🟢)2.747s (-18.0% 🟢)0.608s (+438.2% 🔺)4.033s (-3.4%)2.261s101.04x
▲ VercelNitro1.865s (+20.7% 🔺)3.063s (+17.2% 🔺)0.640s (+39.9% 🔺)4.406s (+22.6% 🔺)2.541s101.09x

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

stream pipeline with 5 transform steps (1MB)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🌐 Redis🥇 Next.js (Turbopack)0.401s1.000s0.003s1.011s0.610s601.00x
💻 LocalNitro0.575s (+1.4%)1.008s (~)0.009s (-3.9%)1.021s (~)0.446s591.44x
🐘 PostgresNext.js (Turbopack)0.592s1.008s0.005s1.024s0.432s591.48x
🐘 PostgresExpress0.595s (-15.4% 🟢)1.004s (~)0.004s (-36.5% 🟢)1.024s (-0.9%)0.429s591.49x
🐘 PostgresNitro0.643s (-11.3% 🟢)1.001s (~)0.005s (-16.8% 🟢)1.025s (~)0.383s591.60x
💻 LocalNext.js (Turbopack)0.656s1.008s0.010s1.024s0.368s591.64x
💻 LocalExpress⚠️missing-----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Nitro4.356s (-18.4% 🟢)5.555s (-9.6% 🟢)0.339s (-46.1% 🟢)6.575s (-12.8% 🟢)2.219s101.00x
▲ VercelExpress4.688s (+3.2%)5.849s (+4.5%)0.224s (-5.3% 🟢)6.887s (+2.2%)2.199s91.08x
▲ VercelNext.js (Turbopack)5.305s (+16.2% 🔺)6.372s (+14.0% 🔺)0.380s (+69.2% 🔺)7.636s (+18.1% 🔺)2.331s81.22x

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

10 parallel streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🌐 Redis🥇 Next.js (Turbopack)0.871s1.052s0.000s1.057s0.186s571.00x
🐘 PostgresNext.js (Turbopack)0.937s1.131s0.000s1.140s0.204s531.08x
🐘 PostgresExpress0.976s (-13.0% 🟢)1.216s (-31.7% 🟢)0.000s (+4.1%)1.233s (-31.9% 🟢)0.257s491.12x
🐘 PostgresNitro1.021s (-12.7% 🟢)1.387s (-30.5% 🟢)0.000s (+4.7%)1.405s (-30.5% 🟢)0.384s431.17x
💻 LocalNitro1.169s (+3.1%)2.018s (~)0.000s (+62.5% 🔺)2.021s (~)0.851s301.34x
💻 LocalNext.js (Turbopack)1.254s2.020s0.001s2.025s0.771s301.44x
💻 LocalExpress⚠️missing-----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Nitro3.101s (+2.5%)4.196s (+6.9% 🔺)0.000s (-46.2% 🟢)4.910s (+11.0% 🔺)1.809s131.00x
▲ VercelExpress3.834s (+19.7% 🔺)4.754s (+10.3% 🔺)0.000s (-100.0% 🟢)5.576s (+8.4% 🔺)1.743s111.24x
▲ VercelNext.js (Turbopack)4.069s (+15.6% 🔺)11.276s (+142.4% 🔺)0.000s (NaN%)12.153s (+133.4% 🔺)8.084s51.31x

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

fan-out fan-in 10 streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🌐 Redis🥇 Next.js (Turbopack)1.622s2.002s0.000s2.007s0.384s301.00x
🐘 PostgresExpress1.739s (-15.5% 🟢)2.174s (-12.2% 🟢)0.000s (+Infinity% 🔺)2.190s (-12.4% 🟢)0.451s281.07x
🐘 PostgresNext.js (Turbopack)1.809s2.105s0.000s2.121s0.313s291.11x
🐘 PostgresNitro1.832s (-19.1% 🟢)2.218s (-24.9% 🟢)0.000s (-100.0% 🟢)2.234s (-24.8% 🟢)0.403s271.13x
💻 LocalNitro3.498s (+1.1%)4.098s (+1.7%)0.001s (-15.4% 🟢)4.103s (+1.7%)0.604s152.16x
💻 LocalNext.js (Turbopack)3.744s4.298s0.000s4.304s0.560s152.31x
💻 LocalExpress⚠️missing-----

▲ Production (Vercel)

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
▲ Vercel🥇 Express4.151s (+5.2% 🔺)5.395s (+8.2% 🔺)0.000s (+Infinity% 🔺)6.128s (+4.6%)1.977s101.00x
▲ VercelNitro4.497s (+29.9% 🔺)25.936s (+518.8% 🔺)0.000s (NaN%)26.614s (+460.7% 🔺)22.117s31.08x
▲ VercelNext.js (Turbopack)5.302s (+18.5% 🔺)6.246s (+15.3% 🔺)0.000s (-100.0% 🟢)6.932s (+16.6% 🔺)1.631s91.28x

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

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World🥇 Fastest FrameworkWins
💻 LocalNitro18/21
🐘 PostgresNext.js (Turbopack)16/21
▲ VercelNitro10/21
Fastest World by Framework

Winner determined by most benchmark wins

Framework🥇 Fastest WorldWins
Express🐘 Postgres20/21
Next.js (Turbopack)🌐 Redis11/21
Nitro🐘 Postgres12/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

@github-actions

github-actionsBot commented Mar 23, 2026

Copy link
Copy Markdown
Contributor

🧪 E2E Test Results

Some tests failed

Summary

PassedFailedSkippedTotal
❌ ▲ Vercel Production779167847
✅ 💻 Local Development7820142924
✅ 📦 Local Production7820142924
✅ 🐘 Local Postgres7820142924
✅ 🪟 Windows720577
❌ 🌍 Community Worlds1185621195
✅ 📋 Other198033231
Total3513575524122

❌ Failed Tests

▲ Vercel Production (1 failed)

astro (1 failed):

  • DurableAgent e2e experimental_onToolCallStart (GAP) completes but callbacks are not called (GAP)
🌍 Community Worlds (56 failed)

mongodb (3 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KMEM1Z5C1PHAZQX01BHWKAVY
  • webhookWorkflow | wrun_01KMEM27A9VEJTVR7TWVXYASEK
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KMEM8DKTSNRD5SVBA28561YT

redis (2 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KMEM1Z5C1PHAZQX01BHWKAVY
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KMEM8DKTSNRD5SVBA28561YT

turso (51 failed):

  • addTenWorkflow | wrun_01KMEM0R3GHM10FD986C8W8JNM
  • addTenWorkflow | wrun_01KMEM0R3GHM10FD986C8W8JNM
  • wellKnownAgentWorkflow (.well-known/agent) | wrun_01KMEM1W0DGHJPDYH3P7GEYP8R
  • should work with react rendering in step
  • promiseAllWorkflow | wrun_01KMEM104BA7H59CY03HQ36W1B
  • promiseRaceWorkflow | wrun_01KMEM15G25NRFZ4XJTQCNKJDK
  • promiseAnyWorkflow | wrun_01KMEM17CEBN5GP8KH4VDG71YK
  • importedStepOnlyWorkflow | wrun_01KMEM2A426WEE90JN5NXX2Y19
  • hookWorkflow | wrun_01KMEM1NCFWEXGJRBD3ZFANNFQ
  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KMEM1Z5C1PHAZQX01BHWKAVY
  • webhookWorkflow | wrun_01KMEM27A9VEJTVR7TWVXYASEK
  • sleepingWorkflow | wrun_01KMEM2DVYC4408N6GW51G9RE9
  • parallelSleepWorkflow | wrun_01KMEM2SXGNJ0PP8TR04VGKTVJ
  • nullByteWorkflow | wrun_01KMEM2Y6MSC3A1XXDJ0B90PTB
  • workflowAndStepMetadataWorkflow | wrun_01KMEM302V52W68KD53WR43TFY
  • fetchWorkflow | wrun_01KMEM4Y9J47NXB808Y395GWE1
  • promiseRaceStressTestWorkflow | wrun_01KMEM51BGGXY49468XD3PD4Y1
  • error handling error propagation workflow errors nested function calls preserve message and stack trace
  • error handling error propagation workflow errors cross-file imports preserve message and stack trace
  • error handling error propagation step errors basic step error preserves message and stack trace
  • error handling error propagation step errors cross-file step error preserves message and function names in stack
  • error handling retry behavior regular Error retries until success
  • error handling retry behavior FatalError fails immediately without retries
  • error handling retry behavior RetryableError respects custom retryAfter delay
  • error handling retry behavior maxRetries=0 disables retries
  • error handling catchability FatalError can be caught and detected with FatalError.is()
  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_01KMEM7TSSZKE0Y59757QH8YNA
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KMEM8DKTSNRD5SVBA28561YT
  • hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KMEM91QT30PB7MYPGSZ986BC
  • stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KMEM9MQCRBRRY6SJQHSHG3C5
  • stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KMEM9WKCR01CC99XADVMPZ9F
  • closureVariableWorkflow - nested step functions with closure variables | wrun_01KMEMA37PSN5X3Y31VHV3F2MK
  • spawnWorkflowFromStepWorkflow - spawning a child workflow using start() inside a step | wrun_01KMEMA566Q0EX945PDF53QPD1
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • pathsAliasWorkflow - TypeScript path aliases resolve correctly | wrun_01KMEMAN91E0A4CAXN81R2D89G
  • Calculator.calculate - static workflow method using static step methods from another class | wrun_01KMEMATGYTFCS76P1RVQE1MJW
  • AllInOneService.processNumber - static workflow method using sibling static step methods | wrun_01KMEMB0C030BKEQT3F1MA3PZM
  • ChainableService.processWithThis - static step methods using this to reference the class | wrun_01KMEMB6AX9VBVC2MT1P38CW39
  • thisSerializationWorkflow - step function invoked with .call() and .apply() | wrun_01KMEMBE2SZ29WACSNYX52Y48M
  • customSerializationWorkflow - custom class serialization with WORKFLOW_SERIALIZE/WORKFLOW_DESERIALIZE | wrun_01KMEMBMJFK9YTDGNZZTNHFW62
  • instanceMethodStepWorkflow - instance methods with "use step" directive | wrun_01KMEMBVS1PQC63YQ983RZV48K
  • crossContextSerdeWorkflow - classes defined in step code are deserializable in workflow context | wrun_01KMEMC5M914WQW9JKJ71AVF9G
  • stepFunctionAsStartArgWorkflow - step function reference passed as start() argument | wrun_01KMEMCDPW8MKY0MVDVEWAX48G
  • cancelRun - cancelling a running workflow | wrun_01KMEMCKM5ZBKQE6KAHMWQAFM1
  • cancelRun via CLI - cancelling a running workflow | wrun_01KMEMCW8BFGWT39BR65GJ6J99
  • pages router addTenWorkflow via pages router
  • pages router promiseAllWorkflow via pages router
  • pages router sleepingWorkflow via pages router
  • hookWithSleepWorkflow - hook payloads delivered correctly with concurrent sleep | wrun_01KMEMD74RQWWR5HKJATBJNANY
  • sleepInLoopWorkflow - sleep inside loop with steps actually delays each iteration | wrun_01KMEMDSSZ62P3ZAYMTJ8E9FYP
  • sleepWithSequentialStepsWorkflow - sequential steps work with concurrent sleep (control) | wrun_01KMEME9043WNWYHQR0405RJR7

Details by Category

❌ ▲ Vercel Production
AppPassedFailedSkipped
❌ astro6917
✅ example7007
✅ express7007
✅ fastify7007
✅ hono7007
✅ nextjs-turbopack7502
✅ nextjs-webpack7502
✅ nitro7007
✅ nuxt7007
✅ sveltekit7007
✅ vite7007
✅ 💻 Local Development
AppPassedFailedSkipped
✅ astro-stable66011
✅ express-stable66011
✅ fastify-stable66011
✅ hono-stable66011
✅ nextjs-turbopack-canary55022
✅ nextjs-turbopack-stable7205
✅ nextjs-webpack-canary55022
✅ nextjs-webpack-stable7205
✅ nitro-stable66011
✅ nuxt-stable66011
✅ sveltekit-stable66011
✅ vite-stable66011
✅ 📦 Local Production
AppPassedFailedSkipped
✅ astro-stable66011
✅ express-stable66011
✅ fastify-stable66011
✅ hono-stable66011
✅ nextjs-turbopack-canary55022
✅ nextjs-turbopack-stable7205
✅ nextjs-webpack-canary55022
✅ nextjs-webpack-stable7205
✅ nitro-stable66011
✅ nuxt-stable66011
✅ sveltekit-stable66011
✅ vite-stable66011
✅ 🐘 Local Postgres
AppPassedFailedSkipped
✅ astro-stable66011
✅ express-stable66011
✅ fastify-stable66011
✅ hono-stable66011
✅ nextjs-turbopack-canary55022
✅ nextjs-turbopack-stable7205
✅ nextjs-webpack-canary55022
✅ nextjs-webpack-stable7205
✅ nitro-stable66011
✅ nuxt-stable66011
✅ sveltekit-stable66011
✅ vite-stable66011
✅ 🪟 Windows
AppPassedFailedSkipped
✅ nextjs-turbopack7205
❌ 🌍 Community Worlds
AppPassedFailedSkipped
✅ mongodb-dev302
❌ mongodb5235
✅ redis-dev302
❌ redis5325
✅ turso-dev302
❌ turso4515
✅ 📋 Other
AppPassedFailedSkipped
✅ e2e-local-dev-nest-stable66011
✅ e2e-local-postgres-nest-stable66011
✅ e2e-local-prod-nest-stable66011

📋 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.

@karthikscale3karthikscale3 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks good to me

Here's my review of PR #1490:

Note: This PR is still in Draft status.

Summary

A small, focused bug fix PR by @VaguelySerious that prevents two update-check mechanisms from incorrectly suggesting users upgrade to pre-release versions when they're on stable releases. It touches two packages:

  1. @workflow/cli (update-check.ts) - The CLI's "new version available" prompt
  2. @workflow/world-local (init.ts) - The data directory version migration logic

No Blockers

The code changes are correct and well-scoped. No regressions.

CI Status

CI is still running (most E2E/benchmark jobs are pending). What has completed so far:

Passing:

  • Build Packages passes
  • Unit Tests pass (ubuntu + windows)
  • Vitest Plugin Tests pass
  • All Vercel deployments succeed (all 13 projects)
  • Docs code samples and links pass
  • Community World (Turso) E2E passes
  • Socket Security passes

Pending:

  • All E2E suites (Vercel Prod, Local Dev/Prod/Postgres, Windows, MongoDB/Redis community worlds)
  • All benchmarks

No failures so far. Given the narrow scope of the changes (version-checking logic only, no runtime behavior changes), I'd expect all E2E/benchmarks to pass cleanly.

Code Review

1. CLI update check (packages/cli/src/lib/update-check.ts) - Correct

Two call sites are patched, both with the same pattern:

constisPrerelease=latestVersion.includes('-');constneedsUpdate=!isPrerelease&&compareVersions(latestVersion,currentVersion);

This gates needsUpdate on the latest version not being a pre-release. The check is applied in both:

  • checkForUpdate() - the live npm registry check
  • checkForUpdateCached() - the cached version check path

Simple and effective. The includes('-') check works because semver pre-release tags always contain a hyphen (e.g., 5.0.0-beta.1).

2. world-local data dir init (packages/world-local/src/init.ts) - Correct

The guard prevents a pre-release version from triggering a data directory upgrade/migration when the stored version has a different base version:

if(currentVersion.prerelease&&(currentVersion.major!==oldVersion.major||currentVersion.minor!==oldVersion.minor||currentVersion.patch!==oldVersion.patch)){return;}

This means: if you're running 5.1.0-beta.3 and the data dir was created by 4.2.0, don't attempt the migration. But if you're running 5.1.0-beta.3 and the data dir was from 5.1.0-beta.1 (same base), the upgrade proceeds normally. This is the right behavior - pre-releases shouldn't perform cross-version migrations.

3. Tests (packages/world-local/src/init.test.ts) - Thorough

  • Existing tests for "older version" and "newer version" upgrade scenarios are updated to be prerelease-aware, dynamically choosing stored versions that will trigger/bypass the guard appropriately
  • A new test 'should skip upgrade when current version is prerelease with different base' specifically validates the guard, and correctly uses if (!current.prerelease) return; to skip when the current package isn't a prerelease (since the test is only meaningful in that context)

4. Changeset - Present and correct

Includes @workflow/world-local and @workflow/cli as patch changes.

Minor Observations

  • The PR title says "don't suggest upgrading to pre-releases from stable releases" but the CLI fix actually prevents suggesting any upgrade when the latest is a pre-release (regardless of whether the user is on stable or pre-release). This seems intentional - if you're on a pre-release, you already know what you're doing, and if you're on stable, you definitely shouldn't be prompted to go to a pre-release.
  • The world-local fix is the inverse direction: it prevents a pre-release binary from upgrading data dirs created by a different-base stable version. So the two fixes complement each other nicely.

Verdict

No blockers or regressions. Clean, well-tested bug fix. Still in draft and CI is still running, but the changes are narrow and low-risk. Once CI completes and the PR is marked ready for review, it should be straightforward to merge.

@VaguelySerious
VaguelySerious marked this pull request as ready for review March 23, 2026 23:09
@VaguelySerious
VaguelySerious requested a review from a team as a code ownerMarch 23, 2026 23:09
Signed-off-by: Peter Wielander <mittgfu@gmail.com>
@VaguelySerious

Copy link
Copy Markdown
MemberAuthor

@karthikscale3 I made some changes, please re-review

Comment thread.changeset/great-kings-return.md Outdated

@karthikscale3karthikscale3 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

A few issues to address:

  1. Changeset description is inverted — says "from pre-release to stable" but the code blocks "from stable to pre-release"
  2. @workflow/world-local in changeset has no corresponding code changes — will cause a spurious patch bump
  3. No test coverage for compareVersions or the new pre-release guard

Comment thread.changeset/great-kings-return.md Outdated
"@workflow/cli": patch
---

Ensure update checks don't suggest upgrading from pre-release to stable releases

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Two issues here:

  1. Description is inverted: The code blocks updates when current=stable AND latest=prerelease (i.e. stable → prerelease). But this says "from pre-release to stable releases" which is the opposite direction. Should read something like: "Ensure update checks don't suggest upgrading to pre-release from stable releases"

  2. @workflow/world-local has no changes in this PR — there are no world-local files touched. This will cause a spurious patch version bump. Was there an init.ts change that was intended but dropped?

Comment threadpackages/cli/src/lib/update-check.ts
Comment threadpackages/cli/src/lib/update-check.ts
Signed-off-by: Peter Wielander <mittgfu@gmail.com>
@VaguelySerious

Copy link
Copy Markdown
MemberAuthor

@pranaygp@karthikscale3 Please re-review. I updated the changset and PR title. Code is the same

@pranaygppranaygp left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks good — all prior feedback has been addressed. The guard is now precise (currentIsStable && latestIsPrerelease), the changeset description is correct, world-local was properly reverted, and the scope is clean.

Two minor nits remaining (non-blocking):

  1. Line 140 comment// Always use 'latest' tag - even beta versions are published as latest is now misleading since it describes the root cause of the bug this PR fixes without noting the mitigation. @VaguelySerious posted a suggestion to delete it but it wasn't applied. Either remove it or update it to something like: // Always use 'latest' tag — beta versions may be published under this tag, so the caller filters out prerelease versions before prompting.

  2. Duplicated logic — the currentIsStable && latestIsPrerelease guard appears in both checkForUpdate() and checkForUpdateCached(). A small shouldSuggestUpdate() helper would keep them in sync. Not a blocker for this PR.

Comment threadpackages/cli/src/lib/update-check.ts Outdated

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Suggested change

Signed-off-by: Peter Wielander <mittgfu@gmail.com>
@VaguelySerious
VaguelySerious merged commit 5837d57 into mainMar 24, 2026
10 of 23 checks passed
@VaguelySerious
VaguelySerious deleted the peter/fix-version-check-for-release branch March 24, 2026 00:29
@ghostghost mentioned this pull request Mar 23, 2026
pranaygp added a commit that referenced this pull request Mar 24, 2026
…naygp-db9e68c1
* 'main' of https://github.com/vercel/workflow: (32 commits)
chore: bump @nestjs/* to ^11.1.17 (#1497)
chore: bump hono to ^4.12.8 (#1495)
Revert "Inline class serialization registration to fix 3rd-party package supp…" (#1493)
[world] Add stream pagination and metadata endpoints (#1470)
[cli] [world-local] Ensure update checks don't suggest upgrading from stable release to pre-releases (#1490)
Remove NestJS Vercel integration while in experimental phase (#1485)
feat: export semantic error types and add API reference docs (#1447)
feat: enforce max queue deliveries in handlers with graceful failure (#1344)
[world-postgres] Migrate client from `postgres.js` to `pg` (#1484)
Inline class serialization registration to fix 3rd-party package support (#1480)
[ai] Add experimental_context to DurableAgentOptions (#1489)
[ai] Expose configured tools on DurableAgent instances (#1488)
fix(builders): catch node builtin usage when entry fields diverge (#1455)
[web-shared] Fix timeline duration format and precision (#1482)
[cli] Add bulk cancel, --status filter, fix step JSON hydration (#1467)
[utils] Re-export parseName utilities and add workflow/observability module (#1453)
[o11y] Polish display when run data has expired (#1438)
Add CommonJS `require()` support for class serialization detection in SWC plugin (#1144)
fix(next): stabilize deferred canary e2e in nextjs workbenches (#1468)
[web] Support legacy newline-delimited stream format in `useStreamReader` (#1473)
...
pranaygp added a commit that referenced this pull request Mar 24, 2026
…naygp-6fadd605
* 'main' of https://github.com/vercel/workflow: (73 commits)
chore: bump next to 16.2.1 and fix deferred build (#1496)
chore: bump nitropack to ^2.13.1 (#1501)
chore: bump nuxt ecosystem dependencies (#1500)
chore: bump sveltekit ecosystem (#1498)
chore: bump express and fastify in workbenches (#1499)
chore: bump @nestjs/* to ^11.1.17 (#1497)
chore: bump hono to ^4.12.8 (#1495)
Revert "Inline class serialization registration to fix 3rd-party package supp…" (#1493)
[world] Add stream pagination and metadata endpoints (#1470)
[cli] [world-local] Ensure update checks don't suggest upgrading from stable release to pre-releases (#1490)
Remove NestJS Vercel integration while in experimental phase (#1485)
feat: export semantic error types and add API reference docs (#1447)
feat: enforce max queue deliveries in handlers with graceful failure (#1344)
[world-postgres] Migrate client from `postgres.js` to `pg` (#1484)
Inline class serialization registration to fix 3rd-party package support (#1480)
[ai] Add experimental_context to DurableAgentOptions (#1489)
[ai] Expose configured tools on DurableAgent instances (#1488)
fix(builders): catch node builtin usage when entry fields diverge (#1455)
[web-shared] Fix timeline duration format and precision (#1482)
[cli] Add bulk cancel, --status filter, fix step JSON hydration (#1467)
...
# Conflicts:
#	packages/core/src/runtime/start.ts
Sign up for freeto 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

@VaguelySerious@pranaygp@karthikscale3