[docs] Rename workflowdevkit to workflowsdk and useworkflow.dev to workflow-sdk.dev - #1759

Merged
TooTallNate merged 4 commits into
mainfrom
fix/rename-workflowdevkit-to-workflowsdk
Apr 16, 2026
Merged

[docs] Rename workflowdevkit to workflowsdk and useworkflow.dev to workflow-sdk.dev#1759
TooTallNate merged 4 commits into
mainfrom
fix/rename-workflowdevkit-to-workflowsdk

Conversation

@TooTallNate

@TooTallNateTooTallNate commented Apr 16, 2026

Copy link
Copy Markdown
Member

Summary

  • Updates the X/Twitter social link from @workflowdevkit to @workflowsdk
  • Renames "Workflow DevKit" / "Workflow Dev Kit" to "Workflow SDK" in docs and tweet wall
  • Updates example config/test filenames from workflowdevkit to workflowsdk in the publishing libraries cookbook
  • Replaces all 56 references to useworkflow.dev with workflow-sdk.dev across 36 files (source code, READMEs, skills, docs)
  • Bumps skill versions for workflow (1.7 → 1.8) and workflow-init (1.1 → 1.2)

@TooTallNate
TooTallNate requested a review from a team as a code ownerApril 16, 2026 00:21
CopilotAI review requested due to automatic review settings April 16, 2026 00:21
@vercel

vercelBot commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

@changeset-bot

changeset-botBot commented Apr 16, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: cebcc56

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

This PR includes changesets to release 24 packages
NameType
@workflow/corePatch
workflowPatch
@workflow/errorsPatch
@workflow/buildersPatch
@workflow/cliPatch
@workflow/nuxtPatch
@workflow/typescript-pluginPatch
@workflow/webPatch
@workflow/aiPatch
@workflow/astroPatch
@workflow/nextPatch
@workflow/nitroPatch
@workflow/sveltekitPatch
@workflow/swc-pluginPatch
@workflow/utilsPatch
@workflow/vitePatch
@workflow/web-sharedPatch
@workflow/vitestPatch
@workflow/world-testingPatch
@workflow/world-localPatch
@workflow/world-postgresPatch
@workflow/world-vercelPatch
@workflow/nestPatch
@workflow/rollupPatch

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

github-actionsBot commented Apr 16, 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🥇 Express0.041s (-7.0% 🟢)1.005s (~)0.964s101.00x
💻 LocalNitro0.050s (+16.7% 🔺)1.006s (~)0.956s101.22x
🐘 PostgresNitro0.059s (-37.6% 🟢)1.010s (-3.2%)0.951s101.44x
🐘 PostgresExpress0.069s (+18.1% 🔺)1.011s (~)0.942s101.66x
workflow with 1 step

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Express1.128s (~)2.005s (~)0.878s101.00x
💻 LocalNitro1.129s (~)2.007s (~)0.878s101.00x
🐘 PostgresExpress1.150s (~)2.008s (~)0.858s101.02x
🐘 PostgresNitro1.154s (+1.2%)2.015s (~)0.861s101.02x
workflow with 10 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express10.832s (-1.2%)11.019s (~)0.187s31.00x
🐘 PostgresNitro10.896s (~)11.024s (~)0.128s31.01x
💻 LocalExpress10.933s (~)11.023s (~)0.091s31.01x
💻 LocalNitro10.935s (~)11.025s (~)0.090s31.01x
workflow with 25 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express14.478s (-0.7%)15.020s (~)0.542s41.00x
🐘 PostgresNitro14.610s (~)15.025s (~)0.415s41.01x
💻 LocalExpress14.909s (~)15.028s (~)0.119s41.03x
💻 LocalNitro14.991s (~)15.030s (-6.2% 🟢)0.039s41.04x
workflow with 50 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express13.935s (-0.5%)14.303s (-2.0%)0.367s71.00x
🐘 PostgresNitro14.027s (~)14.735s (+3.0%)0.708s71.01x
💻 LocalExpress16.304s (-1.8%)17.030s (~)0.726s61.17x
💻 LocalNitro16.686s (-0.6%)17.031s (~)0.344s61.20x
Promise.all with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.271s (+0.8%)2.009s (~)0.738s151.00x
🐘 PostgresNitro1.272s (~)2.010s (~)0.738s151.00x
💻 LocalExpress1.485s (~)2.005s (~)0.520s151.17x
💻 LocalNitro1.513s (-7.2% 🟢)2.005s (-3.3%)0.492s151.19x
Promise.all with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express2.335s (-1.1%)3.009s (~)0.674s101.00x
🐘 PostgresNitro2.351s (~)3.008s (~)0.657s101.01x
💻 LocalExpress2.866s (-2.9%)3.109s (-10.0% 🟢)0.242s101.23x
💻 LocalNitro2.902s (-7.7% 🟢)3.007s (-22.6% 🟢)0.105s101.24x
Promise.all with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.472s (~)4.009s (~)0.537s81.00x
🐘 PostgresNitro3.494s (~)4.010s (~)0.516s81.01x
💻 LocalExpress7.490s (-10.2% 🟢)8.023s (-11.1% 🟢)0.533s42.16x
💻 LocalNitro8.374s (~)9.020s (~)0.646s42.41x
Promise.race with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.260s (~)2.007s (~)0.747s151.00x
🐘 PostgresNitro1.263s (~)2.008s (~)0.746s151.00x
💻 LocalExpress1.501s (-20.7% 🟢)2.006s (-15.1% 🟢)0.505s151.19x
💻 LocalNitro1.540s (-17.4% 🟢)2.005s (-14.3% 🟢)0.465s151.22x
Promise.race with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express2.344s (~)3.009s (~)0.666s101.00x
🐘 PostgresNitro2.357s (+0.7%)3.011s (~)0.654s101.01x
💻 LocalExpress2.806s (-10.4% 🟢)3.007s (-20.1% 🟢)0.201s101.20x
💻 LocalNitro3.473s (+13.3% 🔺)4.135s (+6.4% 🔺)0.661s81.48x
Promise.race with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.473s (-0.7%)4.010s (~)0.537s81.00x
🐘 PostgresNitro3.499s (+0.5%)4.012s (~)0.513s81.01x
💻 LocalExpress7.663s (-12.9% 🟢)8.271s (-10.8% 🟢)0.607s42.21x
💻 LocalNitro9.050s (-1.0%)9.524s (-5.0%)0.474s42.61x
workflow with 10 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.810s (-3.4%)1.006s (-1.6%)0.196s601.00x
🐘 PostgresNitro0.856s (+4.3%)1.006s (~)0.150s601.06x
💻 LocalNitro1.003s (+2.3%)1.281s (+17.1% 🔺)0.279s471.24x
💻 LocalExpress1.003s (+1.9%)1.423s (+32.3% 🔺)0.420s431.24x
workflow with 25 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.903s (-3.7%)2.052s (-9.1% 🟢)0.150s441.00x
🐘 PostgresNitro2.096s (+8.7% 🔺)2.821s (+34.3% 🔺)0.726s321.10x
💻 LocalExpress3.006s (~)3.508s (-2.1%)0.503s261.58x
💻 LocalNitro3.035s (~)3.689s (-1.8%)0.655s251.59x
workflow with 50 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.838s (-3.8%)4.076s (-6.7% 🟢)0.238s301.00x
🐘 PostgresNitro4.141s (+0.9%)4.812s (+4.5%)0.671s251.08x
💻 LocalExpress8.941s (-2.9%)9.479s (-5.4% 🟢)0.538s132.33x
💻 LocalNitro9.197s (-1.1%)9.942s (-0.8%)0.745s132.40x
workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.287s (+1.7%)1.007s (~)0.720s601.00x
🐘 PostgresNitro0.302s (+6.5% 🔺)1.007s (~)0.706s601.05x
💻 LocalNitro0.563s (-6.9% 🟢)1.005s (-1.6%)0.442s601.96x
💻 LocalExpress0.590s (+5.2% 🔺)1.004s (~)0.415s602.05x
workflow with 25 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.495s (-3.0%)1.006s (~)0.512s901.00x
🐘 PostgresNitro0.516s (+3.9%)1.007s (~)0.491s901.04x
💻 LocalExpress2.374s (-5.5% 🟢)3.008s (~)0.634s304.80x
💻 LocalNitro2.568s (+1.2%)3.009s (~)0.441s305.19x
workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.781s (-4.6%)1.008s (-1.0%)0.227s1201.00x
🐘 PostgresNitro0.837s (+5.9% 🔺)1.018s (+1.1%)0.181s1181.07x
💻 LocalExpress10.403s (-7.0% 🟢)11.029s (-7.6% 🟢)0.626s1113.32x
💻 LocalNitro11.221s (~)11.941s (+2.4%)0.721s1114.37x
Stream Benchmarks(includes TTFB metrics)
workflow with stream

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Nitro0.200s (-6.2% 🟢)1.004s (~)0.012s (-4.0%)1.018s (~)0.818s101.00x
🐘 PostgresExpress0.206s (~)0.998s (~)0.002s (~)1.010s (~)0.805s101.03x
💻 LocalExpress0.213s (+7.1% 🔺)1.004s (~)0.010s (-19.0% 🟢)1.015s (~)0.802s101.06x
🐘 PostgresNitro0.216s (+5.6% 🔺)0.995s (~)0.001s (-6.7% 🟢)1.010s (~)0.793s101.08x
stream pipeline with 5 transform steps (1MB)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.606s (-3.9%)1.006s (~)0.004s (-2.2%)1.024s (~)0.419s591.00x
🐘 PostgresNitro0.649s (+4.0%)1.006s (~)0.004s (-4.1%)1.022s (~)0.373s591.07x
💻 LocalNitro0.823s (-1.8%)1.012s (~)0.009s (-1.0%)1.116s (~)0.292s541.36x
💻 LocalExpress0.836s (+10.5% 🔺)1.012s (-1.6%)0.008s (-10.3% 🟢)1.115s (+7.2% 🔺)0.279s541.38x
10 parallel streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.955s (-0.6%)1.194s (-6.6% 🟢)0.000s (-100.0% 🟢)1.208s (-7.5% 🟢)0.253s501.00x
🐘 PostgresNitro1.018s (+5.0% 🔺)1.414s (+13.4% 🔺)0.000s (+11.6% 🔺)1.428s (+13.5% 🔺)0.410s431.07x
💻 LocalExpress1.197s (-2.2%)2.019s (~)0.000s (+20.0% 🔺)2.021s (~)0.823s301.25x
💻 LocalNitro1.226s (~)2.021s (~)0.000s (+300.0% 🔺)2.023s (~)0.796s301.28x
fan-out fan-in 10 streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.779s (~)2.135s (-1.9%)0.000s (NaN%)2.182s (-0.8%)0.403s291.00x
🐘 PostgresNitro1.823s (+1.8%)2.142s (~)0.000s (+100.0% 🔺)2.153s (-1.0%)0.330s281.03x
💻 LocalExpress3.232s (-6.8% 🟢)3.970s (-1.6%)0.000s (-45.3% 🟢)3.973s (-1.6%)0.741s161.82x
💻 LocalNitro3.578s (+5.6% 🔺)4.035s (~)0.000s (-50.0% 🟢)4.037s (~)0.460s152.01x

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World🥇 Fastest FrameworkWins
💻 LocalExpress17/21
🐘 PostgresExpress20/21
Fastest World by Framework

Winner determined by most benchmark wins

Framework🥇 Fastest WorldWins
Express🐘 Postgres19/21
Nitro🐘 Postgres18/21
Column Definitions
  • Workflow Time: Runtime reported by workflow (completedAt - createdAt) - primary metric
  • TTFB: Time to First Byte - time from workflow start until first stream byte received (stream benchmarks only)
  • Slurp: Time from first byte to complete stream consumption (stream benchmarks only)
  • Wall Time: Total testbench time (trigger workflow + poll for result)
  • Overhead: Testbench overhead (Wall Time - Workflow Time)
  • Samples: Number of benchmark iterations run
  • vs Fastest: How much slower compared to the fastest configuration for this benchmark

Worlds:

  • 💻 Local: In-memory filesystem world (local development)
  • 🐘 Postgres: PostgreSQL database world (local development)
  • ▲ Vercel: Vercel production/preview deployment
  • 🌐 Turso: Community world (local development)
  • 🌐 MongoDB: Community world (local development)
  • 🌐 Redis: Community world (local development)
  • 🌐 Jazz: Community world (local development)

📋 View full workflow run


Some benchmark jobs failed:

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

Check the workflow run for details.

@github-actions

github-actionsBot commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

🧪 E2E Test Results

Some tests failed

Summary

PassedFailedSkippedTotal
✅ ▲ Vercel Production923067990
✅ 💻 Local Development89801821080
✅ 📦 Local Production89801821080
✅ 🐘 Local Postgres89801821080
❌ 🌍 Community Worlds1337424231
✅ 📋 Other228042270
Total3978746794731

❌ Failed Tests

🌍 Community Worlds (74 failed)

mongodb (7 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6

redis (7 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6

turso (60 failed):

  • addTenWorkflow | wrun_01KP9W18E46XWMGNAP7GPJ22P0
  • addTenWorkflow | wrun_01KP9W18E46XWMGNAP7GPJ22P0
  • wellKnownAgentWorkflow (.well-known/agent) | wrun_01KP9W2VEGSJBQX8RASQF1J4NE
  • should work with react rendering in step
  • promiseAllWorkflow | wrun_01KP9W1EWY5BES8SR37SHCYFPH
  • promiseRaceWorkflow | wrun_01KP9W1K77N1Q575SC7JJB73NR
  • promiseAnyWorkflow | wrun_01KP9W1NC1R1GJH9K3QXHVBZKZ
  • importedStepOnlyWorkflow | wrun_01KP9W36KYGJ6S4H07DCDQWJ8A
  • hookWorkflow | wrun_01KP9W21C54M51895CE8MRCYBB
  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • sleepingWorkflow | wrun_01KP9W2TWK8YSN713Q1EKFB53K
  • parallelSleepWorkflow | wrun_01KP9W3674HTAW7EGRJBPENYCV
  • nullByteWorkflow | wrun_01KP9W3AN2TM1SN6BQ8K2CW6SQ
  • workflowAndStepMetadataWorkflow | wrun_01KP9W3CPJDBVH2ZR4DYGKPHAE
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • promiseRaceStressTestWorkflow | wrun_01KP9W6BKF8P1CB939TXQ81NJQ
  • 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()
  • error handling not registered WorkflowNotRegisteredError fails the run when workflow does not exist
  • error handling not registered StepNotRegisteredError fails the step but workflow can catch it
  • error handling not registered StepNotRegisteredError fails the run when not caught in workflow
  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_01KP9W9SXNBCMYQX4QJS3Z45FZ
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KP9WB2M1AKCD3ZWCZ3H7TK1Y
  • stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KP9WBQKPQR0ZZD459512MQ9E
  • stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KP9WC03MQMW2QSR08TQSCH3G
  • closureVariableWorkflow - nested step functions with closure variables | wrun_01KP9WC5ESZBK8XRMJP6K59G7B
  • spawnWorkflowFromStepWorkflow - spawning a child workflow using start() inside a step | wrun_01KP9WC7F4F5HMBQ7GR3JS28XG
  • runClassSerializationWorkflow - Run instances serialize across workflow/step boundaries | wrun_01KP9WCJA7VVEF3KTY1RKW4HN8
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • pathsAliasWorkflow - TypeScript path aliases resolve correctly | wrun_01KP9WD1J20FEW289749Z4XT3B
  • Calculator.calculate - static workflow method using static step methods from another class | wrun_01KP9WD724DS9TMEK0P3X1RQ6C
  • AllInOneService.processNumber - static workflow method using sibling static step methods | wrun_01KP9WDDD7P67ST23KWEH94H0J
  • ChainableService.processWithThis - static step methods using this to reference the class | wrun_01KP9WDKPRQ8DSJ8CG20NYWHE6
  • thisSerializationWorkflow - step function invoked with .call() and .apply() | wrun_01KP9WDTHDTA67H42QKE69K19W
  • customSerializationWorkflow - custom class serialization with WORKFLOW_SERIALIZE/WORKFLOW_DESERIALIZE | wrun_01KP9WE20QPDCYWP7FPRYABMT3
  • instanceMethodStepWorkflow - instance methods with "use step" directive | wrun_01KP9WE8DWYSW2SB2B9R24AYNN
  • crossContextSerdeWorkflow - classes defined in step code are deserializable in workflow context | wrun_01KP9WEKCK2DRC8HYM6KG252TM
  • stepFunctionAsStartArgWorkflow - step function reference passed as start() argument | wrun_01KP9WEYRH9GEHVFZF0SXPC9B8
  • cancelRun - cancelling a running workflow | wrun_01KP9WF56R7472CDY8S2RN89GQ
  • cancelRun via CLI - cancelling a running workflow | wrun_01KP9WFE6K231NF35QNZEXQJS9
  • 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_01KP9WFT8RY7FVERDW6K4TP38N
  • sleepInLoopWorkflow - sleep inside loop with steps actually delays each iteration | wrun_01KP9WGEFJMR2Z4B7WXCB1N0ZV
  • sleepWithSequentialStepsWorkflow - sequential steps work with concurrent sleep (control) | wrun_01KP9WGS3RGEKHYACVGWXF3XM0
  • importMetaUrlWorkflow - import.meta.url is available in step bundles | wrun_01KP9WGZTGAEE44KCRJVSPQ8G4
  • metadataFromHelperWorkflow - getWorkflowMetadata/getStepMetadata work from module-level helper (#1577) | wrun_01KP9WH1VWXCNR302D6BEVED3P
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6
  • getterStepWorkflow - getter functions with "use step" directive | wrun_01KP9WH70RWBSFGD88HV8M3BAY

Details by Category

✅ ▲ Vercel Production
AppPassedFailedSkipped
✅ astro8307
✅ example8307
✅ express8307
✅ fastify8307
✅ hono8307
✅ nextjs-turbopack8802
✅ nextjs-webpack8802
✅ nitro8307
✅ nuxt8307
✅ sveltekit8307
✅ vite8307
✅ 💻 Local Development
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
✅ 📦 Local Production
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
✅ 🐘 Local Postgres
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
❌ 🌍 Community Worlds
AppPassedFailedSkipped
✅ mongodb-dev600
❌ mongodb5678
✅ redis-dev600
❌ redis5678
✅ turso-dev600
❌ turso3608
✅ 📋 Other
AppPassedFailedSkipped
✅ e2e-local-dev-nest-stable76014
✅ e2e-local-postgres-nest-stable76014
✅ e2e-local-prod-nest-stable76014

📋 View full workflow run

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

Pull request overview

Updates documentation and homepage UI text/links to reflect the rename from “Workflow DevKit” / workflowdevkit to “Workflow SDK” / workflowsdk.

Changes:

  • Updated X/Twitter profile link to https://x.com/workflowsdk.
  • Renamed “Workflow DevKit” phrasing to “Workflow SDK” in docs and tweet wall copy.
  • Updated publishing-libraries cookbook examples to use vitest.workflowsdk.config.ts and *.workflowsdk.test.ts naming.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

FileDescription
docs/components/geistdocs/x-button.tsxUpdates the X profile URL to the new workflowsdk handle.
docs/content/docs/errors/start-invalid-workflow-function.mdxUpdates “Workflow DevKit’s” wording to “Workflow SDK’s”.
docs/content/docs/cookbook/advanced/publishing-libraries.mdxUpdates example Vitest config/test filename patterns from workflowdevkit to workflowsdk.
docs/app/[lang]/(home)/components/tweet-wall.tsxUpdates tweet wall display text to “Workflow SDK” and @WorkflowSDK.

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

@VaguelySeriousVaguelySerious left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM, also useworkflow.dev needs changing to workflow-sdk.dev

@TooTallNate
TooTallNate disabled auto-merge April 16, 2026 01:01
@TooTallNate
TooTallNate merged commit 173756d into mainApr 16, 2026
99 of 101 checks passed
@TooTallNate
TooTallNate deleted the fix/rename-workflowdevkit-to-workflowsdk branch April 16, 2026 01:01
@TooTallNateTooTallNate added the backport-stable Cherry-pick this PR to the stable branch when merged label Apr 16, 2026
@ghostghost mentioned this pull request Apr 16, 2026
ghost pushed a commit that referenced this pull request Apr 16, 2026
…rkflow-sdk.dev (#1759)
* [docs] Rename workflowdevkit references to workflowsdk
* [docs] Rename useworkflow.dev to workflow-sdk.dev
* [chore] Add changeset for domain rename
* [docs] Revert sitemap rewrite to useworkflow.dev (crawled-sitemap not yet available for new domain)
@ghost

Copy link
Copy Markdown

Cherry-pick to stable had conflicts that were resolved by AI. Please review the backport PR: #1760

@TooTallNateTooTallNate added backport-stable Cherry-pick this PR to the stable branch when merged and removed backport-stable Cherry-pick this PR to the stable branch when merged labels Apr 17, 2026
ghost pushed a commit that referenced this pull request Apr 17, 2026
…rkflow-sdk.dev (#1759)
* [docs] Rename workflowdevkit references to workflowsdk
* [docs] Rename useworkflow.dev to workflow-sdk.dev
* [chore] Add changeset for domain rename
* [docs] Revert sitemap rewrite to useworkflow.dev (crawled-sitemap not yet available for new domain)
Signed-off-by: Nathan Rajlich <n@n8.io>
@ghost

Copy link
Copy Markdown

Cherry-pick to stable had conflicts that were resolved by AI. Please review the backport PR: #1794

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-stableCherry-pick this PR to the stable branch when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@TooTallNate@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

[docs] Rename workflowdevkit to workflowsdk and useworkflow.dev to workflow-sdk.dev - #1759

Merged
TooTallNate merged 4 commits into
mainfrom
fix/rename-workflowdevkit-to-workflowsdk
Apr 16, 2026
Merged

[docs] Rename workflowdevkit to workflowsdk and useworkflow.dev to workflow-sdk.dev#1759
TooTallNate merged 4 commits into
mainfrom
fix/rename-workflowdevkit-to-workflowsdk

Conversation

@TooTallNate

@TooTallNateTooTallNate commented Apr 16, 2026

Copy link
Copy Markdown
Member

Summary

  • Updates the X/Twitter social link from @workflowdevkit to @workflowsdk
  • Renames "Workflow DevKit" / "Workflow Dev Kit" to "Workflow SDK" in docs and tweet wall
  • Updates example config/test filenames from workflowdevkit to workflowsdk in the publishing libraries cookbook
  • Replaces all 56 references to useworkflow.dev with workflow-sdk.dev across 36 files (source code, READMEs, skills, docs)
  • Bumps skill versions for workflow (1.7 → 1.8) and workflow-init (1.1 → 1.2)

@TooTallNate
TooTallNate requested a review from a team as a code ownerApril 16, 2026 00:21
CopilotAI review requested due to automatic review settings April 16, 2026 00:21
@vercel

vercelBot commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

@changeset-bot

changeset-botBot commented Apr 16, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: cebcc56

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

This PR includes changesets to release 24 packages
NameType
@workflow/corePatch
workflowPatch
@workflow/errorsPatch
@workflow/buildersPatch
@workflow/cliPatch
@workflow/nuxtPatch
@workflow/typescript-pluginPatch
@workflow/webPatch
@workflow/aiPatch
@workflow/astroPatch
@workflow/nextPatch
@workflow/nitroPatch
@workflow/sveltekitPatch
@workflow/swc-pluginPatch
@workflow/utilsPatch
@workflow/vitePatch
@workflow/web-sharedPatch
@workflow/vitestPatch
@workflow/world-testingPatch
@workflow/world-localPatch
@workflow/world-postgresPatch
@workflow/world-vercelPatch
@workflow/nestPatch
@workflow/rollupPatch

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

github-actionsBot commented Apr 16, 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🥇 Express0.041s (-7.0% 🟢)1.005s (~)0.964s101.00x
💻 LocalNitro0.050s (+16.7% 🔺)1.006s (~)0.956s101.22x
🐘 PostgresNitro0.059s (-37.6% 🟢)1.010s (-3.2%)0.951s101.44x
🐘 PostgresExpress0.069s (+18.1% 🔺)1.011s (~)0.942s101.66x
workflow with 1 step

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Express1.128s (~)2.005s (~)0.878s101.00x
💻 LocalNitro1.129s (~)2.007s (~)0.878s101.00x
🐘 PostgresExpress1.150s (~)2.008s (~)0.858s101.02x
🐘 PostgresNitro1.154s (+1.2%)2.015s (~)0.861s101.02x
workflow with 10 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express10.832s (-1.2%)11.019s (~)0.187s31.00x
🐘 PostgresNitro10.896s (~)11.024s (~)0.128s31.01x
💻 LocalExpress10.933s (~)11.023s (~)0.091s31.01x
💻 LocalNitro10.935s (~)11.025s (~)0.090s31.01x
workflow with 25 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express14.478s (-0.7%)15.020s (~)0.542s41.00x
🐘 PostgresNitro14.610s (~)15.025s (~)0.415s41.01x
💻 LocalExpress14.909s (~)15.028s (~)0.119s41.03x
💻 LocalNitro14.991s (~)15.030s (-6.2% 🟢)0.039s41.04x
workflow with 50 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express13.935s (-0.5%)14.303s (-2.0%)0.367s71.00x
🐘 PostgresNitro14.027s (~)14.735s (+3.0%)0.708s71.01x
💻 LocalExpress16.304s (-1.8%)17.030s (~)0.726s61.17x
💻 LocalNitro16.686s (-0.6%)17.031s (~)0.344s61.20x
Promise.all with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.271s (+0.8%)2.009s (~)0.738s151.00x
🐘 PostgresNitro1.272s (~)2.010s (~)0.738s151.00x
💻 LocalExpress1.485s (~)2.005s (~)0.520s151.17x
💻 LocalNitro1.513s (-7.2% 🟢)2.005s (-3.3%)0.492s151.19x
Promise.all with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express2.335s (-1.1%)3.009s (~)0.674s101.00x
🐘 PostgresNitro2.351s (~)3.008s (~)0.657s101.01x
💻 LocalExpress2.866s (-2.9%)3.109s (-10.0% 🟢)0.242s101.23x
💻 LocalNitro2.902s (-7.7% 🟢)3.007s (-22.6% 🟢)0.105s101.24x
Promise.all with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.472s (~)4.009s (~)0.537s81.00x
🐘 PostgresNitro3.494s (~)4.010s (~)0.516s81.01x
💻 LocalExpress7.490s (-10.2% 🟢)8.023s (-11.1% 🟢)0.533s42.16x
💻 LocalNitro8.374s (~)9.020s (~)0.646s42.41x
Promise.race with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.260s (~)2.007s (~)0.747s151.00x
🐘 PostgresNitro1.263s (~)2.008s (~)0.746s151.00x
💻 LocalExpress1.501s (-20.7% 🟢)2.006s (-15.1% 🟢)0.505s151.19x
💻 LocalNitro1.540s (-17.4% 🟢)2.005s (-14.3% 🟢)0.465s151.22x
Promise.race with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express2.344s (~)3.009s (~)0.666s101.00x
🐘 PostgresNitro2.357s (+0.7%)3.011s (~)0.654s101.01x
💻 LocalExpress2.806s (-10.4% 🟢)3.007s (-20.1% 🟢)0.201s101.20x
💻 LocalNitro3.473s (+13.3% 🔺)4.135s (+6.4% 🔺)0.661s81.48x
Promise.race with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.473s (-0.7%)4.010s (~)0.537s81.00x
🐘 PostgresNitro3.499s (+0.5%)4.012s (~)0.513s81.01x
💻 LocalExpress7.663s (-12.9% 🟢)8.271s (-10.8% 🟢)0.607s42.21x
💻 LocalNitro9.050s (-1.0%)9.524s (-5.0%)0.474s42.61x
workflow with 10 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.810s (-3.4%)1.006s (-1.6%)0.196s601.00x
🐘 PostgresNitro0.856s (+4.3%)1.006s (~)0.150s601.06x
💻 LocalNitro1.003s (+2.3%)1.281s (+17.1% 🔺)0.279s471.24x
💻 LocalExpress1.003s (+1.9%)1.423s (+32.3% 🔺)0.420s431.24x
workflow with 25 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.903s (-3.7%)2.052s (-9.1% 🟢)0.150s441.00x
🐘 PostgresNitro2.096s (+8.7% 🔺)2.821s (+34.3% 🔺)0.726s321.10x
💻 LocalExpress3.006s (~)3.508s (-2.1%)0.503s261.58x
💻 LocalNitro3.035s (~)3.689s (-1.8%)0.655s251.59x
workflow with 50 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.838s (-3.8%)4.076s (-6.7% 🟢)0.238s301.00x
🐘 PostgresNitro4.141s (+0.9%)4.812s (+4.5%)0.671s251.08x
💻 LocalExpress8.941s (-2.9%)9.479s (-5.4% 🟢)0.538s132.33x
💻 LocalNitro9.197s (-1.1%)9.942s (-0.8%)0.745s132.40x
workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.287s (+1.7%)1.007s (~)0.720s601.00x
🐘 PostgresNitro0.302s (+6.5% 🔺)1.007s (~)0.706s601.05x
💻 LocalNitro0.563s (-6.9% 🟢)1.005s (-1.6%)0.442s601.96x
💻 LocalExpress0.590s (+5.2% 🔺)1.004s (~)0.415s602.05x
workflow with 25 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.495s (-3.0%)1.006s (~)0.512s901.00x
🐘 PostgresNitro0.516s (+3.9%)1.007s (~)0.491s901.04x
💻 LocalExpress2.374s (-5.5% 🟢)3.008s (~)0.634s304.80x
💻 LocalNitro2.568s (+1.2%)3.009s (~)0.441s305.19x
workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.781s (-4.6%)1.008s (-1.0%)0.227s1201.00x
🐘 PostgresNitro0.837s (+5.9% 🔺)1.018s (+1.1%)0.181s1181.07x
💻 LocalExpress10.403s (-7.0% 🟢)11.029s (-7.6% 🟢)0.626s1113.32x
💻 LocalNitro11.221s (~)11.941s (+2.4%)0.721s1114.37x
Stream Benchmarks(includes TTFB metrics)
workflow with stream

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Nitro0.200s (-6.2% 🟢)1.004s (~)0.012s (-4.0%)1.018s (~)0.818s101.00x
🐘 PostgresExpress0.206s (~)0.998s (~)0.002s (~)1.010s (~)0.805s101.03x
💻 LocalExpress0.213s (+7.1% 🔺)1.004s (~)0.010s (-19.0% 🟢)1.015s (~)0.802s101.06x
🐘 PostgresNitro0.216s (+5.6% 🔺)0.995s (~)0.001s (-6.7% 🟢)1.010s (~)0.793s101.08x
stream pipeline with 5 transform steps (1MB)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.606s (-3.9%)1.006s (~)0.004s (-2.2%)1.024s (~)0.419s591.00x
🐘 PostgresNitro0.649s (+4.0%)1.006s (~)0.004s (-4.1%)1.022s (~)0.373s591.07x
💻 LocalNitro0.823s (-1.8%)1.012s (~)0.009s (-1.0%)1.116s (~)0.292s541.36x
💻 LocalExpress0.836s (+10.5% 🔺)1.012s (-1.6%)0.008s (-10.3% 🟢)1.115s (+7.2% 🔺)0.279s541.38x
10 parallel streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.955s (-0.6%)1.194s (-6.6% 🟢)0.000s (-100.0% 🟢)1.208s (-7.5% 🟢)0.253s501.00x
🐘 PostgresNitro1.018s (+5.0% 🔺)1.414s (+13.4% 🔺)0.000s (+11.6% 🔺)1.428s (+13.5% 🔺)0.410s431.07x
💻 LocalExpress1.197s (-2.2%)2.019s (~)0.000s (+20.0% 🔺)2.021s (~)0.823s301.25x
💻 LocalNitro1.226s (~)2.021s (~)0.000s (+300.0% 🔺)2.023s (~)0.796s301.28x
fan-out fan-in 10 streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.779s (~)2.135s (-1.9%)0.000s (NaN%)2.182s (-0.8%)0.403s291.00x
🐘 PostgresNitro1.823s (+1.8%)2.142s (~)0.000s (+100.0% 🔺)2.153s (-1.0%)0.330s281.03x
💻 LocalExpress3.232s (-6.8% 🟢)3.970s (-1.6%)0.000s (-45.3% 🟢)3.973s (-1.6%)0.741s161.82x
💻 LocalNitro3.578s (+5.6% 🔺)4.035s (~)0.000s (-50.0% 🟢)4.037s (~)0.460s152.01x

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World🥇 Fastest FrameworkWins
💻 LocalExpress17/21
🐘 PostgresExpress20/21
Fastest World by Framework

Winner determined by most benchmark wins

Framework🥇 Fastest WorldWins
Express🐘 Postgres19/21
Nitro🐘 Postgres18/21
Column Definitions
  • Workflow Time: Runtime reported by workflow (completedAt - createdAt) - primary metric
  • TTFB: Time to First Byte - time from workflow start until first stream byte received (stream benchmarks only)
  • Slurp: Time from first byte to complete stream consumption (stream benchmarks only)
  • Wall Time: Total testbench time (trigger workflow + poll for result)
  • Overhead: Testbench overhead (Wall Time - Workflow Time)
  • Samples: Number of benchmark iterations run
  • vs Fastest: How much slower compared to the fastest configuration for this benchmark

Worlds:

  • 💻 Local: In-memory filesystem world (local development)
  • 🐘 Postgres: PostgreSQL database world (local development)
  • ▲ Vercel: Vercel production/preview deployment
  • 🌐 Turso: Community world (local development)
  • 🌐 MongoDB: Community world (local development)
  • 🌐 Redis: Community world (local development)
  • 🌐 Jazz: Community world (local development)

📋 View full workflow run


Some benchmark jobs failed:

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

Check the workflow run for details.

@github-actions

github-actionsBot commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

🧪 E2E Test Results

Some tests failed

Summary

PassedFailedSkippedTotal
✅ ▲ Vercel Production923067990
✅ 💻 Local Development89801821080
✅ 📦 Local Production89801821080
✅ 🐘 Local Postgres89801821080
❌ 🌍 Community Worlds1337424231
✅ 📋 Other228042270
Total3978746794731

❌ Failed Tests

🌍 Community Worlds (74 failed)

mongodb (7 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6

redis (7 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6

turso (60 failed):

  • addTenWorkflow | wrun_01KP9W18E46XWMGNAP7GPJ22P0
  • addTenWorkflow | wrun_01KP9W18E46XWMGNAP7GPJ22P0
  • wellKnownAgentWorkflow (.well-known/agent) | wrun_01KP9W2VEGSJBQX8RASQF1J4NE
  • should work with react rendering in step
  • promiseAllWorkflow | wrun_01KP9W1EWY5BES8SR37SHCYFPH
  • promiseRaceWorkflow | wrun_01KP9W1K77N1Q575SC7JJB73NR
  • promiseAnyWorkflow | wrun_01KP9W1NC1R1GJH9K3QXHVBZKZ
  • importedStepOnlyWorkflow | wrun_01KP9W36KYGJ6S4H07DCDQWJ8A
  • hookWorkflow | wrun_01KP9W21C54M51895CE8MRCYBB
  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • sleepingWorkflow | wrun_01KP9W2TWK8YSN713Q1EKFB53K
  • parallelSleepWorkflow | wrun_01KP9W3674HTAW7EGRJBPENYCV
  • nullByteWorkflow | wrun_01KP9W3AN2TM1SN6BQ8K2CW6SQ
  • workflowAndStepMetadataWorkflow | wrun_01KP9W3CPJDBVH2ZR4DYGKPHAE
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • promiseRaceStressTestWorkflow | wrun_01KP9W6BKF8P1CB939TXQ81NJQ
  • 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()
  • error handling not registered WorkflowNotRegisteredError fails the run when workflow does not exist
  • error handling not registered StepNotRegisteredError fails the step but workflow can catch it
  • error handling not registered StepNotRegisteredError fails the run when not caught in workflow
  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_01KP9W9SXNBCMYQX4QJS3Z45FZ
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KP9WB2M1AKCD3ZWCZ3H7TK1Y
  • stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KP9WBQKPQR0ZZD459512MQ9E
  • stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KP9WC03MQMW2QSR08TQSCH3G
  • closureVariableWorkflow - nested step functions with closure variables | wrun_01KP9WC5ESZBK8XRMJP6K59G7B
  • spawnWorkflowFromStepWorkflow - spawning a child workflow using start() inside a step | wrun_01KP9WC7F4F5HMBQ7GR3JS28XG
  • runClassSerializationWorkflow - Run instances serialize across workflow/step boundaries | wrun_01KP9WCJA7VVEF3KTY1RKW4HN8
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • pathsAliasWorkflow - TypeScript path aliases resolve correctly | wrun_01KP9WD1J20FEW289749Z4XT3B
  • Calculator.calculate - static workflow method using static step methods from another class | wrun_01KP9WD724DS9TMEK0P3X1RQ6C
  • AllInOneService.processNumber - static workflow method using sibling static step methods | wrun_01KP9WDDD7P67ST23KWEH94H0J
  • ChainableService.processWithThis - static step methods using this to reference the class | wrun_01KP9WDKPRQ8DSJ8CG20NYWHE6
  • thisSerializationWorkflow - step function invoked with .call() and .apply() | wrun_01KP9WDTHDTA67H42QKE69K19W
  • customSerializationWorkflow - custom class serialization with WORKFLOW_SERIALIZE/WORKFLOW_DESERIALIZE | wrun_01KP9WE20QPDCYWP7FPRYABMT3
  • instanceMethodStepWorkflow - instance methods with "use step" directive | wrun_01KP9WE8DWYSW2SB2B9R24AYNN
  • crossContextSerdeWorkflow - classes defined in step code are deserializable in workflow context | wrun_01KP9WEKCK2DRC8HYM6KG252TM
  • stepFunctionAsStartArgWorkflow - step function reference passed as start() argument | wrun_01KP9WEYRH9GEHVFZF0SXPC9B8
  • cancelRun - cancelling a running workflow | wrun_01KP9WF56R7472CDY8S2RN89GQ
  • cancelRun via CLI - cancelling a running workflow | wrun_01KP9WFE6K231NF35QNZEXQJS9
  • 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_01KP9WFT8RY7FVERDW6K4TP38N
  • sleepInLoopWorkflow - sleep inside loop with steps actually delays each iteration | wrun_01KP9WGEFJMR2Z4B7WXCB1N0ZV
  • sleepWithSequentialStepsWorkflow - sequential steps work with concurrent sleep (control) | wrun_01KP9WGS3RGEKHYACVGWXF3XM0
  • importMetaUrlWorkflow - import.meta.url is available in step bundles | wrun_01KP9WGZTGAEE44KCRJVSPQ8G4
  • metadataFromHelperWorkflow - getWorkflowMetadata/getStepMetadata work from module-level helper (#1577) | wrun_01KP9WH1VWXCNR302D6BEVED3P
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6
  • getterStepWorkflow - getter functions with "use step" directive | wrun_01KP9WH70RWBSFGD88HV8M3BAY

Details by Category

✅ ▲ Vercel Production
AppPassedFailedSkipped
✅ astro8307
✅ example8307
✅ express8307
✅ fastify8307
✅ hono8307
✅ nextjs-turbopack8802
✅ nextjs-webpack8802
✅ nitro8307
✅ nuxt8307
✅ sveltekit8307
✅ vite8307
✅ 💻 Local Development
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
✅ 📦 Local Production
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
✅ 🐘 Local Postgres
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
❌ 🌍 Community Worlds
AppPassedFailedSkipped
✅ mongodb-dev600
❌ mongodb5678
✅ redis-dev600
❌ redis5678
✅ turso-dev600
❌ turso3608
✅ 📋 Other
AppPassedFailedSkipped
✅ e2e-local-dev-nest-stable76014
✅ e2e-local-postgres-nest-stable76014
✅ e2e-local-prod-nest-stable76014

📋 View full workflow run

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

Pull request overview

Updates documentation and homepage UI text/links to reflect the rename from “Workflow DevKit” / workflowdevkit to “Workflow SDK” / workflowsdk.

Changes:

  • Updated X/Twitter profile link to https://x.com/workflowsdk.
  • Renamed “Workflow DevKit” phrasing to “Workflow SDK” in docs and tweet wall copy.
  • Updated publishing-libraries cookbook examples to use vitest.workflowsdk.config.ts and *.workflowsdk.test.ts naming.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

FileDescription
docs/components/geistdocs/x-button.tsxUpdates the X profile URL to the new workflowsdk handle.
docs/content/docs/errors/start-invalid-workflow-function.mdxUpdates “Workflow DevKit’s” wording to “Workflow SDK’s”.
docs/content/docs/cookbook/advanced/publishing-libraries.mdxUpdates example Vitest config/test filename patterns from workflowdevkit to workflowsdk.
docs/app/[lang]/(home)/components/tweet-wall.tsxUpdates tweet wall display text to “Workflow SDK” and @WorkflowSDK.

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

@VaguelySeriousVaguelySerious left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM, also useworkflow.dev needs changing to workflow-sdk.dev

@TooTallNate
TooTallNate disabled auto-merge April 16, 2026 01:01
@TooTallNate
TooTallNate merged commit 173756d into mainApr 16, 2026
99 of 101 checks passed
@TooTallNate
TooTallNate deleted the fix/rename-workflowdevkit-to-workflowsdk branch April 16, 2026 01:01
@TooTallNateTooTallNate added the backport-stable Cherry-pick this PR to the stable branch when merged label Apr 16, 2026
@ghostghost mentioned this pull request Apr 16, 2026
ghost pushed a commit that referenced this pull request Apr 16, 2026
…rkflow-sdk.dev (#1759)
* [docs] Rename workflowdevkit references to workflowsdk
* [docs] Rename useworkflow.dev to workflow-sdk.dev
* [chore] Add changeset for domain rename
* [docs] Revert sitemap rewrite to useworkflow.dev (crawled-sitemap not yet available for new domain)
@ghost

Copy link
Copy Markdown

Cherry-pick to stable had conflicts that were resolved by AI. Please review the backport PR: #1760

@TooTallNateTooTallNate added backport-stable Cherry-pick this PR to the stable branch when merged and removed backport-stable Cherry-pick this PR to the stable branch when merged labels Apr 17, 2026
ghost pushed a commit that referenced this pull request Apr 17, 2026
…rkflow-sdk.dev (#1759)
* [docs] Rename workflowdevkit references to workflowsdk
* [docs] Rename useworkflow.dev to workflow-sdk.dev
* [chore] Add changeset for domain rename
* [docs] Revert sitemap rewrite to useworkflow.dev (crawled-sitemap not yet available for new domain)
Signed-off-by: Nathan Rajlich <n@n8.io>
@ghost

Copy link
Copy Markdown

Cherry-pick to stable had conflicts that were resolved by AI. Please review the backport PR: #1794

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-stableCherry-pick this PR to the stable branch when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@TooTallNate@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[docs] Rename workflowdevkit to workflowsdk and useworkflow.dev to workflow-sdk.dev - #1759

Merged
TooTallNate merged 4 commits into
mainfrom
fix/rename-workflowdevkit-to-workflowsdk
Apr 16, 2026
Merged

[docs] Rename workflowdevkit to workflowsdk and useworkflow.dev to workflow-sdk.dev#1759
TooTallNate merged 4 commits into
mainfrom
fix/rename-workflowdevkit-to-workflowsdk

Conversation

@TooTallNate

@TooTallNateTooTallNate commented Apr 16, 2026

Copy link
Copy Markdown
Member

Summary

  • Updates the X/Twitter social link from @workflowdevkit to @workflowsdk
  • Renames "Workflow DevKit" / "Workflow Dev Kit" to "Workflow SDK" in docs and tweet wall
  • Updates example config/test filenames from workflowdevkit to workflowsdk in the publishing libraries cookbook
  • Replaces all 56 references to useworkflow.dev with workflow-sdk.dev across 36 files (source code, READMEs, skills, docs)
  • Bumps skill versions for workflow (1.7 → 1.8) and workflow-init (1.1 → 1.2)

@TooTallNate
TooTallNate requested a review from a team as a code ownerApril 16, 2026 00:21
CopilotAI review requested due to automatic review settings April 16, 2026 00:21
@vercel

vercelBot commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

@changeset-bot

changeset-botBot commented Apr 16, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: cebcc56

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

This PR includes changesets to release 24 packages
NameType
@workflow/corePatch
workflowPatch
@workflow/errorsPatch
@workflow/buildersPatch
@workflow/cliPatch
@workflow/nuxtPatch
@workflow/typescript-pluginPatch
@workflow/webPatch
@workflow/aiPatch
@workflow/astroPatch
@workflow/nextPatch
@workflow/nitroPatch
@workflow/sveltekitPatch
@workflow/swc-pluginPatch
@workflow/utilsPatch
@workflow/vitePatch
@workflow/web-sharedPatch
@workflow/vitestPatch
@workflow/world-testingPatch
@workflow/world-localPatch
@workflow/world-postgresPatch
@workflow/world-vercelPatch
@workflow/nestPatch
@workflow/rollupPatch

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

github-actionsBot commented Apr 16, 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🥇 Express0.041s (-7.0% 🟢)1.005s (~)0.964s101.00x
💻 LocalNitro0.050s (+16.7% 🔺)1.006s (~)0.956s101.22x
🐘 PostgresNitro0.059s (-37.6% 🟢)1.010s (-3.2%)0.951s101.44x
🐘 PostgresExpress0.069s (+18.1% 🔺)1.011s (~)0.942s101.66x
workflow with 1 step

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Express1.128s (~)2.005s (~)0.878s101.00x
💻 LocalNitro1.129s (~)2.007s (~)0.878s101.00x
🐘 PostgresExpress1.150s (~)2.008s (~)0.858s101.02x
🐘 PostgresNitro1.154s (+1.2%)2.015s (~)0.861s101.02x
workflow with 10 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express10.832s (-1.2%)11.019s (~)0.187s31.00x
🐘 PostgresNitro10.896s (~)11.024s (~)0.128s31.01x
💻 LocalExpress10.933s (~)11.023s (~)0.091s31.01x
💻 LocalNitro10.935s (~)11.025s (~)0.090s31.01x
workflow with 25 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express14.478s (-0.7%)15.020s (~)0.542s41.00x
🐘 PostgresNitro14.610s (~)15.025s (~)0.415s41.01x
💻 LocalExpress14.909s (~)15.028s (~)0.119s41.03x
💻 LocalNitro14.991s (~)15.030s (-6.2% 🟢)0.039s41.04x
workflow with 50 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express13.935s (-0.5%)14.303s (-2.0%)0.367s71.00x
🐘 PostgresNitro14.027s (~)14.735s (+3.0%)0.708s71.01x
💻 LocalExpress16.304s (-1.8%)17.030s (~)0.726s61.17x
💻 LocalNitro16.686s (-0.6%)17.031s (~)0.344s61.20x
Promise.all with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.271s (+0.8%)2.009s (~)0.738s151.00x
🐘 PostgresNitro1.272s (~)2.010s (~)0.738s151.00x
💻 LocalExpress1.485s (~)2.005s (~)0.520s151.17x
💻 LocalNitro1.513s (-7.2% 🟢)2.005s (-3.3%)0.492s151.19x
Promise.all with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express2.335s (-1.1%)3.009s (~)0.674s101.00x
🐘 PostgresNitro2.351s (~)3.008s (~)0.657s101.01x
💻 LocalExpress2.866s (-2.9%)3.109s (-10.0% 🟢)0.242s101.23x
💻 LocalNitro2.902s (-7.7% 🟢)3.007s (-22.6% 🟢)0.105s101.24x
Promise.all with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.472s (~)4.009s (~)0.537s81.00x
🐘 PostgresNitro3.494s (~)4.010s (~)0.516s81.01x
💻 LocalExpress7.490s (-10.2% 🟢)8.023s (-11.1% 🟢)0.533s42.16x
💻 LocalNitro8.374s (~)9.020s (~)0.646s42.41x
Promise.race with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.260s (~)2.007s (~)0.747s151.00x
🐘 PostgresNitro1.263s (~)2.008s (~)0.746s151.00x
💻 LocalExpress1.501s (-20.7% 🟢)2.006s (-15.1% 🟢)0.505s151.19x
💻 LocalNitro1.540s (-17.4% 🟢)2.005s (-14.3% 🟢)0.465s151.22x
Promise.race with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express2.344s (~)3.009s (~)0.666s101.00x
🐘 PostgresNitro2.357s (+0.7%)3.011s (~)0.654s101.01x
💻 LocalExpress2.806s (-10.4% 🟢)3.007s (-20.1% 🟢)0.201s101.20x
💻 LocalNitro3.473s (+13.3% 🔺)4.135s (+6.4% 🔺)0.661s81.48x
Promise.race with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.473s (-0.7%)4.010s (~)0.537s81.00x
🐘 PostgresNitro3.499s (+0.5%)4.012s (~)0.513s81.01x
💻 LocalExpress7.663s (-12.9% 🟢)8.271s (-10.8% 🟢)0.607s42.21x
💻 LocalNitro9.050s (-1.0%)9.524s (-5.0%)0.474s42.61x
workflow with 10 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.810s (-3.4%)1.006s (-1.6%)0.196s601.00x
🐘 PostgresNitro0.856s (+4.3%)1.006s (~)0.150s601.06x
💻 LocalNitro1.003s (+2.3%)1.281s (+17.1% 🔺)0.279s471.24x
💻 LocalExpress1.003s (+1.9%)1.423s (+32.3% 🔺)0.420s431.24x
workflow with 25 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.903s (-3.7%)2.052s (-9.1% 🟢)0.150s441.00x
🐘 PostgresNitro2.096s (+8.7% 🔺)2.821s (+34.3% 🔺)0.726s321.10x
💻 LocalExpress3.006s (~)3.508s (-2.1%)0.503s261.58x
💻 LocalNitro3.035s (~)3.689s (-1.8%)0.655s251.59x
workflow with 50 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.838s (-3.8%)4.076s (-6.7% 🟢)0.238s301.00x
🐘 PostgresNitro4.141s (+0.9%)4.812s (+4.5%)0.671s251.08x
💻 LocalExpress8.941s (-2.9%)9.479s (-5.4% 🟢)0.538s132.33x
💻 LocalNitro9.197s (-1.1%)9.942s (-0.8%)0.745s132.40x
workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.287s (+1.7%)1.007s (~)0.720s601.00x
🐘 PostgresNitro0.302s (+6.5% 🔺)1.007s (~)0.706s601.05x
💻 LocalNitro0.563s (-6.9% 🟢)1.005s (-1.6%)0.442s601.96x
💻 LocalExpress0.590s (+5.2% 🔺)1.004s (~)0.415s602.05x
workflow with 25 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.495s (-3.0%)1.006s (~)0.512s901.00x
🐘 PostgresNitro0.516s (+3.9%)1.007s (~)0.491s901.04x
💻 LocalExpress2.374s (-5.5% 🟢)3.008s (~)0.634s304.80x
💻 LocalNitro2.568s (+1.2%)3.009s (~)0.441s305.19x
workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.781s (-4.6%)1.008s (-1.0%)0.227s1201.00x
🐘 PostgresNitro0.837s (+5.9% 🔺)1.018s (+1.1%)0.181s1181.07x
💻 LocalExpress10.403s (-7.0% 🟢)11.029s (-7.6% 🟢)0.626s1113.32x
💻 LocalNitro11.221s (~)11.941s (+2.4%)0.721s1114.37x
Stream Benchmarks(includes TTFB metrics)
workflow with stream

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Nitro0.200s (-6.2% 🟢)1.004s (~)0.012s (-4.0%)1.018s (~)0.818s101.00x
🐘 PostgresExpress0.206s (~)0.998s (~)0.002s (~)1.010s (~)0.805s101.03x
💻 LocalExpress0.213s (+7.1% 🔺)1.004s (~)0.010s (-19.0% 🟢)1.015s (~)0.802s101.06x
🐘 PostgresNitro0.216s (+5.6% 🔺)0.995s (~)0.001s (-6.7% 🟢)1.010s (~)0.793s101.08x
stream pipeline with 5 transform steps (1MB)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.606s (-3.9%)1.006s (~)0.004s (-2.2%)1.024s (~)0.419s591.00x
🐘 PostgresNitro0.649s (+4.0%)1.006s (~)0.004s (-4.1%)1.022s (~)0.373s591.07x
💻 LocalNitro0.823s (-1.8%)1.012s (~)0.009s (-1.0%)1.116s (~)0.292s541.36x
💻 LocalExpress0.836s (+10.5% 🔺)1.012s (-1.6%)0.008s (-10.3% 🟢)1.115s (+7.2% 🔺)0.279s541.38x
10 parallel streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.955s (-0.6%)1.194s (-6.6% 🟢)0.000s (-100.0% 🟢)1.208s (-7.5% 🟢)0.253s501.00x
🐘 PostgresNitro1.018s (+5.0% 🔺)1.414s (+13.4% 🔺)0.000s (+11.6% 🔺)1.428s (+13.5% 🔺)0.410s431.07x
💻 LocalExpress1.197s (-2.2%)2.019s (~)0.000s (+20.0% 🔺)2.021s (~)0.823s301.25x
💻 LocalNitro1.226s (~)2.021s (~)0.000s (+300.0% 🔺)2.023s (~)0.796s301.28x
fan-out fan-in 10 streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.779s (~)2.135s (-1.9%)0.000s (NaN%)2.182s (-0.8%)0.403s291.00x
🐘 PostgresNitro1.823s (+1.8%)2.142s (~)0.000s (+100.0% 🔺)2.153s (-1.0%)0.330s281.03x
💻 LocalExpress3.232s (-6.8% 🟢)3.970s (-1.6%)0.000s (-45.3% 🟢)3.973s (-1.6%)0.741s161.82x
💻 LocalNitro3.578s (+5.6% 🔺)4.035s (~)0.000s (-50.0% 🟢)4.037s (~)0.460s152.01x

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World🥇 Fastest FrameworkWins
💻 LocalExpress17/21
🐘 PostgresExpress20/21
Fastest World by Framework

Winner determined by most benchmark wins

Framework🥇 Fastest WorldWins
Express🐘 Postgres19/21
Nitro🐘 Postgres18/21
Column Definitions
  • Workflow Time: Runtime reported by workflow (completedAt - createdAt) - primary metric
  • TTFB: Time to First Byte - time from workflow start until first stream byte received (stream benchmarks only)
  • Slurp: Time from first byte to complete stream consumption (stream benchmarks only)
  • Wall Time: Total testbench time (trigger workflow + poll for result)
  • Overhead: Testbench overhead (Wall Time - Workflow Time)
  • Samples: Number of benchmark iterations run
  • vs Fastest: How much slower compared to the fastest configuration for this benchmark

Worlds:

  • 💻 Local: In-memory filesystem world (local development)
  • 🐘 Postgres: PostgreSQL database world (local development)
  • ▲ Vercel: Vercel production/preview deployment
  • 🌐 Turso: Community world (local development)
  • 🌐 MongoDB: Community world (local development)
  • 🌐 Redis: Community world (local development)
  • 🌐 Jazz: Community world (local development)

📋 View full workflow run


Some benchmark jobs failed:

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

Check the workflow run for details.

@github-actions

github-actionsBot commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

🧪 E2E Test Results

Some tests failed

Summary

PassedFailedSkippedTotal
✅ ▲ Vercel Production923067990
✅ 💻 Local Development89801821080
✅ 📦 Local Production89801821080
✅ 🐘 Local Postgres89801821080
❌ 🌍 Community Worlds1337424231
✅ 📋 Other228042270
Total3978746794731

❌ Failed Tests

🌍 Community Worlds (74 failed)

mongodb (7 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6

redis (7 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6

turso (60 failed):

  • addTenWorkflow | wrun_01KP9W18E46XWMGNAP7GPJ22P0
  • addTenWorkflow | wrun_01KP9W18E46XWMGNAP7GPJ22P0
  • wellKnownAgentWorkflow (.well-known/agent) | wrun_01KP9W2VEGSJBQX8RASQF1J4NE
  • should work with react rendering in step
  • promiseAllWorkflow | wrun_01KP9W1EWY5BES8SR37SHCYFPH
  • promiseRaceWorkflow | wrun_01KP9W1K77N1Q575SC7JJB73NR
  • promiseAnyWorkflow | wrun_01KP9W1NC1R1GJH9K3QXHVBZKZ
  • importedStepOnlyWorkflow | wrun_01KP9W36KYGJ6S4H07DCDQWJ8A
  • hookWorkflow | wrun_01KP9W21C54M51895CE8MRCYBB
  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • sleepingWorkflow | wrun_01KP9W2TWK8YSN713Q1EKFB53K
  • parallelSleepWorkflow | wrun_01KP9W3674HTAW7EGRJBPENYCV
  • nullByteWorkflow | wrun_01KP9W3AN2TM1SN6BQ8K2CW6SQ
  • workflowAndStepMetadataWorkflow | wrun_01KP9W3CPJDBVH2ZR4DYGKPHAE
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • promiseRaceStressTestWorkflow | wrun_01KP9W6BKF8P1CB939TXQ81NJQ
  • 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()
  • error handling not registered WorkflowNotRegisteredError fails the run when workflow does not exist
  • error handling not registered StepNotRegisteredError fails the step but workflow can catch it
  • error handling not registered StepNotRegisteredError fails the run when not caught in workflow
  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_01KP9W9SXNBCMYQX4QJS3Z45FZ
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KP9WB2M1AKCD3ZWCZ3H7TK1Y
  • stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KP9WBQKPQR0ZZD459512MQ9E
  • stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KP9WC03MQMW2QSR08TQSCH3G
  • closureVariableWorkflow - nested step functions with closure variables | wrun_01KP9WC5ESZBK8XRMJP6K59G7B
  • spawnWorkflowFromStepWorkflow - spawning a child workflow using start() inside a step | wrun_01KP9WC7F4F5HMBQ7GR3JS28XG
  • runClassSerializationWorkflow - Run instances serialize across workflow/step boundaries | wrun_01KP9WCJA7VVEF3KTY1RKW4HN8
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • pathsAliasWorkflow - TypeScript path aliases resolve correctly | wrun_01KP9WD1J20FEW289749Z4XT3B
  • Calculator.calculate - static workflow method using static step methods from another class | wrun_01KP9WD724DS9TMEK0P3X1RQ6C
  • AllInOneService.processNumber - static workflow method using sibling static step methods | wrun_01KP9WDDD7P67ST23KWEH94H0J
  • ChainableService.processWithThis - static step methods using this to reference the class | wrun_01KP9WDKPRQ8DSJ8CG20NYWHE6
  • thisSerializationWorkflow - step function invoked with .call() and .apply() | wrun_01KP9WDTHDTA67H42QKE69K19W
  • customSerializationWorkflow - custom class serialization with WORKFLOW_SERIALIZE/WORKFLOW_DESERIALIZE | wrun_01KP9WE20QPDCYWP7FPRYABMT3
  • instanceMethodStepWorkflow - instance methods with "use step" directive | wrun_01KP9WE8DWYSW2SB2B9R24AYNN
  • crossContextSerdeWorkflow - classes defined in step code are deserializable in workflow context | wrun_01KP9WEKCK2DRC8HYM6KG252TM
  • stepFunctionAsStartArgWorkflow - step function reference passed as start() argument | wrun_01KP9WEYRH9GEHVFZF0SXPC9B8
  • cancelRun - cancelling a running workflow | wrun_01KP9WF56R7472CDY8S2RN89GQ
  • cancelRun via CLI - cancelling a running workflow | wrun_01KP9WFE6K231NF35QNZEXQJS9
  • 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_01KP9WFT8RY7FVERDW6K4TP38N
  • sleepInLoopWorkflow - sleep inside loop with steps actually delays each iteration | wrun_01KP9WGEFJMR2Z4B7WXCB1N0ZV
  • sleepWithSequentialStepsWorkflow - sequential steps work with concurrent sleep (control) | wrun_01KP9WGS3RGEKHYACVGWXF3XM0
  • importMetaUrlWorkflow - import.meta.url is available in step bundles | wrun_01KP9WGZTGAEE44KCRJVSPQ8G4
  • metadataFromHelperWorkflow - getWorkflowMetadata/getStepMetadata work from module-level helper (#1577) | wrun_01KP9WH1VWXCNR302D6BEVED3P
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6
  • getterStepWorkflow - getter functions with "use step" directive | wrun_01KP9WH70RWBSFGD88HV8M3BAY

Details by Category

✅ ▲ Vercel Production
AppPassedFailedSkipped
✅ astro8307
✅ example8307
✅ express8307
✅ fastify8307
✅ hono8307
✅ nextjs-turbopack8802
✅ nextjs-webpack8802
✅ nitro8307
✅ nuxt8307
✅ sveltekit8307
✅ vite8307
✅ 💻 Local Development
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
✅ 📦 Local Production
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
✅ 🐘 Local Postgres
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
❌ 🌍 Community Worlds
AppPassedFailedSkipped
✅ mongodb-dev600
❌ mongodb5678
✅ redis-dev600
❌ redis5678
✅ turso-dev600
❌ turso3608
✅ 📋 Other
AppPassedFailedSkipped
✅ e2e-local-dev-nest-stable76014
✅ e2e-local-postgres-nest-stable76014
✅ e2e-local-prod-nest-stable76014

📋 View full workflow run

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

Pull request overview

Updates documentation and homepage UI text/links to reflect the rename from “Workflow DevKit” / workflowdevkit to “Workflow SDK” / workflowsdk.

Changes:

  • Updated X/Twitter profile link to https://x.com/workflowsdk.
  • Renamed “Workflow DevKit” phrasing to “Workflow SDK” in docs and tweet wall copy.
  • Updated publishing-libraries cookbook examples to use vitest.workflowsdk.config.ts and *.workflowsdk.test.ts naming.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

FileDescription
docs/components/geistdocs/x-button.tsxUpdates the X profile URL to the new workflowsdk handle.
docs/content/docs/errors/start-invalid-workflow-function.mdxUpdates “Workflow DevKit’s” wording to “Workflow SDK’s”.
docs/content/docs/cookbook/advanced/publishing-libraries.mdxUpdates example Vitest config/test filename patterns from workflowdevkit to workflowsdk.
docs/app/[lang]/(home)/components/tweet-wall.tsxUpdates tweet wall display text to “Workflow SDK” and @WorkflowSDK.

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

@VaguelySeriousVaguelySerious left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM, also useworkflow.dev needs changing to workflow-sdk.dev

@TooTallNate
TooTallNate disabled auto-merge April 16, 2026 01:01
@TooTallNate
TooTallNate merged commit 173756d into mainApr 16, 2026
99 of 101 checks passed
@TooTallNate
TooTallNate deleted the fix/rename-workflowdevkit-to-workflowsdk branch April 16, 2026 01:01
@TooTallNateTooTallNate added the backport-stable Cherry-pick this PR to the stable branch when merged label Apr 16, 2026
@ghostghost mentioned this pull request Apr 16, 2026
ghost pushed a commit that referenced this pull request Apr 16, 2026
…rkflow-sdk.dev (#1759)
* [docs] Rename workflowdevkit references to workflowsdk
* [docs] Rename useworkflow.dev to workflow-sdk.dev
* [chore] Add changeset for domain rename
* [docs] Revert sitemap rewrite to useworkflow.dev (crawled-sitemap not yet available for new domain)
@ghost

Copy link
Copy Markdown

Cherry-pick to stable had conflicts that were resolved by AI. Please review the backport PR: #1760

@TooTallNateTooTallNate added backport-stable Cherry-pick this PR to the stable branch when merged and removed backport-stable Cherry-pick this PR to the stable branch when merged labels Apr 17, 2026
ghost pushed a commit that referenced this pull request Apr 17, 2026
…rkflow-sdk.dev (#1759)
* [docs] Rename workflowdevkit references to workflowsdk
* [docs] Rename useworkflow.dev to workflow-sdk.dev
* [chore] Add changeset for domain rename
* [docs] Revert sitemap rewrite to useworkflow.dev (crawled-sitemap not yet available for new domain)
Signed-off-by: Nathan Rajlich <n@n8.io>
@ghost

Copy link
Copy Markdown

Cherry-pick to stable had conflicts that were resolved by AI. Please review the backport PR: #1794

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-stableCherry-pick this PR to the stable branch when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@TooTallNate@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[docs] Rename workflowdevkit to workflowsdk and useworkflow.dev to workflow-sdk.dev - #1759

Merged
TooTallNate merged 4 commits into
mainfrom
fix/rename-workflowdevkit-to-workflowsdk
Apr 16, 2026
Merged

[docs] Rename workflowdevkit to workflowsdk and useworkflow.dev to workflow-sdk.dev#1759
TooTallNate merged 4 commits into
mainfrom
fix/rename-workflowdevkit-to-workflowsdk

Conversation

@TooTallNate

@TooTallNateTooTallNate commented Apr 16, 2026

Copy link
Copy Markdown
Member

Summary

  • Updates the X/Twitter social link from @workflowdevkit to @workflowsdk
  • Renames "Workflow DevKit" / "Workflow Dev Kit" to "Workflow SDK" in docs and tweet wall
  • Updates example config/test filenames from workflowdevkit to workflowsdk in the publishing libraries cookbook
  • Replaces all 56 references to useworkflow.dev with workflow-sdk.dev across 36 files (source code, READMEs, skills, docs)
  • Bumps skill versions for workflow (1.7 → 1.8) and workflow-init (1.1 → 1.2)

@TooTallNate
TooTallNate requested a review from a team as a code ownerApril 16, 2026 00:21
CopilotAI review requested due to automatic review settings April 16, 2026 00:21
@vercel

vercelBot commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

@changeset-bot

changeset-botBot commented Apr 16, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: cebcc56

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

This PR includes changesets to release 24 packages
NameType
@workflow/corePatch
workflowPatch
@workflow/errorsPatch
@workflow/buildersPatch
@workflow/cliPatch
@workflow/nuxtPatch
@workflow/typescript-pluginPatch
@workflow/webPatch
@workflow/aiPatch
@workflow/astroPatch
@workflow/nextPatch
@workflow/nitroPatch
@workflow/sveltekitPatch
@workflow/swc-pluginPatch
@workflow/utilsPatch
@workflow/vitePatch
@workflow/web-sharedPatch
@workflow/vitestPatch
@workflow/world-testingPatch
@workflow/world-localPatch
@workflow/world-postgresPatch
@workflow/world-vercelPatch
@workflow/nestPatch
@workflow/rollupPatch

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

github-actionsBot commented Apr 16, 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🥇 Express0.041s (-7.0% 🟢)1.005s (~)0.964s101.00x
💻 LocalNitro0.050s (+16.7% 🔺)1.006s (~)0.956s101.22x
🐘 PostgresNitro0.059s (-37.6% 🟢)1.010s (-3.2%)0.951s101.44x
🐘 PostgresExpress0.069s (+18.1% 🔺)1.011s (~)0.942s101.66x
workflow with 1 step

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Express1.128s (~)2.005s (~)0.878s101.00x
💻 LocalNitro1.129s (~)2.007s (~)0.878s101.00x
🐘 PostgresExpress1.150s (~)2.008s (~)0.858s101.02x
🐘 PostgresNitro1.154s (+1.2%)2.015s (~)0.861s101.02x
workflow with 10 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express10.832s (-1.2%)11.019s (~)0.187s31.00x
🐘 PostgresNitro10.896s (~)11.024s (~)0.128s31.01x
💻 LocalExpress10.933s (~)11.023s (~)0.091s31.01x
💻 LocalNitro10.935s (~)11.025s (~)0.090s31.01x
workflow with 25 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express14.478s (-0.7%)15.020s (~)0.542s41.00x
🐘 PostgresNitro14.610s (~)15.025s (~)0.415s41.01x
💻 LocalExpress14.909s (~)15.028s (~)0.119s41.03x
💻 LocalNitro14.991s (~)15.030s (-6.2% 🟢)0.039s41.04x
workflow with 50 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express13.935s (-0.5%)14.303s (-2.0%)0.367s71.00x
🐘 PostgresNitro14.027s (~)14.735s (+3.0%)0.708s71.01x
💻 LocalExpress16.304s (-1.8%)17.030s (~)0.726s61.17x
💻 LocalNitro16.686s (-0.6%)17.031s (~)0.344s61.20x
Promise.all with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.271s (+0.8%)2.009s (~)0.738s151.00x
🐘 PostgresNitro1.272s (~)2.010s (~)0.738s151.00x
💻 LocalExpress1.485s (~)2.005s (~)0.520s151.17x
💻 LocalNitro1.513s (-7.2% 🟢)2.005s (-3.3%)0.492s151.19x
Promise.all with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express2.335s (-1.1%)3.009s (~)0.674s101.00x
🐘 PostgresNitro2.351s (~)3.008s (~)0.657s101.01x
💻 LocalExpress2.866s (-2.9%)3.109s (-10.0% 🟢)0.242s101.23x
💻 LocalNitro2.902s (-7.7% 🟢)3.007s (-22.6% 🟢)0.105s101.24x
Promise.all with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.472s (~)4.009s (~)0.537s81.00x
🐘 PostgresNitro3.494s (~)4.010s (~)0.516s81.01x
💻 LocalExpress7.490s (-10.2% 🟢)8.023s (-11.1% 🟢)0.533s42.16x
💻 LocalNitro8.374s (~)9.020s (~)0.646s42.41x
Promise.race with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.260s (~)2.007s (~)0.747s151.00x
🐘 PostgresNitro1.263s (~)2.008s (~)0.746s151.00x
💻 LocalExpress1.501s (-20.7% 🟢)2.006s (-15.1% 🟢)0.505s151.19x
💻 LocalNitro1.540s (-17.4% 🟢)2.005s (-14.3% 🟢)0.465s151.22x
Promise.race with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express2.344s (~)3.009s (~)0.666s101.00x
🐘 PostgresNitro2.357s (+0.7%)3.011s (~)0.654s101.01x
💻 LocalExpress2.806s (-10.4% 🟢)3.007s (-20.1% 🟢)0.201s101.20x
💻 LocalNitro3.473s (+13.3% 🔺)4.135s (+6.4% 🔺)0.661s81.48x
Promise.race with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.473s (-0.7%)4.010s (~)0.537s81.00x
🐘 PostgresNitro3.499s (+0.5%)4.012s (~)0.513s81.01x
💻 LocalExpress7.663s (-12.9% 🟢)8.271s (-10.8% 🟢)0.607s42.21x
💻 LocalNitro9.050s (-1.0%)9.524s (-5.0%)0.474s42.61x
workflow with 10 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.810s (-3.4%)1.006s (-1.6%)0.196s601.00x
🐘 PostgresNitro0.856s (+4.3%)1.006s (~)0.150s601.06x
💻 LocalNitro1.003s (+2.3%)1.281s (+17.1% 🔺)0.279s471.24x
💻 LocalExpress1.003s (+1.9%)1.423s (+32.3% 🔺)0.420s431.24x
workflow with 25 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.903s (-3.7%)2.052s (-9.1% 🟢)0.150s441.00x
🐘 PostgresNitro2.096s (+8.7% 🔺)2.821s (+34.3% 🔺)0.726s321.10x
💻 LocalExpress3.006s (~)3.508s (-2.1%)0.503s261.58x
💻 LocalNitro3.035s (~)3.689s (-1.8%)0.655s251.59x
workflow with 50 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.838s (-3.8%)4.076s (-6.7% 🟢)0.238s301.00x
🐘 PostgresNitro4.141s (+0.9%)4.812s (+4.5%)0.671s251.08x
💻 LocalExpress8.941s (-2.9%)9.479s (-5.4% 🟢)0.538s132.33x
💻 LocalNitro9.197s (-1.1%)9.942s (-0.8%)0.745s132.40x
workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.287s (+1.7%)1.007s (~)0.720s601.00x
🐘 PostgresNitro0.302s (+6.5% 🔺)1.007s (~)0.706s601.05x
💻 LocalNitro0.563s (-6.9% 🟢)1.005s (-1.6%)0.442s601.96x
💻 LocalExpress0.590s (+5.2% 🔺)1.004s (~)0.415s602.05x
workflow with 25 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.495s (-3.0%)1.006s (~)0.512s901.00x
🐘 PostgresNitro0.516s (+3.9%)1.007s (~)0.491s901.04x
💻 LocalExpress2.374s (-5.5% 🟢)3.008s (~)0.634s304.80x
💻 LocalNitro2.568s (+1.2%)3.009s (~)0.441s305.19x
workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.781s (-4.6%)1.008s (-1.0%)0.227s1201.00x
🐘 PostgresNitro0.837s (+5.9% 🔺)1.018s (+1.1%)0.181s1181.07x
💻 LocalExpress10.403s (-7.0% 🟢)11.029s (-7.6% 🟢)0.626s1113.32x
💻 LocalNitro11.221s (~)11.941s (+2.4%)0.721s1114.37x
Stream Benchmarks(includes TTFB metrics)
workflow with stream

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Nitro0.200s (-6.2% 🟢)1.004s (~)0.012s (-4.0%)1.018s (~)0.818s101.00x
🐘 PostgresExpress0.206s (~)0.998s (~)0.002s (~)1.010s (~)0.805s101.03x
💻 LocalExpress0.213s (+7.1% 🔺)1.004s (~)0.010s (-19.0% 🟢)1.015s (~)0.802s101.06x
🐘 PostgresNitro0.216s (+5.6% 🔺)0.995s (~)0.001s (-6.7% 🟢)1.010s (~)0.793s101.08x
stream pipeline with 5 transform steps (1MB)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.606s (-3.9%)1.006s (~)0.004s (-2.2%)1.024s (~)0.419s591.00x
🐘 PostgresNitro0.649s (+4.0%)1.006s (~)0.004s (-4.1%)1.022s (~)0.373s591.07x
💻 LocalNitro0.823s (-1.8%)1.012s (~)0.009s (-1.0%)1.116s (~)0.292s541.36x
💻 LocalExpress0.836s (+10.5% 🔺)1.012s (-1.6%)0.008s (-10.3% 🟢)1.115s (+7.2% 🔺)0.279s541.38x
10 parallel streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.955s (-0.6%)1.194s (-6.6% 🟢)0.000s (-100.0% 🟢)1.208s (-7.5% 🟢)0.253s501.00x
🐘 PostgresNitro1.018s (+5.0% 🔺)1.414s (+13.4% 🔺)0.000s (+11.6% 🔺)1.428s (+13.5% 🔺)0.410s431.07x
💻 LocalExpress1.197s (-2.2%)2.019s (~)0.000s (+20.0% 🔺)2.021s (~)0.823s301.25x
💻 LocalNitro1.226s (~)2.021s (~)0.000s (+300.0% 🔺)2.023s (~)0.796s301.28x
fan-out fan-in 10 streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.779s (~)2.135s (-1.9%)0.000s (NaN%)2.182s (-0.8%)0.403s291.00x
🐘 PostgresNitro1.823s (+1.8%)2.142s (~)0.000s (+100.0% 🔺)2.153s (-1.0%)0.330s281.03x
💻 LocalExpress3.232s (-6.8% 🟢)3.970s (-1.6%)0.000s (-45.3% 🟢)3.973s (-1.6%)0.741s161.82x
💻 LocalNitro3.578s (+5.6% 🔺)4.035s (~)0.000s (-50.0% 🟢)4.037s (~)0.460s152.01x

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World🥇 Fastest FrameworkWins
💻 LocalExpress17/21
🐘 PostgresExpress20/21
Fastest World by Framework

Winner determined by most benchmark wins

Framework🥇 Fastest WorldWins
Express🐘 Postgres19/21
Nitro🐘 Postgres18/21
Column Definitions
  • Workflow Time: Runtime reported by workflow (completedAt - createdAt) - primary metric
  • TTFB: Time to First Byte - time from workflow start until first stream byte received (stream benchmarks only)
  • Slurp: Time from first byte to complete stream consumption (stream benchmarks only)
  • Wall Time: Total testbench time (trigger workflow + poll for result)
  • Overhead: Testbench overhead (Wall Time - Workflow Time)
  • Samples: Number of benchmark iterations run
  • vs Fastest: How much slower compared to the fastest configuration for this benchmark

Worlds:

  • 💻 Local: In-memory filesystem world (local development)
  • 🐘 Postgres: PostgreSQL database world (local development)
  • ▲ Vercel: Vercel production/preview deployment
  • 🌐 Turso: Community world (local development)
  • 🌐 MongoDB: Community world (local development)
  • 🌐 Redis: Community world (local development)
  • 🌐 Jazz: Community world (local development)

📋 View full workflow run


Some benchmark jobs failed:

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

Check the workflow run for details.

@github-actions

github-actionsBot commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

🧪 E2E Test Results

Some tests failed

Summary

PassedFailedSkippedTotal
✅ ▲ Vercel Production923067990
✅ 💻 Local Development89801821080
✅ 📦 Local Production89801821080
✅ 🐘 Local Postgres89801821080
❌ 🌍 Community Worlds1337424231
✅ 📋 Other228042270
Total3978746794731

❌ Failed Tests

🌍 Community Worlds (74 failed)

mongodb (7 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6

redis (7 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6

turso (60 failed):

  • addTenWorkflow | wrun_01KP9W18E46XWMGNAP7GPJ22P0
  • addTenWorkflow | wrun_01KP9W18E46XWMGNAP7GPJ22P0
  • wellKnownAgentWorkflow (.well-known/agent) | wrun_01KP9W2VEGSJBQX8RASQF1J4NE
  • should work with react rendering in step
  • promiseAllWorkflow | wrun_01KP9W1EWY5BES8SR37SHCYFPH
  • promiseRaceWorkflow | wrun_01KP9W1K77N1Q575SC7JJB73NR
  • promiseAnyWorkflow | wrun_01KP9W1NC1R1GJH9K3QXHVBZKZ
  • importedStepOnlyWorkflow | wrun_01KP9W36KYGJ6S4H07DCDQWJ8A
  • hookWorkflow | wrun_01KP9W21C54M51895CE8MRCYBB
  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • sleepingWorkflow | wrun_01KP9W2TWK8YSN713Q1EKFB53K
  • parallelSleepWorkflow | wrun_01KP9W3674HTAW7EGRJBPENYCV
  • nullByteWorkflow | wrun_01KP9W3AN2TM1SN6BQ8K2CW6SQ
  • workflowAndStepMetadataWorkflow | wrun_01KP9W3CPJDBVH2ZR4DYGKPHAE
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • promiseRaceStressTestWorkflow | wrun_01KP9W6BKF8P1CB939TXQ81NJQ
  • 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()
  • error handling not registered WorkflowNotRegisteredError fails the run when workflow does not exist
  • error handling not registered StepNotRegisteredError fails the step but workflow can catch it
  • error handling not registered StepNotRegisteredError fails the run when not caught in workflow
  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_01KP9W9SXNBCMYQX4QJS3Z45FZ
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KP9WB2M1AKCD3ZWCZ3H7TK1Y
  • stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KP9WBQKPQR0ZZD459512MQ9E
  • stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KP9WC03MQMW2QSR08TQSCH3G
  • closureVariableWorkflow - nested step functions with closure variables | wrun_01KP9WC5ESZBK8XRMJP6K59G7B
  • spawnWorkflowFromStepWorkflow - spawning a child workflow using start() inside a step | wrun_01KP9WC7F4F5HMBQ7GR3JS28XG
  • runClassSerializationWorkflow - Run instances serialize across workflow/step boundaries | wrun_01KP9WCJA7VVEF3KTY1RKW4HN8
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • pathsAliasWorkflow - TypeScript path aliases resolve correctly | wrun_01KP9WD1J20FEW289749Z4XT3B
  • Calculator.calculate - static workflow method using static step methods from another class | wrun_01KP9WD724DS9TMEK0P3X1RQ6C
  • AllInOneService.processNumber - static workflow method using sibling static step methods | wrun_01KP9WDDD7P67ST23KWEH94H0J
  • ChainableService.processWithThis - static step methods using this to reference the class | wrun_01KP9WDKPRQ8DSJ8CG20NYWHE6
  • thisSerializationWorkflow - step function invoked with .call() and .apply() | wrun_01KP9WDTHDTA67H42QKE69K19W
  • customSerializationWorkflow - custom class serialization with WORKFLOW_SERIALIZE/WORKFLOW_DESERIALIZE | wrun_01KP9WE20QPDCYWP7FPRYABMT3
  • instanceMethodStepWorkflow - instance methods with "use step" directive | wrun_01KP9WE8DWYSW2SB2B9R24AYNN
  • crossContextSerdeWorkflow - classes defined in step code are deserializable in workflow context | wrun_01KP9WEKCK2DRC8HYM6KG252TM
  • stepFunctionAsStartArgWorkflow - step function reference passed as start() argument | wrun_01KP9WEYRH9GEHVFZF0SXPC9B8
  • cancelRun - cancelling a running workflow | wrun_01KP9WF56R7472CDY8S2RN89GQ
  • cancelRun via CLI - cancelling a running workflow | wrun_01KP9WFE6K231NF35QNZEXQJS9
  • 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_01KP9WFT8RY7FVERDW6K4TP38N
  • sleepInLoopWorkflow - sleep inside loop with steps actually delays each iteration | wrun_01KP9WGEFJMR2Z4B7WXCB1N0ZV
  • sleepWithSequentialStepsWorkflow - sequential steps work with concurrent sleep (control) | wrun_01KP9WGS3RGEKHYACVGWXF3XM0
  • importMetaUrlWorkflow - import.meta.url is available in step bundles | wrun_01KP9WGZTGAEE44KCRJVSPQ8G4
  • metadataFromHelperWorkflow - getWorkflowMetadata/getStepMetadata work from module-level helper (#1577) | wrun_01KP9WH1VWXCNR302D6BEVED3P
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6
  • getterStepWorkflow - getter functions with "use step" directive | wrun_01KP9WH70RWBSFGD88HV8M3BAY

Details by Category

✅ ▲ Vercel Production
AppPassedFailedSkipped
✅ astro8307
✅ example8307
✅ express8307
✅ fastify8307
✅ hono8307
✅ nextjs-turbopack8802
✅ nextjs-webpack8802
✅ nitro8307
✅ nuxt8307
✅ sveltekit8307
✅ vite8307
✅ 💻 Local Development
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
✅ 📦 Local Production
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
✅ 🐘 Local Postgres
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
❌ 🌍 Community Worlds
AppPassedFailedSkipped
✅ mongodb-dev600
❌ mongodb5678
✅ redis-dev600
❌ redis5678
✅ turso-dev600
❌ turso3608
✅ 📋 Other
AppPassedFailedSkipped
✅ e2e-local-dev-nest-stable76014
✅ e2e-local-postgres-nest-stable76014
✅ e2e-local-prod-nest-stable76014

📋 View full workflow run

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

Pull request overview

Updates documentation and homepage UI text/links to reflect the rename from “Workflow DevKit” / workflowdevkit to “Workflow SDK” / workflowsdk.

Changes:

  • Updated X/Twitter profile link to https://x.com/workflowsdk.
  • Renamed “Workflow DevKit” phrasing to “Workflow SDK” in docs and tweet wall copy.
  • Updated publishing-libraries cookbook examples to use vitest.workflowsdk.config.ts and *.workflowsdk.test.ts naming.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

FileDescription
docs/components/geistdocs/x-button.tsxUpdates the X profile URL to the new workflowsdk handle.
docs/content/docs/errors/start-invalid-workflow-function.mdxUpdates “Workflow DevKit’s” wording to “Workflow SDK’s”.
docs/content/docs/cookbook/advanced/publishing-libraries.mdxUpdates example Vitest config/test filename patterns from workflowdevkit to workflowsdk.
docs/app/[lang]/(home)/components/tweet-wall.tsxUpdates tweet wall display text to “Workflow SDK” and @WorkflowSDK.

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

@VaguelySeriousVaguelySerious left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM, also useworkflow.dev needs changing to workflow-sdk.dev

@TooTallNate
TooTallNate disabled auto-merge April 16, 2026 01:01
@TooTallNate
TooTallNate merged commit 173756d into mainApr 16, 2026
99 of 101 checks passed
@TooTallNate
TooTallNate deleted the fix/rename-workflowdevkit-to-workflowsdk branch April 16, 2026 01:01
@TooTallNateTooTallNate added the backport-stable Cherry-pick this PR to the stable branch when merged label Apr 16, 2026
@ghostghost mentioned this pull request Apr 16, 2026
ghost pushed a commit that referenced this pull request Apr 16, 2026
…rkflow-sdk.dev (#1759)
* [docs] Rename workflowdevkit references to workflowsdk
* [docs] Rename useworkflow.dev to workflow-sdk.dev
* [chore] Add changeset for domain rename
* [docs] Revert sitemap rewrite to useworkflow.dev (crawled-sitemap not yet available for new domain)
@ghost

Copy link
Copy Markdown

Cherry-pick to stable had conflicts that were resolved by AI. Please review the backport PR: #1760

@TooTallNateTooTallNate added backport-stable Cherry-pick this PR to the stable branch when merged and removed backport-stable Cherry-pick this PR to the stable branch when merged labels Apr 17, 2026
ghost pushed a commit that referenced this pull request Apr 17, 2026
…rkflow-sdk.dev (#1759)
* [docs] Rename workflowdevkit references to workflowsdk
* [docs] Rename useworkflow.dev to workflow-sdk.dev
* [chore] Add changeset for domain rename
* [docs] Revert sitemap rewrite to useworkflow.dev (crawled-sitemap not yet available for new domain)
Signed-off-by: Nathan Rajlich <n@n8.io>
@ghost

Copy link
Copy Markdown

Cherry-pick to stable had conflicts that were resolved by AI. Please review the backport PR: #1794

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-stableCherry-pick this PR to the stable branch when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@TooTallNate@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

[docs] Rename workflowdevkit to workflowsdk and useworkflow.dev to workflow-sdk.dev - #1759

Merged
TooTallNate merged 4 commits into
mainfrom
fix/rename-workflowdevkit-to-workflowsdk
Apr 16, 2026
Merged

[docs] Rename workflowdevkit to workflowsdk and useworkflow.dev to workflow-sdk.dev#1759
TooTallNate merged 4 commits into
mainfrom
fix/rename-workflowdevkit-to-workflowsdk

Conversation

@TooTallNate

@TooTallNateTooTallNate commented Apr 16, 2026

Copy link
Copy Markdown
Member

Summary

  • Updates the X/Twitter social link from @workflowdevkit to @workflowsdk
  • Renames "Workflow DevKit" / "Workflow Dev Kit" to "Workflow SDK" in docs and tweet wall
  • Updates example config/test filenames from workflowdevkit to workflowsdk in the publishing libraries cookbook
  • Replaces all 56 references to useworkflow.dev with workflow-sdk.dev across 36 files (source code, READMEs, skills, docs)
  • Bumps skill versions for workflow (1.7 → 1.8) and workflow-init (1.1 → 1.2)

@TooTallNate
TooTallNate requested a review from a team as a code ownerApril 16, 2026 00:21
CopilotAI review requested due to automatic review settings April 16, 2026 00:21
@vercel

vercelBot commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

@changeset-bot

changeset-botBot commented Apr 16, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: cebcc56

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

This PR includes changesets to release 24 packages
NameType
@workflow/corePatch
workflowPatch
@workflow/errorsPatch
@workflow/buildersPatch
@workflow/cliPatch
@workflow/nuxtPatch
@workflow/typescript-pluginPatch
@workflow/webPatch
@workflow/aiPatch
@workflow/astroPatch
@workflow/nextPatch
@workflow/nitroPatch
@workflow/sveltekitPatch
@workflow/swc-pluginPatch
@workflow/utilsPatch
@workflow/vitePatch
@workflow/web-sharedPatch
@workflow/vitestPatch
@workflow/world-testingPatch
@workflow/world-localPatch
@workflow/world-postgresPatch
@workflow/world-vercelPatch
@workflow/nestPatch
@workflow/rollupPatch

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

github-actionsBot commented Apr 16, 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🥇 Express0.041s (-7.0% 🟢)1.005s (~)0.964s101.00x
💻 LocalNitro0.050s (+16.7% 🔺)1.006s (~)0.956s101.22x
🐘 PostgresNitro0.059s (-37.6% 🟢)1.010s (-3.2%)0.951s101.44x
🐘 PostgresExpress0.069s (+18.1% 🔺)1.011s (~)0.942s101.66x
workflow with 1 step

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Express1.128s (~)2.005s (~)0.878s101.00x
💻 LocalNitro1.129s (~)2.007s (~)0.878s101.00x
🐘 PostgresExpress1.150s (~)2.008s (~)0.858s101.02x
🐘 PostgresNitro1.154s (+1.2%)2.015s (~)0.861s101.02x
workflow with 10 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express10.832s (-1.2%)11.019s (~)0.187s31.00x
🐘 PostgresNitro10.896s (~)11.024s (~)0.128s31.01x
💻 LocalExpress10.933s (~)11.023s (~)0.091s31.01x
💻 LocalNitro10.935s (~)11.025s (~)0.090s31.01x
workflow with 25 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express14.478s (-0.7%)15.020s (~)0.542s41.00x
🐘 PostgresNitro14.610s (~)15.025s (~)0.415s41.01x
💻 LocalExpress14.909s (~)15.028s (~)0.119s41.03x
💻 LocalNitro14.991s (~)15.030s (-6.2% 🟢)0.039s41.04x
workflow with 50 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express13.935s (-0.5%)14.303s (-2.0%)0.367s71.00x
🐘 PostgresNitro14.027s (~)14.735s (+3.0%)0.708s71.01x
💻 LocalExpress16.304s (-1.8%)17.030s (~)0.726s61.17x
💻 LocalNitro16.686s (-0.6%)17.031s (~)0.344s61.20x
Promise.all with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.271s (+0.8%)2.009s (~)0.738s151.00x
🐘 PostgresNitro1.272s (~)2.010s (~)0.738s151.00x
💻 LocalExpress1.485s (~)2.005s (~)0.520s151.17x
💻 LocalNitro1.513s (-7.2% 🟢)2.005s (-3.3%)0.492s151.19x
Promise.all with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express2.335s (-1.1%)3.009s (~)0.674s101.00x
🐘 PostgresNitro2.351s (~)3.008s (~)0.657s101.01x
💻 LocalExpress2.866s (-2.9%)3.109s (-10.0% 🟢)0.242s101.23x
💻 LocalNitro2.902s (-7.7% 🟢)3.007s (-22.6% 🟢)0.105s101.24x
Promise.all with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.472s (~)4.009s (~)0.537s81.00x
🐘 PostgresNitro3.494s (~)4.010s (~)0.516s81.01x
💻 LocalExpress7.490s (-10.2% 🟢)8.023s (-11.1% 🟢)0.533s42.16x
💻 LocalNitro8.374s (~)9.020s (~)0.646s42.41x
Promise.race with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.260s (~)2.007s (~)0.747s151.00x
🐘 PostgresNitro1.263s (~)2.008s (~)0.746s151.00x
💻 LocalExpress1.501s (-20.7% 🟢)2.006s (-15.1% 🟢)0.505s151.19x
💻 LocalNitro1.540s (-17.4% 🟢)2.005s (-14.3% 🟢)0.465s151.22x
Promise.race with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express2.344s (~)3.009s (~)0.666s101.00x
🐘 PostgresNitro2.357s (+0.7%)3.011s (~)0.654s101.01x
💻 LocalExpress2.806s (-10.4% 🟢)3.007s (-20.1% 🟢)0.201s101.20x
💻 LocalNitro3.473s (+13.3% 🔺)4.135s (+6.4% 🔺)0.661s81.48x
Promise.race with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.473s (-0.7%)4.010s (~)0.537s81.00x
🐘 PostgresNitro3.499s (+0.5%)4.012s (~)0.513s81.01x
💻 LocalExpress7.663s (-12.9% 🟢)8.271s (-10.8% 🟢)0.607s42.21x
💻 LocalNitro9.050s (-1.0%)9.524s (-5.0%)0.474s42.61x
workflow with 10 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.810s (-3.4%)1.006s (-1.6%)0.196s601.00x
🐘 PostgresNitro0.856s (+4.3%)1.006s (~)0.150s601.06x
💻 LocalNitro1.003s (+2.3%)1.281s (+17.1% 🔺)0.279s471.24x
💻 LocalExpress1.003s (+1.9%)1.423s (+32.3% 🔺)0.420s431.24x
workflow with 25 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.903s (-3.7%)2.052s (-9.1% 🟢)0.150s441.00x
🐘 PostgresNitro2.096s (+8.7% 🔺)2.821s (+34.3% 🔺)0.726s321.10x
💻 LocalExpress3.006s (~)3.508s (-2.1%)0.503s261.58x
💻 LocalNitro3.035s (~)3.689s (-1.8%)0.655s251.59x
workflow with 50 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.838s (-3.8%)4.076s (-6.7% 🟢)0.238s301.00x
🐘 PostgresNitro4.141s (+0.9%)4.812s (+4.5%)0.671s251.08x
💻 LocalExpress8.941s (-2.9%)9.479s (-5.4% 🟢)0.538s132.33x
💻 LocalNitro9.197s (-1.1%)9.942s (-0.8%)0.745s132.40x
workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.287s (+1.7%)1.007s (~)0.720s601.00x
🐘 PostgresNitro0.302s (+6.5% 🔺)1.007s (~)0.706s601.05x
💻 LocalNitro0.563s (-6.9% 🟢)1.005s (-1.6%)0.442s601.96x
💻 LocalExpress0.590s (+5.2% 🔺)1.004s (~)0.415s602.05x
workflow with 25 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.495s (-3.0%)1.006s (~)0.512s901.00x
🐘 PostgresNitro0.516s (+3.9%)1.007s (~)0.491s901.04x
💻 LocalExpress2.374s (-5.5% 🟢)3.008s (~)0.634s304.80x
💻 LocalNitro2.568s (+1.2%)3.009s (~)0.441s305.19x
workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.781s (-4.6%)1.008s (-1.0%)0.227s1201.00x
🐘 PostgresNitro0.837s (+5.9% 🔺)1.018s (+1.1%)0.181s1181.07x
💻 LocalExpress10.403s (-7.0% 🟢)11.029s (-7.6% 🟢)0.626s1113.32x
💻 LocalNitro11.221s (~)11.941s (+2.4%)0.721s1114.37x
Stream Benchmarks(includes TTFB metrics)
workflow with stream

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Nitro0.200s (-6.2% 🟢)1.004s (~)0.012s (-4.0%)1.018s (~)0.818s101.00x
🐘 PostgresExpress0.206s (~)0.998s (~)0.002s (~)1.010s (~)0.805s101.03x
💻 LocalExpress0.213s (+7.1% 🔺)1.004s (~)0.010s (-19.0% 🟢)1.015s (~)0.802s101.06x
🐘 PostgresNitro0.216s (+5.6% 🔺)0.995s (~)0.001s (-6.7% 🟢)1.010s (~)0.793s101.08x
stream pipeline with 5 transform steps (1MB)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.606s (-3.9%)1.006s (~)0.004s (-2.2%)1.024s (~)0.419s591.00x
🐘 PostgresNitro0.649s (+4.0%)1.006s (~)0.004s (-4.1%)1.022s (~)0.373s591.07x
💻 LocalNitro0.823s (-1.8%)1.012s (~)0.009s (-1.0%)1.116s (~)0.292s541.36x
💻 LocalExpress0.836s (+10.5% 🔺)1.012s (-1.6%)0.008s (-10.3% 🟢)1.115s (+7.2% 🔺)0.279s541.38x
10 parallel streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.955s (-0.6%)1.194s (-6.6% 🟢)0.000s (-100.0% 🟢)1.208s (-7.5% 🟢)0.253s501.00x
🐘 PostgresNitro1.018s (+5.0% 🔺)1.414s (+13.4% 🔺)0.000s (+11.6% 🔺)1.428s (+13.5% 🔺)0.410s431.07x
💻 LocalExpress1.197s (-2.2%)2.019s (~)0.000s (+20.0% 🔺)2.021s (~)0.823s301.25x
💻 LocalNitro1.226s (~)2.021s (~)0.000s (+300.0% 🔺)2.023s (~)0.796s301.28x
fan-out fan-in 10 streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.779s (~)2.135s (-1.9%)0.000s (NaN%)2.182s (-0.8%)0.403s291.00x
🐘 PostgresNitro1.823s (+1.8%)2.142s (~)0.000s (+100.0% 🔺)2.153s (-1.0%)0.330s281.03x
💻 LocalExpress3.232s (-6.8% 🟢)3.970s (-1.6%)0.000s (-45.3% 🟢)3.973s (-1.6%)0.741s161.82x
💻 LocalNitro3.578s (+5.6% 🔺)4.035s (~)0.000s (-50.0% 🟢)4.037s (~)0.460s152.01x

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World🥇 Fastest FrameworkWins
💻 LocalExpress17/21
🐘 PostgresExpress20/21
Fastest World by Framework

Winner determined by most benchmark wins

Framework🥇 Fastest WorldWins
Express🐘 Postgres19/21
Nitro🐘 Postgres18/21
Column Definitions
  • Workflow Time: Runtime reported by workflow (completedAt - createdAt) - primary metric
  • TTFB: Time to First Byte - time from workflow start until first stream byte received (stream benchmarks only)
  • Slurp: Time from first byte to complete stream consumption (stream benchmarks only)
  • Wall Time: Total testbench time (trigger workflow + poll for result)
  • Overhead: Testbench overhead (Wall Time - Workflow Time)
  • Samples: Number of benchmark iterations run
  • vs Fastest: How much slower compared to the fastest configuration for this benchmark

Worlds:

  • 💻 Local: In-memory filesystem world (local development)
  • 🐘 Postgres: PostgreSQL database world (local development)
  • ▲ Vercel: Vercel production/preview deployment
  • 🌐 Turso: Community world (local development)
  • 🌐 MongoDB: Community world (local development)
  • 🌐 Redis: Community world (local development)
  • 🌐 Jazz: Community world (local development)

📋 View full workflow run


Some benchmark jobs failed:

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

Check the workflow run for details.

@github-actions

github-actionsBot commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

🧪 E2E Test Results

Some tests failed

Summary

PassedFailedSkippedTotal
✅ ▲ Vercel Production923067990
✅ 💻 Local Development89801821080
✅ 📦 Local Production89801821080
✅ 🐘 Local Postgres89801821080
❌ 🌍 Community Worlds1337424231
✅ 📋 Other228042270
Total3978746794731

❌ Failed Tests

🌍 Community Worlds (74 failed)

mongodb (7 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6

redis (7 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6

turso (60 failed):

  • addTenWorkflow | wrun_01KP9W18E46XWMGNAP7GPJ22P0
  • addTenWorkflow | wrun_01KP9W18E46XWMGNAP7GPJ22P0
  • wellKnownAgentWorkflow (.well-known/agent) | wrun_01KP9W2VEGSJBQX8RASQF1J4NE
  • should work with react rendering in step
  • promiseAllWorkflow | wrun_01KP9W1EWY5BES8SR37SHCYFPH
  • promiseRaceWorkflow | wrun_01KP9W1K77N1Q575SC7JJB73NR
  • promiseAnyWorkflow | wrun_01KP9W1NC1R1GJH9K3QXHVBZKZ
  • importedStepOnlyWorkflow | wrun_01KP9W36KYGJ6S4H07DCDQWJ8A
  • hookWorkflow | wrun_01KP9W21C54M51895CE8MRCYBB
  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • sleepingWorkflow | wrun_01KP9W2TWK8YSN713Q1EKFB53K
  • parallelSleepWorkflow | wrun_01KP9W3674HTAW7EGRJBPENYCV
  • nullByteWorkflow | wrun_01KP9W3AN2TM1SN6BQ8K2CW6SQ
  • workflowAndStepMetadataWorkflow | wrun_01KP9W3CPJDBVH2ZR4DYGKPHAE
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • promiseRaceStressTestWorkflow | wrun_01KP9W6BKF8P1CB939TXQ81NJQ
  • 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()
  • error handling not registered WorkflowNotRegisteredError fails the run when workflow does not exist
  • error handling not registered StepNotRegisteredError fails the step but workflow can catch it
  • error handling not registered StepNotRegisteredError fails the run when not caught in workflow
  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_01KP9W9SXNBCMYQX4QJS3Z45FZ
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KP9WB2M1AKCD3ZWCZ3H7TK1Y
  • stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KP9WBQKPQR0ZZD459512MQ9E
  • stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KP9WC03MQMW2QSR08TQSCH3G
  • closureVariableWorkflow - nested step functions with closure variables | wrun_01KP9WC5ESZBK8XRMJP6K59G7B
  • spawnWorkflowFromStepWorkflow - spawning a child workflow using start() inside a step | wrun_01KP9WC7F4F5HMBQ7GR3JS28XG
  • runClassSerializationWorkflow - Run instances serialize across workflow/step boundaries | wrun_01KP9WCJA7VVEF3KTY1RKW4HN8
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • pathsAliasWorkflow - TypeScript path aliases resolve correctly | wrun_01KP9WD1J20FEW289749Z4XT3B
  • Calculator.calculate - static workflow method using static step methods from another class | wrun_01KP9WD724DS9TMEK0P3X1RQ6C
  • AllInOneService.processNumber - static workflow method using sibling static step methods | wrun_01KP9WDDD7P67ST23KWEH94H0J
  • ChainableService.processWithThis - static step methods using this to reference the class | wrun_01KP9WDKPRQ8DSJ8CG20NYWHE6
  • thisSerializationWorkflow - step function invoked with .call() and .apply() | wrun_01KP9WDTHDTA67H42QKE69K19W
  • customSerializationWorkflow - custom class serialization with WORKFLOW_SERIALIZE/WORKFLOW_DESERIALIZE | wrun_01KP9WE20QPDCYWP7FPRYABMT3
  • instanceMethodStepWorkflow - instance methods with "use step" directive | wrun_01KP9WE8DWYSW2SB2B9R24AYNN
  • crossContextSerdeWorkflow - classes defined in step code are deserializable in workflow context | wrun_01KP9WEKCK2DRC8HYM6KG252TM
  • stepFunctionAsStartArgWorkflow - step function reference passed as start() argument | wrun_01KP9WEYRH9GEHVFZF0SXPC9B8
  • cancelRun - cancelling a running workflow | wrun_01KP9WF56R7472CDY8S2RN89GQ
  • cancelRun via CLI - cancelling a running workflow | wrun_01KP9WFE6K231NF35QNZEXQJS9
  • 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_01KP9WFT8RY7FVERDW6K4TP38N
  • sleepInLoopWorkflow - sleep inside loop with steps actually delays each iteration | wrun_01KP9WGEFJMR2Z4B7WXCB1N0ZV
  • sleepWithSequentialStepsWorkflow - sequential steps work with concurrent sleep (control) | wrun_01KP9WGS3RGEKHYACVGWXF3XM0
  • importMetaUrlWorkflow - import.meta.url is available in step bundles | wrun_01KP9WGZTGAEE44KCRJVSPQ8G4
  • metadataFromHelperWorkflow - getWorkflowMetadata/getStepMetadata work from module-level helper (#1577) | wrun_01KP9WH1VWXCNR302D6BEVED3P
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6
  • getterStepWorkflow - getter functions with "use step" directive | wrun_01KP9WH70RWBSFGD88HV8M3BAY

Details by Category

✅ ▲ Vercel Production
AppPassedFailedSkipped
✅ astro8307
✅ example8307
✅ express8307
✅ fastify8307
✅ hono8307
✅ nextjs-turbopack8802
✅ nextjs-webpack8802
✅ nitro8307
✅ nuxt8307
✅ sveltekit8307
✅ vite8307
✅ 💻 Local Development
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
✅ 📦 Local Production
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
✅ 🐘 Local Postgres
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
❌ 🌍 Community Worlds
AppPassedFailedSkipped
✅ mongodb-dev600
❌ mongodb5678
✅ redis-dev600
❌ redis5678
✅ turso-dev600
❌ turso3608
✅ 📋 Other
AppPassedFailedSkipped
✅ e2e-local-dev-nest-stable76014
✅ e2e-local-postgres-nest-stable76014
✅ e2e-local-prod-nest-stable76014

📋 View full workflow run

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

Pull request overview

Updates documentation and homepage UI text/links to reflect the rename from “Workflow DevKit” / workflowdevkit to “Workflow SDK” / workflowsdk.

Changes:

  • Updated X/Twitter profile link to https://x.com/workflowsdk.
  • Renamed “Workflow DevKit” phrasing to “Workflow SDK” in docs and tweet wall copy.
  • Updated publishing-libraries cookbook examples to use vitest.workflowsdk.config.ts and *.workflowsdk.test.ts naming.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

FileDescription
docs/components/geistdocs/x-button.tsxUpdates the X profile URL to the new workflowsdk handle.
docs/content/docs/errors/start-invalid-workflow-function.mdxUpdates “Workflow DevKit’s” wording to “Workflow SDK’s”.
docs/content/docs/cookbook/advanced/publishing-libraries.mdxUpdates example Vitest config/test filename patterns from workflowdevkit to workflowsdk.
docs/app/[lang]/(home)/components/tweet-wall.tsxUpdates tweet wall display text to “Workflow SDK” and @WorkflowSDK.

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

@VaguelySeriousVaguelySerious left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM, also useworkflow.dev needs changing to workflow-sdk.dev

@TooTallNate
TooTallNate disabled auto-merge April 16, 2026 01:01
@TooTallNate
TooTallNate merged commit 173756d into mainApr 16, 2026
99 of 101 checks passed
@TooTallNate
TooTallNate deleted the fix/rename-workflowdevkit-to-workflowsdk branch April 16, 2026 01:01
@TooTallNateTooTallNate added the backport-stable Cherry-pick this PR to the stable branch when merged label Apr 16, 2026
@ghostghost mentioned this pull request Apr 16, 2026
ghost pushed a commit that referenced this pull request Apr 16, 2026
…rkflow-sdk.dev (#1759)
* [docs] Rename workflowdevkit references to workflowsdk
* [docs] Rename useworkflow.dev to workflow-sdk.dev
* [chore] Add changeset for domain rename
* [docs] Revert sitemap rewrite to useworkflow.dev (crawled-sitemap not yet available for new domain)
@ghost

Copy link
Copy Markdown

Cherry-pick to stable had conflicts that were resolved by AI. Please review the backport PR: #1760

@TooTallNateTooTallNate added backport-stable Cherry-pick this PR to the stable branch when merged and removed backport-stable Cherry-pick this PR to the stable branch when merged labels Apr 17, 2026
ghost pushed a commit that referenced this pull request Apr 17, 2026
…rkflow-sdk.dev (#1759)
* [docs] Rename workflowdevkit references to workflowsdk
* [docs] Rename useworkflow.dev to workflow-sdk.dev
* [chore] Add changeset for domain rename
* [docs] Revert sitemap rewrite to useworkflow.dev (crawled-sitemap not yet available for new domain)
Signed-off-by: Nathan Rajlich <n@n8.io>
@ghost

Copy link
Copy Markdown

Cherry-pick to stable had conflicts that were resolved by AI. Please review the backport PR: #1794

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-stableCherry-pick this PR to the stable branch when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@TooTallNate@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[docs] Rename workflowdevkit to workflowsdk and useworkflow.dev to workflow-sdk.dev - #1759

Merged
TooTallNate merged 4 commits into
mainfrom
fix/rename-workflowdevkit-to-workflowsdk
Apr 16, 2026
Merged

[docs] Rename workflowdevkit to workflowsdk and useworkflow.dev to workflow-sdk.dev#1759
TooTallNate merged 4 commits into
mainfrom
fix/rename-workflowdevkit-to-workflowsdk

Conversation

@TooTallNate

@TooTallNateTooTallNate commented Apr 16, 2026

Copy link
Copy Markdown
Member

Summary

  • Updates the X/Twitter social link from @workflowdevkit to @workflowsdk
  • Renames "Workflow DevKit" / "Workflow Dev Kit" to "Workflow SDK" in docs and tweet wall
  • Updates example config/test filenames from workflowdevkit to workflowsdk in the publishing libraries cookbook
  • Replaces all 56 references to useworkflow.dev with workflow-sdk.dev across 36 files (source code, READMEs, skills, docs)
  • Bumps skill versions for workflow (1.7 → 1.8) and workflow-init (1.1 → 1.2)

@TooTallNate
TooTallNate requested a review from a team as a code ownerApril 16, 2026 00:21
CopilotAI review requested due to automatic review settings April 16, 2026 00:21
@vercel

vercelBot commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

@changeset-bot

changeset-botBot commented Apr 16, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: cebcc56

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

This PR includes changesets to release 24 packages
NameType
@workflow/corePatch
workflowPatch
@workflow/errorsPatch
@workflow/buildersPatch
@workflow/cliPatch
@workflow/nuxtPatch
@workflow/typescript-pluginPatch
@workflow/webPatch
@workflow/aiPatch
@workflow/astroPatch
@workflow/nextPatch
@workflow/nitroPatch
@workflow/sveltekitPatch
@workflow/swc-pluginPatch
@workflow/utilsPatch
@workflow/vitePatch
@workflow/web-sharedPatch
@workflow/vitestPatch
@workflow/world-testingPatch
@workflow/world-localPatch
@workflow/world-postgresPatch
@workflow/world-vercelPatch
@workflow/nestPatch
@workflow/rollupPatch

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

github-actionsBot commented Apr 16, 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🥇 Express0.041s (-7.0% 🟢)1.005s (~)0.964s101.00x
💻 LocalNitro0.050s (+16.7% 🔺)1.006s (~)0.956s101.22x
🐘 PostgresNitro0.059s (-37.6% 🟢)1.010s (-3.2%)0.951s101.44x
🐘 PostgresExpress0.069s (+18.1% 🔺)1.011s (~)0.942s101.66x
workflow with 1 step

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Express1.128s (~)2.005s (~)0.878s101.00x
💻 LocalNitro1.129s (~)2.007s (~)0.878s101.00x
🐘 PostgresExpress1.150s (~)2.008s (~)0.858s101.02x
🐘 PostgresNitro1.154s (+1.2%)2.015s (~)0.861s101.02x
workflow with 10 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express10.832s (-1.2%)11.019s (~)0.187s31.00x
🐘 PostgresNitro10.896s (~)11.024s (~)0.128s31.01x
💻 LocalExpress10.933s (~)11.023s (~)0.091s31.01x
💻 LocalNitro10.935s (~)11.025s (~)0.090s31.01x
workflow with 25 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express14.478s (-0.7%)15.020s (~)0.542s41.00x
🐘 PostgresNitro14.610s (~)15.025s (~)0.415s41.01x
💻 LocalExpress14.909s (~)15.028s (~)0.119s41.03x
💻 LocalNitro14.991s (~)15.030s (-6.2% 🟢)0.039s41.04x
workflow with 50 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express13.935s (-0.5%)14.303s (-2.0%)0.367s71.00x
🐘 PostgresNitro14.027s (~)14.735s (+3.0%)0.708s71.01x
💻 LocalExpress16.304s (-1.8%)17.030s (~)0.726s61.17x
💻 LocalNitro16.686s (-0.6%)17.031s (~)0.344s61.20x
Promise.all with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.271s (+0.8%)2.009s (~)0.738s151.00x
🐘 PostgresNitro1.272s (~)2.010s (~)0.738s151.00x
💻 LocalExpress1.485s (~)2.005s (~)0.520s151.17x
💻 LocalNitro1.513s (-7.2% 🟢)2.005s (-3.3%)0.492s151.19x
Promise.all with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express2.335s (-1.1%)3.009s (~)0.674s101.00x
🐘 PostgresNitro2.351s (~)3.008s (~)0.657s101.01x
💻 LocalExpress2.866s (-2.9%)3.109s (-10.0% 🟢)0.242s101.23x
💻 LocalNitro2.902s (-7.7% 🟢)3.007s (-22.6% 🟢)0.105s101.24x
Promise.all with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.472s (~)4.009s (~)0.537s81.00x
🐘 PostgresNitro3.494s (~)4.010s (~)0.516s81.01x
💻 LocalExpress7.490s (-10.2% 🟢)8.023s (-11.1% 🟢)0.533s42.16x
💻 LocalNitro8.374s (~)9.020s (~)0.646s42.41x
Promise.race with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.260s (~)2.007s (~)0.747s151.00x
🐘 PostgresNitro1.263s (~)2.008s (~)0.746s151.00x
💻 LocalExpress1.501s (-20.7% 🟢)2.006s (-15.1% 🟢)0.505s151.19x
💻 LocalNitro1.540s (-17.4% 🟢)2.005s (-14.3% 🟢)0.465s151.22x
Promise.race with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express2.344s (~)3.009s (~)0.666s101.00x
🐘 PostgresNitro2.357s (+0.7%)3.011s (~)0.654s101.01x
💻 LocalExpress2.806s (-10.4% 🟢)3.007s (-20.1% 🟢)0.201s101.20x
💻 LocalNitro3.473s (+13.3% 🔺)4.135s (+6.4% 🔺)0.661s81.48x
Promise.race with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.473s (-0.7%)4.010s (~)0.537s81.00x
🐘 PostgresNitro3.499s (+0.5%)4.012s (~)0.513s81.01x
💻 LocalExpress7.663s (-12.9% 🟢)8.271s (-10.8% 🟢)0.607s42.21x
💻 LocalNitro9.050s (-1.0%)9.524s (-5.0%)0.474s42.61x
workflow with 10 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.810s (-3.4%)1.006s (-1.6%)0.196s601.00x
🐘 PostgresNitro0.856s (+4.3%)1.006s (~)0.150s601.06x
💻 LocalNitro1.003s (+2.3%)1.281s (+17.1% 🔺)0.279s471.24x
💻 LocalExpress1.003s (+1.9%)1.423s (+32.3% 🔺)0.420s431.24x
workflow with 25 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.903s (-3.7%)2.052s (-9.1% 🟢)0.150s441.00x
🐘 PostgresNitro2.096s (+8.7% 🔺)2.821s (+34.3% 🔺)0.726s321.10x
💻 LocalExpress3.006s (~)3.508s (-2.1%)0.503s261.58x
💻 LocalNitro3.035s (~)3.689s (-1.8%)0.655s251.59x
workflow with 50 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.838s (-3.8%)4.076s (-6.7% 🟢)0.238s301.00x
🐘 PostgresNitro4.141s (+0.9%)4.812s (+4.5%)0.671s251.08x
💻 LocalExpress8.941s (-2.9%)9.479s (-5.4% 🟢)0.538s132.33x
💻 LocalNitro9.197s (-1.1%)9.942s (-0.8%)0.745s132.40x
workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.287s (+1.7%)1.007s (~)0.720s601.00x
🐘 PostgresNitro0.302s (+6.5% 🔺)1.007s (~)0.706s601.05x
💻 LocalNitro0.563s (-6.9% 🟢)1.005s (-1.6%)0.442s601.96x
💻 LocalExpress0.590s (+5.2% 🔺)1.004s (~)0.415s602.05x
workflow with 25 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.495s (-3.0%)1.006s (~)0.512s901.00x
🐘 PostgresNitro0.516s (+3.9%)1.007s (~)0.491s901.04x
💻 LocalExpress2.374s (-5.5% 🟢)3.008s (~)0.634s304.80x
💻 LocalNitro2.568s (+1.2%)3.009s (~)0.441s305.19x
workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.781s (-4.6%)1.008s (-1.0%)0.227s1201.00x
🐘 PostgresNitro0.837s (+5.9% 🔺)1.018s (+1.1%)0.181s1181.07x
💻 LocalExpress10.403s (-7.0% 🟢)11.029s (-7.6% 🟢)0.626s1113.32x
💻 LocalNitro11.221s (~)11.941s (+2.4%)0.721s1114.37x
Stream Benchmarks(includes TTFB metrics)
workflow with stream

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Nitro0.200s (-6.2% 🟢)1.004s (~)0.012s (-4.0%)1.018s (~)0.818s101.00x
🐘 PostgresExpress0.206s (~)0.998s (~)0.002s (~)1.010s (~)0.805s101.03x
💻 LocalExpress0.213s (+7.1% 🔺)1.004s (~)0.010s (-19.0% 🟢)1.015s (~)0.802s101.06x
🐘 PostgresNitro0.216s (+5.6% 🔺)0.995s (~)0.001s (-6.7% 🟢)1.010s (~)0.793s101.08x
stream pipeline with 5 transform steps (1MB)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.606s (-3.9%)1.006s (~)0.004s (-2.2%)1.024s (~)0.419s591.00x
🐘 PostgresNitro0.649s (+4.0%)1.006s (~)0.004s (-4.1%)1.022s (~)0.373s591.07x
💻 LocalNitro0.823s (-1.8%)1.012s (~)0.009s (-1.0%)1.116s (~)0.292s541.36x
💻 LocalExpress0.836s (+10.5% 🔺)1.012s (-1.6%)0.008s (-10.3% 🟢)1.115s (+7.2% 🔺)0.279s541.38x
10 parallel streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.955s (-0.6%)1.194s (-6.6% 🟢)0.000s (-100.0% 🟢)1.208s (-7.5% 🟢)0.253s501.00x
🐘 PostgresNitro1.018s (+5.0% 🔺)1.414s (+13.4% 🔺)0.000s (+11.6% 🔺)1.428s (+13.5% 🔺)0.410s431.07x
💻 LocalExpress1.197s (-2.2%)2.019s (~)0.000s (+20.0% 🔺)2.021s (~)0.823s301.25x
💻 LocalNitro1.226s (~)2.021s (~)0.000s (+300.0% 🔺)2.023s (~)0.796s301.28x
fan-out fan-in 10 streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.779s (~)2.135s (-1.9%)0.000s (NaN%)2.182s (-0.8%)0.403s291.00x
🐘 PostgresNitro1.823s (+1.8%)2.142s (~)0.000s (+100.0% 🔺)2.153s (-1.0%)0.330s281.03x
💻 LocalExpress3.232s (-6.8% 🟢)3.970s (-1.6%)0.000s (-45.3% 🟢)3.973s (-1.6%)0.741s161.82x
💻 LocalNitro3.578s (+5.6% 🔺)4.035s (~)0.000s (-50.0% 🟢)4.037s (~)0.460s152.01x

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World🥇 Fastest FrameworkWins
💻 LocalExpress17/21
🐘 PostgresExpress20/21
Fastest World by Framework

Winner determined by most benchmark wins

Framework🥇 Fastest WorldWins
Express🐘 Postgres19/21
Nitro🐘 Postgres18/21
Column Definitions
  • Workflow Time: Runtime reported by workflow (completedAt - createdAt) - primary metric
  • TTFB: Time to First Byte - time from workflow start until first stream byte received (stream benchmarks only)
  • Slurp: Time from first byte to complete stream consumption (stream benchmarks only)
  • Wall Time: Total testbench time (trigger workflow + poll for result)
  • Overhead: Testbench overhead (Wall Time - Workflow Time)
  • Samples: Number of benchmark iterations run
  • vs Fastest: How much slower compared to the fastest configuration for this benchmark

Worlds:

  • 💻 Local: In-memory filesystem world (local development)
  • 🐘 Postgres: PostgreSQL database world (local development)
  • ▲ Vercel: Vercel production/preview deployment
  • 🌐 Turso: Community world (local development)
  • 🌐 MongoDB: Community world (local development)
  • 🌐 Redis: Community world (local development)
  • 🌐 Jazz: Community world (local development)

📋 View full workflow run


Some benchmark jobs failed:

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

Check the workflow run for details.

@github-actions

github-actionsBot commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

🧪 E2E Test Results

Some tests failed

Summary

PassedFailedSkippedTotal
✅ ▲ Vercel Production923067990
✅ 💻 Local Development89801821080
✅ 📦 Local Production89801821080
✅ 🐘 Local Postgres89801821080
❌ 🌍 Community Worlds1337424231
✅ 📋 Other228042270
Total3978746794731

❌ Failed Tests

🌍 Community Worlds (74 failed)

mongodb (7 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6

redis (7 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6

turso (60 failed):

  • addTenWorkflow | wrun_01KP9W18E46XWMGNAP7GPJ22P0
  • addTenWorkflow | wrun_01KP9W18E46XWMGNAP7GPJ22P0
  • wellKnownAgentWorkflow (.well-known/agent) | wrun_01KP9W2VEGSJBQX8RASQF1J4NE
  • should work with react rendering in step
  • promiseAllWorkflow | wrun_01KP9W1EWY5BES8SR37SHCYFPH
  • promiseRaceWorkflow | wrun_01KP9W1K77N1Q575SC7JJB73NR
  • promiseAnyWorkflow | wrun_01KP9W1NC1R1GJH9K3QXHVBZKZ
  • importedStepOnlyWorkflow | wrun_01KP9W36KYGJ6S4H07DCDQWJ8A
  • hookWorkflow | wrun_01KP9W21C54M51895CE8MRCYBB
  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • sleepingWorkflow | wrun_01KP9W2TWK8YSN713Q1EKFB53K
  • parallelSleepWorkflow | wrun_01KP9W3674HTAW7EGRJBPENYCV
  • nullByteWorkflow | wrun_01KP9W3AN2TM1SN6BQ8K2CW6SQ
  • workflowAndStepMetadataWorkflow | wrun_01KP9W3CPJDBVH2ZR4DYGKPHAE
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • promiseRaceStressTestWorkflow | wrun_01KP9W6BKF8P1CB939TXQ81NJQ
  • 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()
  • error handling not registered WorkflowNotRegisteredError fails the run when workflow does not exist
  • error handling not registered StepNotRegisteredError fails the step but workflow can catch it
  • error handling not registered StepNotRegisteredError fails the run when not caught in workflow
  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_01KP9W9SXNBCMYQX4QJS3Z45FZ
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KP9WB2M1AKCD3ZWCZ3H7TK1Y
  • stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KP9WBQKPQR0ZZD459512MQ9E
  • stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KP9WC03MQMW2QSR08TQSCH3G
  • closureVariableWorkflow - nested step functions with closure variables | wrun_01KP9WC5ESZBK8XRMJP6K59G7B
  • spawnWorkflowFromStepWorkflow - spawning a child workflow using start() inside a step | wrun_01KP9WC7F4F5HMBQ7GR3JS28XG
  • runClassSerializationWorkflow - Run instances serialize across workflow/step boundaries | wrun_01KP9WCJA7VVEF3KTY1RKW4HN8
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • pathsAliasWorkflow - TypeScript path aliases resolve correctly | wrun_01KP9WD1J20FEW289749Z4XT3B
  • Calculator.calculate - static workflow method using static step methods from another class | wrun_01KP9WD724DS9TMEK0P3X1RQ6C
  • AllInOneService.processNumber - static workflow method using sibling static step methods | wrun_01KP9WDDD7P67ST23KWEH94H0J
  • ChainableService.processWithThis - static step methods using this to reference the class | wrun_01KP9WDKPRQ8DSJ8CG20NYWHE6
  • thisSerializationWorkflow - step function invoked with .call() and .apply() | wrun_01KP9WDTHDTA67H42QKE69K19W
  • customSerializationWorkflow - custom class serialization with WORKFLOW_SERIALIZE/WORKFLOW_DESERIALIZE | wrun_01KP9WE20QPDCYWP7FPRYABMT3
  • instanceMethodStepWorkflow - instance methods with "use step" directive | wrun_01KP9WE8DWYSW2SB2B9R24AYNN
  • crossContextSerdeWorkflow - classes defined in step code are deserializable in workflow context | wrun_01KP9WEKCK2DRC8HYM6KG252TM
  • stepFunctionAsStartArgWorkflow - step function reference passed as start() argument | wrun_01KP9WEYRH9GEHVFZF0SXPC9B8
  • cancelRun - cancelling a running workflow | wrun_01KP9WF56R7472CDY8S2RN89GQ
  • cancelRun via CLI - cancelling a running workflow | wrun_01KP9WFE6K231NF35QNZEXQJS9
  • 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_01KP9WFT8RY7FVERDW6K4TP38N
  • sleepInLoopWorkflow - sleep inside loop with steps actually delays each iteration | wrun_01KP9WGEFJMR2Z4B7WXCB1N0ZV
  • sleepWithSequentialStepsWorkflow - sequential steps work with concurrent sleep (control) | wrun_01KP9WGS3RGEKHYACVGWXF3XM0
  • importMetaUrlWorkflow - import.meta.url is available in step bundles | wrun_01KP9WGZTGAEE44KCRJVSPQ8G4
  • metadataFromHelperWorkflow - getWorkflowMetadata/getStepMetadata work from module-level helper (#1577) | wrun_01KP9WH1VWXCNR302D6BEVED3P
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6
  • getterStepWorkflow - getter functions with "use step" directive | wrun_01KP9WH70RWBSFGD88HV8M3BAY

Details by Category

✅ ▲ Vercel Production
AppPassedFailedSkipped
✅ astro8307
✅ example8307
✅ express8307
✅ fastify8307
✅ hono8307
✅ nextjs-turbopack8802
✅ nextjs-webpack8802
✅ nitro8307
✅ nuxt8307
✅ sveltekit8307
✅ vite8307
✅ 💻 Local Development
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
✅ 📦 Local Production
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
✅ 🐘 Local Postgres
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
❌ 🌍 Community Worlds
AppPassedFailedSkipped
✅ mongodb-dev600
❌ mongodb5678
✅ redis-dev600
❌ redis5678
✅ turso-dev600
❌ turso3608
✅ 📋 Other
AppPassedFailedSkipped
✅ e2e-local-dev-nest-stable76014
✅ e2e-local-postgres-nest-stable76014
✅ e2e-local-prod-nest-stable76014

📋 View full workflow run

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

Pull request overview

Updates documentation and homepage UI text/links to reflect the rename from “Workflow DevKit” / workflowdevkit to “Workflow SDK” / workflowsdk.

Changes:

  • Updated X/Twitter profile link to https://x.com/workflowsdk.
  • Renamed “Workflow DevKit” phrasing to “Workflow SDK” in docs and tweet wall copy.
  • Updated publishing-libraries cookbook examples to use vitest.workflowsdk.config.ts and *.workflowsdk.test.ts naming.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

FileDescription
docs/components/geistdocs/x-button.tsxUpdates the X profile URL to the new workflowsdk handle.
docs/content/docs/errors/start-invalid-workflow-function.mdxUpdates “Workflow DevKit’s” wording to “Workflow SDK’s”.
docs/content/docs/cookbook/advanced/publishing-libraries.mdxUpdates example Vitest config/test filename patterns from workflowdevkit to workflowsdk.
docs/app/[lang]/(home)/components/tweet-wall.tsxUpdates tweet wall display text to “Workflow SDK” and @WorkflowSDK.

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

@VaguelySeriousVaguelySerious left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM, also useworkflow.dev needs changing to workflow-sdk.dev

@TooTallNate
TooTallNate disabled auto-merge April 16, 2026 01:01
@TooTallNate
TooTallNate merged commit 173756d into mainApr 16, 2026
99 of 101 checks passed
@TooTallNate
TooTallNate deleted the fix/rename-workflowdevkit-to-workflowsdk branch April 16, 2026 01:01
@TooTallNateTooTallNate added the backport-stable Cherry-pick this PR to the stable branch when merged label Apr 16, 2026
@ghostghost mentioned this pull request Apr 16, 2026
ghost pushed a commit that referenced this pull request Apr 16, 2026
…rkflow-sdk.dev (#1759)
* [docs] Rename workflowdevkit references to workflowsdk
* [docs] Rename useworkflow.dev to workflow-sdk.dev
* [chore] Add changeset for domain rename
* [docs] Revert sitemap rewrite to useworkflow.dev (crawled-sitemap not yet available for new domain)
@ghost

Copy link
Copy Markdown

Cherry-pick to stable had conflicts that were resolved by AI. Please review the backport PR: #1760

@TooTallNateTooTallNate added backport-stable Cherry-pick this PR to the stable branch when merged and removed backport-stable Cherry-pick this PR to the stable branch when merged labels Apr 17, 2026
ghost pushed a commit that referenced this pull request Apr 17, 2026
…rkflow-sdk.dev (#1759)
* [docs] Rename workflowdevkit references to workflowsdk
* [docs] Rename useworkflow.dev to workflow-sdk.dev
* [chore] Add changeset for domain rename
* [docs] Revert sitemap rewrite to useworkflow.dev (crawled-sitemap not yet available for new domain)
Signed-off-by: Nathan Rajlich <n@n8.io>
@ghost

Copy link
Copy Markdown

Cherry-pick to stable had conflicts that were resolved by AI. Please review the backport PR: #1794

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-stableCherry-pick this PR to the stable branch when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@TooTallNate@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[docs] Rename workflowdevkit to workflowsdk and useworkflow.dev to workflow-sdk.dev - #1759

Merged
TooTallNate merged 4 commits into
mainfrom
fix/rename-workflowdevkit-to-workflowsdk
Apr 16, 2026
Merged

[docs] Rename workflowdevkit to workflowsdk and useworkflow.dev to workflow-sdk.dev#1759
TooTallNate merged 4 commits into
mainfrom
fix/rename-workflowdevkit-to-workflowsdk

Conversation

@TooTallNate

@TooTallNateTooTallNate commented Apr 16, 2026

Copy link
Copy Markdown
Member

Summary

  • Updates the X/Twitter social link from @workflowdevkit to @workflowsdk
  • Renames "Workflow DevKit" / "Workflow Dev Kit" to "Workflow SDK" in docs and tweet wall
  • Updates example config/test filenames from workflowdevkit to workflowsdk in the publishing libraries cookbook
  • Replaces all 56 references to useworkflow.dev with workflow-sdk.dev across 36 files (source code, READMEs, skills, docs)
  • Bumps skill versions for workflow (1.7 → 1.8) and workflow-init (1.1 → 1.2)

@TooTallNate
TooTallNate requested a review from a team as a code ownerApril 16, 2026 00:21
CopilotAI review requested due to automatic review settings April 16, 2026 00:21
@vercel

vercelBot commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

@changeset-bot

changeset-botBot commented Apr 16, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: cebcc56

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

This PR includes changesets to release 24 packages
NameType
@workflow/corePatch
workflowPatch
@workflow/errorsPatch
@workflow/buildersPatch
@workflow/cliPatch
@workflow/nuxtPatch
@workflow/typescript-pluginPatch
@workflow/webPatch
@workflow/aiPatch
@workflow/astroPatch
@workflow/nextPatch
@workflow/nitroPatch
@workflow/sveltekitPatch
@workflow/swc-pluginPatch
@workflow/utilsPatch
@workflow/vitePatch
@workflow/web-sharedPatch
@workflow/vitestPatch
@workflow/world-testingPatch
@workflow/world-localPatch
@workflow/world-postgresPatch
@workflow/world-vercelPatch
@workflow/nestPatch
@workflow/rollupPatch

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

github-actionsBot commented Apr 16, 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🥇 Express0.041s (-7.0% 🟢)1.005s (~)0.964s101.00x
💻 LocalNitro0.050s (+16.7% 🔺)1.006s (~)0.956s101.22x
🐘 PostgresNitro0.059s (-37.6% 🟢)1.010s (-3.2%)0.951s101.44x
🐘 PostgresExpress0.069s (+18.1% 🔺)1.011s (~)0.942s101.66x
workflow with 1 step

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Express1.128s (~)2.005s (~)0.878s101.00x
💻 LocalNitro1.129s (~)2.007s (~)0.878s101.00x
🐘 PostgresExpress1.150s (~)2.008s (~)0.858s101.02x
🐘 PostgresNitro1.154s (+1.2%)2.015s (~)0.861s101.02x
workflow with 10 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express10.832s (-1.2%)11.019s (~)0.187s31.00x
🐘 PostgresNitro10.896s (~)11.024s (~)0.128s31.01x
💻 LocalExpress10.933s (~)11.023s (~)0.091s31.01x
💻 LocalNitro10.935s (~)11.025s (~)0.090s31.01x
workflow with 25 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express14.478s (-0.7%)15.020s (~)0.542s41.00x
🐘 PostgresNitro14.610s (~)15.025s (~)0.415s41.01x
💻 LocalExpress14.909s (~)15.028s (~)0.119s41.03x
💻 LocalNitro14.991s (~)15.030s (-6.2% 🟢)0.039s41.04x
workflow with 50 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express13.935s (-0.5%)14.303s (-2.0%)0.367s71.00x
🐘 PostgresNitro14.027s (~)14.735s (+3.0%)0.708s71.01x
💻 LocalExpress16.304s (-1.8%)17.030s (~)0.726s61.17x
💻 LocalNitro16.686s (-0.6%)17.031s (~)0.344s61.20x
Promise.all with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.271s (+0.8%)2.009s (~)0.738s151.00x
🐘 PostgresNitro1.272s (~)2.010s (~)0.738s151.00x
💻 LocalExpress1.485s (~)2.005s (~)0.520s151.17x
💻 LocalNitro1.513s (-7.2% 🟢)2.005s (-3.3%)0.492s151.19x
Promise.all with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express2.335s (-1.1%)3.009s (~)0.674s101.00x
🐘 PostgresNitro2.351s (~)3.008s (~)0.657s101.01x
💻 LocalExpress2.866s (-2.9%)3.109s (-10.0% 🟢)0.242s101.23x
💻 LocalNitro2.902s (-7.7% 🟢)3.007s (-22.6% 🟢)0.105s101.24x
Promise.all with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.472s (~)4.009s (~)0.537s81.00x
🐘 PostgresNitro3.494s (~)4.010s (~)0.516s81.01x
💻 LocalExpress7.490s (-10.2% 🟢)8.023s (-11.1% 🟢)0.533s42.16x
💻 LocalNitro8.374s (~)9.020s (~)0.646s42.41x
Promise.race with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.260s (~)2.007s (~)0.747s151.00x
🐘 PostgresNitro1.263s (~)2.008s (~)0.746s151.00x
💻 LocalExpress1.501s (-20.7% 🟢)2.006s (-15.1% 🟢)0.505s151.19x
💻 LocalNitro1.540s (-17.4% 🟢)2.005s (-14.3% 🟢)0.465s151.22x
Promise.race with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express2.344s (~)3.009s (~)0.666s101.00x
🐘 PostgresNitro2.357s (+0.7%)3.011s (~)0.654s101.01x
💻 LocalExpress2.806s (-10.4% 🟢)3.007s (-20.1% 🟢)0.201s101.20x
💻 LocalNitro3.473s (+13.3% 🔺)4.135s (+6.4% 🔺)0.661s81.48x
Promise.race with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.473s (-0.7%)4.010s (~)0.537s81.00x
🐘 PostgresNitro3.499s (+0.5%)4.012s (~)0.513s81.01x
💻 LocalExpress7.663s (-12.9% 🟢)8.271s (-10.8% 🟢)0.607s42.21x
💻 LocalNitro9.050s (-1.0%)9.524s (-5.0%)0.474s42.61x
workflow with 10 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.810s (-3.4%)1.006s (-1.6%)0.196s601.00x
🐘 PostgresNitro0.856s (+4.3%)1.006s (~)0.150s601.06x
💻 LocalNitro1.003s (+2.3%)1.281s (+17.1% 🔺)0.279s471.24x
💻 LocalExpress1.003s (+1.9%)1.423s (+32.3% 🔺)0.420s431.24x
workflow with 25 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.903s (-3.7%)2.052s (-9.1% 🟢)0.150s441.00x
🐘 PostgresNitro2.096s (+8.7% 🔺)2.821s (+34.3% 🔺)0.726s321.10x
💻 LocalExpress3.006s (~)3.508s (-2.1%)0.503s261.58x
💻 LocalNitro3.035s (~)3.689s (-1.8%)0.655s251.59x
workflow with 50 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.838s (-3.8%)4.076s (-6.7% 🟢)0.238s301.00x
🐘 PostgresNitro4.141s (+0.9%)4.812s (+4.5%)0.671s251.08x
💻 LocalExpress8.941s (-2.9%)9.479s (-5.4% 🟢)0.538s132.33x
💻 LocalNitro9.197s (-1.1%)9.942s (-0.8%)0.745s132.40x
workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.287s (+1.7%)1.007s (~)0.720s601.00x
🐘 PostgresNitro0.302s (+6.5% 🔺)1.007s (~)0.706s601.05x
💻 LocalNitro0.563s (-6.9% 🟢)1.005s (-1.6%)0.442s601.96x
💻 LocalExpress0.590s (+5.2% 🔺)1.004s (~)0.415s602.05x
workflow with 25 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.495s (-3.0%)1.006s (~)0.512s901.00x
🐘 PostgresNitro0.516s (+3.9%)1.007s (~)0.491s901.04x
💻 LocalExpress2.374s (-5.5% 🟢)3.008s (~)0.634s304.80x
💻 LocalNitro2.568s (+1.2%)3.009s (~)0.441s305.19x
workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.781s (-4.6%)1.008s (-1.0%)0.227s1201.00x
🐘 PostgresNitro0.837s (+5.9% 🔺)1.018s (+1.1%)0.181s1181.07x
💻 LocalExpress10.403s (-7.0% 🟢)11.029s (-7.6% 🟢)0.626s1113.32x
💻 LocalNitro11.221s (~)11.941s (+2.4%)0.721s1114.37x
Stream Benchmarks(includes TTFB metrics)
workflow with stream

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Nitro0.200s (-6.2% 🟢)1.004s (~)0.012s (-4.0%)1.018s (~)0.818s101.00x
🐘 PostgresExpress0.206s (~)0.998s (~)0.002s (~)1.010s (~)0.805s101.03x
💻 LocalExpress0.213s (+7.1% 🔺)1.004s (~)0.010s (-19.0% 🟢)1.015s (~)0.802s101.06x
🐘 PostgresNitro0.216s (+5.6% 🔺)0.995s (~)0.001s (-6.7% 🟢)1.010s (~)0.793s101.08x
stream pipeline with 5 transform steps (1MB)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.606s (-3.9%)1.006s (~)0.004s (-2.2%)1.024s (~)0.419s591.00x
🐘 PostgresNitro0.649s (+4.0%)1.006s (~)0.004s (-4.1%)1.022s (~)0.373s591.07x
💻 LocalNitro0.823s (-1.8%)1.012s (~)0.009s (-1.0%)1.116s (~)0.292s541.36x
💻 LocalExpress0.836s (+10.5% 🔺)1.012s (-1.6%)0.008s (-10.3% 🟢)1.115s (+7.2% 🔺)0.279s541.38x
10 parallel streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.955s (-0.6%)1.194s (-6.6% 🟢)0.000s (-100.0% 🟢)1.208s (-7.5% 🟢)0.253s501.00x
🐘 PostgresNitro1.018s (+5.0% 🔺)1.414s (+13.4% 🔺)0.000s (+11.6% 🔺)1.428s (+13.5% 🔺)0.410s431.07x
💻 LocalExpress1.197s (-2.2%)2.019s (~)0.000s (+20.0% 🔺)2.021s (~)0.823s301.25x
💻 LocalNitro1.226s (~)2.021s (~)0.000s (+300.0% 🔺)2.023s (~)0.796s301.28x
fan-out fan-in 10 streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.779s (~)2.135s (-1.9%)0.000s (NaN%)2.182s (-0.8%)0.403s291.00x
🐘 PostgresNitro1.823s (+1.8%)2.142s (~)0.000s (+100.0% 🔺)2.153s (-1.0%)0.330s281.03x
💻 LocalExpress3.232s (-6.8% 🟢)3.970s (-1.6%)0.000s (-45.3% 🟢)3.973s (-1.6%)0.741s161.82x
💻 LocalNitro3.578s (+5.6% 🔺)4.035s (~)0.000s (-50.0% 🟢)4.037s (~)0.460s152.01x

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World🥇 Fastest FrameworkWins
💻 LocalExpress17/21
🐘 PostgresExpress20/21
Fastest World by Framework

Winner determined by most benchmark wins

Framework🥇 Fastest WorldWins
Express🐘 Postgres19/21
Nitro🐘 Postgres18/21
Column Definitions
  • Workflow Time: Runtime reported by workflow (completedAt - createdAt) - primary metric
  • TTFB: Time to First Byte - time from workflow start until first stream byte received (stream benchmarks only)
  • Slurp: Time from first byte to complete stream consumption (stream benchmarks only)
  • Wall Time: Total testbench time (trigger workflow + poll for result)
  • Overhead: Testbench overhead (Wall Time - Workflow Time)
  • Samples: Number of benchmark iterations run
  • vs Fastest: How much slower compared to the fastest configuration for this benchmark

Worlds:

  • 💻 Local: In-memory filesystem world (local development)
  • 🐘 Postgres: PostgreSQL database world (local development)
  • ▲ Vercel: Vercel production/preview deployment
  • 🌐 Turso: Community world (local development)
  • 🌐 MongoDB: Community world (local development)
  • 🌐 Redis: Community world (local development)
  • 🌐 Jazz: Community world (local development)

📋 View full workflow run


Some benchmark jobs failed:

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

Check the workflow run for details.

@github-actions

github-actionsBot commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

🧪 E2E Test Results

Some tests failed

Summary

PassedFailedSkippedTotal
✅ ▲ Vercel Production923067990
✅ 💻 Local Development89801821080
✅ 📦 Local Production89801821080
✅ 🐘 Local Postgres89801821080
❌ 🌍 Community Worlds1337424231
✅ 📋 Other228042270
Total3978746794731

❌ Failed Tests

🌍 Community Worlds (74 failed)

mongodb (7 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6

redis (7 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6

turso (60 failed):

  • addTenWorkflow | wrun_01KP9W18E46XWMGNAP7GPJ22P0
  • addTenWorkflow | wrun_01KP9W18E46XWMGNAP7GPJ22P0
  • wellKnownAgentWorkflow (.well-known/agent) | wrun_01KP9W2VEGSJBQX8RASQF1J4NE
  • should work with react rendering in step
  • promiseAllWorkflow | wrun_01KP9W1EWY5BES8SR37SHCYFPH
  • promiseRaceWorkflow | wrun_01KP9W1K77N1Q575SC7JJB73NR
  • promiseAnyWorkflow | wrun_01KP9W1NC1R1GJH9K3QXHVBZKZ
  • importedStepOnlyWorkflow | wrun_01KP9W36KYGJ6S4H07DCDQWJ8A
  • hookWorkflow | wrun_01KP9W21C54M51895CE8MRCYBB
  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • sleepingWorkflow | wrun_01KP9W2TWK8YSN713Q1EKFB53K
  • parallelSleepWorkflow | wrun_01KP9W3674HTAW7EGRJBPENYCV
  • nullByteWorkflow | wrun_01KP9W3AN2TM1SN6BQ8K2CW6SQ
  • workflowAndStepMetadataWorkflow | wrun_01KP9W3CPJDBVH2ZR4DYGKPHAE
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • promiseRaceStressTestWorkflow | wrun_01KP9W6BKF8P1CB939TXQ81NJQ
  • 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()
  • error handling not registered WorkflowNotRegisteredError fails the run when workflow does not exist
  • error handling not registered StepNotRegisteredError fails the step but workflow can catch it
  • error handling not registered StepNotRegisteredError fails the run when not caught in workflow
  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_01KP9W9SXNBCMYQX4QJS3Z45FZ
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KP9WB2M1AKCD3ZWCZ3H7TK1Y
  • stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KP9WBQKPQR0ZZD459512MQ9E
  • stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KP9WC03MQMW2QSR08TQSCH3G
  • closureVariableWorkflow - nested step functions with closure variables | wrun_01KP9WC5ESZBK8XRMJP6K59G7B
  • spawnWorkflowFromStepWorkflow - spawning a child workflow using start() inside a step | wrun_01KP9WC7F4F5HMBQ7GR3JS28XG
  • runClassSerializationWorkflow - Run instances serialize across workflow/step boundaries | wrun_01KP9WCJA7VVEF3KTY1RKW4HN8
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • pathsAliasWorkflow - TypeScript path aliases resolve correctly | wrun_01KP9WD1J20FEW289749Z4XT3B
  • Calculator.calculate - static workflow method using static step methods from another class | wrun_01KP9WD724DS9TMEK0P3X1RQ6C
  • AllInOneService.processNumber - static workflow method using sibling static step methods | wrun_01KP9WDDD7P67ST23KWEH94H0J
  • ChainableService.processWithThis - static step methods using this to reference the class | wrun_01KP9WDKPRQ8DSJ8CG20NYWHE6
  • thisSerializationWorkflow - step function invoked with .call() and .apply() | wrun_01KP9WDTHDTA67H42QKE69K19W
  • customSerializationWorkflow - custom class serialization with WORKFLOW_SERIALIZE/WORKFLOW_DESERIALIZE | wrun_01KP9WE20QPDCYWP7FPRYABMT3
  • instanceMethodStepWorkflow - instance methods with "use step" directive | wrun_01KP9WE8DWYSW2SB2B9R24AYNN
  • crossContextSerdeWorkflow - classes defined in step code are deserializable in workflow context | wrun_01KP9WEKCK2DRC8HYM6KG252TM
  • stepFunctionAsStartArgWorkflow - step function reference passed as start() argument | wrun_01KP9WEYRH9GEHVFZF0SXPC9B8
  • cancelRun - cancelling a running workflow | wrun_01KP9WF56R7472CDY8S2RN89GQ
  • cancelRun via CLI - cancelling a running workflow | wrun_01KP9WFE6K231NF35QNZEXQJS9
  • 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_01KP9WFT8RY7FVERDW6K4TP38N
  • sleepInLoopWorkflow - sleep inside loop with steps actually delays each iteration | wrun_01KP9WGEFJMR2Z4B7WXCB1N0ZV
  • sleepWithSequentialStepsWorkflow - sequential steps work with concurrent sleep (control) | wrun_01KP9WGS3RGEKHYACVGWXF3XM0
  • importMetaUrlWorkflow - import.meta.url is available in step bundles | wrun_01KP9WGZTGAEE44KCRJVSPQ8G4
  • metadataFromHelperWorkflow - getWorkflowMetadata/getStepMetadata work from module-level helper (#1577) | wrun_01KP9WH1VWXCNR302D6BEVED3P
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6
  • getterStepWorkflow - getter functions with "use step" directive | wrun_01KP9WH70RWBSFGD88HV8M3BAY

Details by Category

✅ ▲ Vercel Production
AppPassedFailedSkipped
✅ astro8307
✅ example8307
✅ express8307
✅ fastify8307
✅ hono8307
✅ nextjs-turbopack8802
✅ nextjs-webpack8802
✅ nitro8307
✅ nuxt8307
✅ sveltekit8307
✅ vite8307
✅ 💻 Local Development
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
✅ 📦 Local Production
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
✅ 🐘 Local Postgres
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
❌ 🌍 Community Worlds
AppPassedFailedSkipped
✅ mongodb-dev600
❌ mongodb5678
✅ redis-dev600
❌ redis5678
✅ turso-dev600
❌ turso3608
✅ 📋 Other
AppPassedFailedSkipped
✅ e2e-local-dev-nest-stable76014
✅ e2e-local-postgres-nest-stable76014
✅ e2e-local-prod-nest-stable76014

📋 View full workflow run

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

Pull request overview

Updates documentation and homepage UI text/links to reflect the rename from “Workflow DevKit” / workflowdevkit to “Workflow SDK” / workflowsdk.

Changes:

  • Updated X/Twitter profile link to https://x.com/workflowsdk.
  • Renamed “Workflow DevKit” phrasing to “Workflow SDK” in docs and tweet wall copy.
  • Updated publishing-libraries cookbook examples to use vitest.workflowsdk.config.ts and *.workflowsdk.test.ts naming.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

FileDescription
docs/components/geistdocs/x-button.tsxUpdates the X profile URL to the new workflowsdk handle.
docs/content/docs/errors/start-invalid-workflow-function.mdxUpdates “Workflow DevKit’s” wording to “Workflow SDK’s”.
docs/content/docs/cookbook/advanced/publishing-libraries.mdxUpdates example Vitest config/test filename patterns from workflowdevkit to workflowsdk.
docs/app/[lang]/(home)/components/tweet-wall.tsxUpdates tweet wall display text to “Workflow SDK” and @WorkflowSDK.

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

@VaguelySeriousVaguelySerious left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM, also useworkflow.dev needs changing to workflow-sdk.dev

@TooTallNate
TooTallNate disabled auto-merge April 16, 2026 01:01
@TooTallNate
TooTallNate merged commit 173756d into mainApr 16, 2026
99 of 101 checks passed
@TooTallNate
TooTallNate deleted the fix/rename-workflowdevkit-to-workflowsdk branch April 16, 2026 01:01
@TooTallNateTooTallNate added the backport-stable Cherry-pick this PR to the stable branch when merged label Apr 16, 2026
@ghostghost mentioned this pull request Apr 16, 2026
ghost pushed a commit that referenced this pull request Apr 16, 2026
…rkflow-sdk.dev (#1759)
* [docs] Rename workflowdevkit references to workflowsdk
* [docs] Rename useworkflow.dev to workflow-sdk.dev
* [chore] Add changeset for domain rename
* [docs] Revert sitemap rewrite to useworkflow.dev (crawled-sitemap not yet available for new domain)
@ghost

Copy link
Copy Markdown

Cherry-pick to stable had conflicts that were resolved by AI. Please review the backport PR: #1760

@TooTallNateTooTallNate added backport-stable Cherry-pick this PR to the stable branch when merged and removed backport-stable Cherry-pick this PR to the stable branch when merged labels Apr 17, 2026
ghost pushed a commit that referenced this pull request Apr 17, 2026
…rkflow-sdk.dev (#1759)
* [docs] Rename workflowdevkit references to workflowsdk
* [docs] Rename useworkflow.dev to workflow-sdk.dev
* [chore] Add changeset for domain rename
* [docs] Revert sitemap rewrite to useworkflow.dev (crawled-sitemap not yet available for new domain)
Signed-off-by: Nathan Rajlich <n@n8.io>
@ghost

Copy link
Copy Markdown

Cherry-pick to stable had conflicts that were resolved by AI. Please review the backport PR: #1794

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-stableCherry-pick this PR to the stable branch when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@TooTallNate@VaguelySerious
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

[docs] Rename workflowdevkit to workflowsdk and useworkflow.dev to workflow-sdk.dev - #1759

Merged
TooTallNate merged 4 commits into
mainfrom
fix/rename-workflowdevkit-to-workflowsdk
Apr 16, 2026
Merged

[docs] Rename workflowdevkit to workflowsdk and useworkflow.dev to workflow-sdk.dev#1759
TooTallNate merged 4 commits into
mainfrom
fix/rename-workflowdevkit-to-workflowsdk

Conversation

@TooTallNate

@TooTallNateTooTallNate commented Apr 16, 2026

Copy link
Copy Markdown
Member

Summary

  • Updates the X/Twitter social link from @workflowdevkit to @workflowsdk
  • Renames "Workflow DevKit" / "Workflow Dev Kit" to "Workflow SDK" in docs and tweet wall
  • Updates example config/test filenames from workflowdevkit to workflowsdk in the publishing libraries cookbook
  • Replaces all 56 references to useworkflow.dev with workflow-sdk.dev across 36 files (source code, READMEs, skills, docs)
  • Bumps skill versions for workflow (1.7 → 1.8) and workflow-init (1.1 → 1.2)

@TooTallNate
TooTallNate requested a review from a team as a code ownerApril 16, 2026 00:21
CopilotAI review requested due to automatic review settings April 16, 2026 00:21
@vercel

vercelBot commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

@changeset-bot

changeset-botBot commented Apr 16, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: cebcc56

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

This PR includes changesets to release 24 packages
NameType
@workflow/corePatch
workflowPatch
@workflow/errorsPatch
@workflow/buildersPatch
@workflow/cliPatch
@workflow/nuxtPatch
@workflow/typescript-pluginPatch
@workflow/webPatch
@workflow/aiPatch
@workflow/astroPatch
@workflow/nextPatch
@workflow/nitroPatch
@workflow/sveltekitPatch
@workflow/swc-pluginPatch
@workflow/utilsPatch
@workflow/vitePatch
@workflow/web-sharedPatch
@workflow/vitestPatch
@workflow/world-testingPatch
@workflow/world-localPatch
@workflow/world-postgresPatch
@workflow/world-vercelPatch
@workflow/nestPatch
@workflow/rollupPatch

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

github-actionsBot commented Apr 16, 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🥇 Express0.041s (-7.0% 🟢)1.005s (~)0.964s101.00x
💻 LocalNitro0.050s (+16.7% 🔺)1.006s (~)0.956s101.22x
🐘 PostgresNitro0.059s (-37.6% 🟢)1.010s (-3.2%)0.951s101.44x
🐘 PostgresExpress0.069s (+18.1% 🔺)1.011s (~)0.942s101.66x
workflow with 1 step

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Express1.128s (~)2.005s (~)0.878s101.00x
💻 LocalNitro1.129s (~)2.007s (~)0.878s101.00x
🐘 PostgresExpress1.150s (~)2.008s (~)0.858s101.02x
🐘 PostgresNitro1.154s (+1.2%)2.015s (~)0.861s101.02x
workflow with 10 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express10.832s (-1.2%)11.019s (~)0.187s31.00x
🐘 PostgresNitro10.896s (~)11.024s (~)0.128s31.01x
💻 LocalExpress10.933s (~)11.023s (~)0.091s31.01x
💻 LocalNitro10.935s (~)11.025s (~)0.090s31.01x
workflow with 25 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express14.478s (-0.7%)15.020s (~)0.542s41.00x
🐘 PostgresNitro14.610s (~)15.025s (~)0.415s41.01x
💻 LocalExpress14.909s (~)15.028s (~)0.119s41.03x
💻 LocalNitro14.991s (~)15.030s (-6.2% 🟢)0.039s41.04x
workflow with 50 sequential steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express13.935s (-0.5%)14.303s (-2.0%)0.367s71.00x
🐘 PostgresNitro14.027s (~)14.735s (+3.0%)0.708s71.01x
💻 LocalExpress16.304s (-1.8%)17.030s (~)0.726s61.17x
💻 LocalNitro16.686s (-0.6%)17.031s (~)0.344s61.20x
Promise.all with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.271s (+0.8%)2.009s (~)0.738s151.00x
🐘 PostgresNitro1.272s (~)2.010s (~)0.738s151.00x
💻 LocalExpress1.485s (~)2.005s (~)0.520s151.17x
💻 LocalNitro1.513s (-7.2% 🟢)2.005s (-3.3%)0.492s151.19x
Promise.all with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express2.335s (-1.1%)3.009s (~)0.674s101.00x
🐘 PostgresNitro2.351s (~)3.008s (~)0.657s101.01x
💻 LocalExpress2.866s (-2.9%)3.109s (-10.0% 🟢)0.242s101.23x
💻 LocalNitro2.902s (-7.7% 🟢)3.007s (-22.6% 🟢)0.105s101.24x
Promise.all with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.472s (~)4.009s (~)0.537s81.00x
🐘 PostgresNitro3.494s (~)4.010s (~)0.516s81.01x
💻 LocalExpress7.490s (-10.2% 🟢)8.023s (-11.1% 🟢)0.533s42.16x
💻 LocalNitro8.374s (~)9.020s (~)0.646s42.41x
Promise.race with 10 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.260s (~)2.007s (~)0.747s151.00x
🐘 PostgresNitro1.263s (~)2.008s (~)0.746s151.00x
💻 LocalExpress1.501s (-20.7% 🟢)2.006s (-15.1% 🟢)0.505s151.19x
💻 LocalNitro1.540s (-17.4% 🟢)2.005s (-14.3% 🟢)0.465s151.22x
Promise.race with 25 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express2.344s (~)3.009s (~)0.666s101.00x
🐘 PostgresNitro2.357s (+0.7%)3.011s (~)0.654s101.01x
💻 LocalExpress2.806s (-10.4% 🟢)3.007s (-20.1% 🟢)0.201s101.20x
💻 LocalNitro3.473s (+13.3% 🔺)4.135s (+6.4% 🔺)0.661s81.48x
Promise.race with 50 concurrent steps

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.473s (-0.7%)4.010s (~)0.537s81.00x
🐘 PostgresNitro3.499s (+0.5%)4.012s (~)0.513s81.01x
💻 LocalExpress7.663s (-12.9% 🟢)8.271s (-10.8% 🟢)0.607s42.21x
💻 LocalNitro9.050s (-1.0%)9.524s (-5.0%)0.474s42.61x
workflow with 10 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.810s (-3.4%)1.006s (-1.6%)0.196s601.00x
🐘 PostgresNitro0.856s (+4.3%)1.006s (~)0.150s601.06x
💻 LocalNitro1.003s (+2.3%)1.281s (+17.1% 🔺)0.279s471.24x
💻 LocalExpress1.003s (+1.9%)1.423s (+32.3% 🔺)0.420s431.24x
workflow with 25 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.903s (-3.7%)2.052s (-9.1% 🟢)0.150s441.00x
🐘 PostgresNitro2.096s (+8.7% 🔺)2.821s (+34.3% 🔺)0.726s321.10x
💻 LocalExpress3.006s (~)3.508s (-2.1%)0.503s261.58x
💻 LocalNitro3.035s (~)3.689s (-1.8%)0.655s251.59x
workflow with 50 sequential data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express3.838s (-3.8%)4.076s (-6.7% 🟢)0.238s301.00x
🐘 PostgresNitro4.141s (+0.9%)4.812s (+4.5%)0.671s251.08x
💻 LocalExpress8.941s (-2.9%)9.479s (-5.4% 🟢)0.538s132.33x
💻 LocalNitro9.197s (-1.1%)9.942s (-0.8%)0.745s132.40x
workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.287s (+1.7%)1.007s (~)0.720s601.00x
🐘 PostgresNitro0.302s (+6.5% 🔺)1.007s (~)0.706s601.05x
💻 LocalNitro0.563s (-6.9% 🟢)1.005s (-1.6%)0.442s601.96x
💻 LocalExpress0.590s (+5.2% 🔺)1.004s (~)0.415s602.05x
workflow with 25 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.495s (-3.0%)1.006s (~)0.512s901.00x
🐘 PostgresNitro0.516s (+3.9%)1.007s (~)0.491s901.04x
💻 LocalExpress2.374s (-5.5% 🟢)3.008s (~)0.634s304.80x
💻 LocalNitro2.568s (+1.2%)3.009s (~)0.441s305.19x
workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

WorldFrameworkWorkflow TimeWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.781s (-4.6%)1.008s (-1.0%)0.227s1201.00x
🐘 PostgresNitro0.837s (+5.9% 🔺)1.018s (+1.1%)0.181s1181.07x
💻 LocalExpress10.403s (-7.0% 🟢)11.029s (-7.6% 🟢)0.626s1113.32x
💻 LocalNitro11.221s (~)11.941s (+2.4%)0.721s1114.37x
Stream Benchmarks(includes TTFB metrics)
workflow with stream

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
💻 Local🥇 Nitro0.200s (-6.2% 🟢)1.004s (~)0.012s (-4.0%)1.018s (~)0.818s101.00x
🐘 PostgresExpress0.206s (~)0.998s (~)0.002s (~)1.010s (~)0.805s101.03x
💻 LocalExpress0.213s (+7.1% 🔺)1.004s (~)0.010s (-19.0% 🟢)1.015s (~)0.802s101.06x
🐘 PostgresNitro0.216s (+5.6% 🔺)0.995s (~)0.001s (-6.7% 🟢)1.010s (~)0.793s101.08x
stream pipeline with 5 transform steps (1MB)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.606s (-3.9%)1.006s (~)0.004s (-2.2%)1.024s (~)0.419s591.00x
🐘 PostgresNitro0.649s (+4.0%)1.006s (~)0.004s (-4.1%)1.022s (~)0.373s591.07x
💻 LocalNitro0.823s (-1.8%)1.012s (~)0.009s (-1.0%)1.116s (~)0.292s541.36x
💻 LocalExpress0.836s (+10.5% 🔺)1.012s (-1.6%)0.008s (-10.3% 🟢)1.115s (+7.2% 🔺)0.279s541.38x
10 parallel streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express0.955s (-0.6%)1.194s (-6.6% 🟢)0.000s (-100.0% 🟢)1.208s (-7.5% 🟢)0.253s501.00x
🐘 PostgresNitro1.018s (+5.0% 🔺)1.414s (+13.4% 🔺)0.000s (+11.6% 🔺)1.428s (+13.5% 🔺)0.410s431.07x
💻 LocalExpress1.197s (-2.2%)2.019s (~)0.000s (+20.0% 🔺)2.021s (~)0.823s301.25x
💻 LocalNitro1.226s (~)2.021s (~)0.000s (+300.0% 🔺)2.023s (~)0.796s301.28x
fan-out fan-in 10 streams (1MB each)

💻 Local Development

WorldFrameworkWorkflow TimeTTFBSlurpWall TimeOverheadSamplesvs Fastest
🐘 Postgres🥇 Express1.779s (~)2.135s (-1.9%)0.000s (NaN%)2.182s (-0.8%)0.403s291.00x
🐘 PostgresNitro1.823s (+1.8%)2.142s (~)0.000s (+100.0% 🔺)2.153s (-1.0%)0.330s281.03x
💻 LocalExpress3.232s (-6.8% 🟢)3.970s (-1.6%)0.000s (-45.3% 🟢)3.973s (-1.6%)0.741s161.82x
💻 LocalNitro3.578s (+5.6% 🔺)4.035s (~)0.000s (-50.0% 🟢)4.037s (~)0.460s152.01x

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World🥇 Fastest FrameworkWins
💻 LocalExpress17/21
🐘 PostgresExpress20/21
Fastest World by Framework

Winner determined by most benchmark wins

Framework🥇 Fastest WorldWins
Express🐘 Postgres19/21
Nitro🐘 Postgres18/21
Column Definitions
  • Workflow Time: Runtime reported by workflow (completedAt - createdAt) - primary metric
  • TTFB: Time to First Byte - time from workflow start until first stream byte received (stream benchmarks only)
  • Slurp: Time from first byte to complete stream consumption (stream benchmarks only)
  • Wall Time: Total testbench time (trigger workflow + poll for result)
  • Overhead: Testbench overhead (Wall Time - Workflow Time)
  • Samples: Number of benchmark iterations run
  • vs Fastest: How much slower compared to the fastest configuration for this benchmark

Worlds:

  • 💻 Local: In-memory filesystem world (local development)
  • 🐘 Postgres: PostgreSQL database world (local development)
  • ▲ Vercel: Vercel production/preview deployment
  • 🌐 Turso: Community world (local development)
  • 🌐 MongoDB: Community world (local development)
  • 🌐 Redis: Community world (local development)
  • 🌐 Jazz: Community world (local development)

📋 View full workflow run


Some benchmark jobs failed:

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

Check the workflow run for details.

@github-actions

github-actionsBot commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

🧪 E2E Test Results

Some tests failed

Summary

PassedFailedSkippedTotal
✅ ▲ Vercel Production923067990
✅ 💻 Local Development89801821080
✅ 📦 Local Production89801821080
✅ 🐘 Local Postgres89801821080
❌ 🌍 Community Worlds1337424231
✅ 📋 Other228042270
Total3978746794731

❌ Failed Tests

🌍 Community Worlds (74 failed)

mongodb (7 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6

redis (7 failed):

  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6

turso (60 failed):

  • addTenWorkflow | wrun_01KP9W18E46XWMGNAP7GPJ22P0
  • addTenWorkflow | wrun_01KP9W18E46XWMGNAP7GPJ22P0
  • wellKnownAgentWorkflow (.well-known/agent) | wrun_01KP9W2VEGSJBQX8RASQF1J4NE
  • should work with react rendering in step
  • promiseAllWorkflow | wrun_01KP9W1EWY5BES8SR37SHCYFPH
  • promiseRaceWorkflow | wrun_01KP9W1K77N1Q575SC7JJB73NR
  • promiseAnyWorkflow | wrun_01KP9W1NC1R1GJH9K3QXHVBZKZ
  • importedStepOnlyWorkflow | wrun_01KP9W36KYGJ6S4H07DCDQWJ8A
  • hookWorkflow | wrun_01KP9W21C54M51895CE8MRCYBB
  • hookWorkflow is not resumable via public webhook endpoint | wrun_01KP9W2CENW40RCBDXEYCQ7RWF
  • webhookWorkflow | wrun_01KP9W2N29NCHEM993WHYS2C69
  • sleepingWorkflow | wrun_01KP9W2TWK8YSN713Q1EKFB53K
  • parallelSleepWorkflow | wrun_01KP9W3674HTAW7EGRJBPENYCV
  • nullByteWorkflow | wrun_01KP9W3AN2TM1SN6BQ8K2CW6SQ
  • workflowAndStepMetadataWorkflow | wrun_01KP9W3CPJDBVH2ZR4DYGKPHAE
  • fetchWorkflow | wrun_01KP9W68BHQVACHKHNBV0HST2B
  • promiseRaceStressTestWorkflow | wrun_01KP9W6BKF8P1CB939TXQ81NJQ
  • 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()
  • error handling not registered WorkflowNotRegisteredError fails the run when workflow does not exist
  • error handling not registered StepNotRegisteredError fails the step but workflow can catch it
  • error handling not registered StepNotRegisteredError fails the run when not caught in workflow
  • hookCleanupTestWorkflow - hook token reuse after workflow completion | wrun_01KP9W9SXNBCMYQX4QJS3Z45FZ
  • concurrent hook token conflict - two workflows cannot use the same hook token simultaneously | wrun_01KP9WADZDHA8M255B0PZT39PN
  • hookDisposeTestWorkflow - hook token reuse after explicit disposal while workflow still running | wrun_01KP9WB2M1AKCD3ZWCZ3H7TK1Y
  • stepFunctionPassingWorkflow - step function references can be passed as arguments (without closure vars) | wrun_01KP9WBQKPQR0ZZD459512MQ9E
  • stepFunctionWithClosureWorkflow - step function with closure variables passed as argument | wrun_01KP9WC03MQMW2QSR08TQSCH3G
  • closureVariableWorkflow - nested step functions with closure variables | wrun_01KP9WC5ESZBK8XRMJP6K59G7B
  • spawnWorkflowFromStepWorkflow - spawning a child workflow using start() inside a step | wrun_01KP9WC7F4F5HMBQ7GR3JS28XG
  • runClassSerializationWorkflow - Run instances serialize across workflow/step boundaries | wrun_01KP9WCJA7VVEF3KTY1RKW4HN8
  • health check (queue-based) - workflow and step endpoints respond to health check messages
  • health check (CLI) - workflow health command reports healthy endpoints
  • pathsAliasWorkflow - TypeScript path aliases resolve correctly | wrun_01KP9WD1J20FEW289749Z4XT3B
  • Calculator.calculate - static workflow method using static step methods from another class | wrun_01KP9WD724DS9TMEK0P3X1RQ6C
  • AllInOneService.processNumber - static workflow method using sibling static step methods | wrun_01KP9WDDD7P67ST23KWEH94H0J
  • ChainableService.processWithThis - static step methods using this to reference the class | wrun_01KP9WDKPRQ8DSJ8CG20NYWHE6
  • thisSerializationWorkflow - step function invoked with .call() and .apply() | wrun_01KP9WDTHDTA67H42QKE69K19W
  • customSerializationWorkflow - custom class serialization with WORKFLOW_SERIALIZE/WORKFLOW_DESERIALIZE | wrun_01KP9WE20QPDCYWP7FPRYABMT3
  • instanceMethodStepWorkflow - instance methods with "use step" directive | wrun_01KP9WE8DWYSW2SB2B9R24AYNN
  • crossContextSerdeWorkflow - classes defined in step code are deserializable in workflow context | wrun_01KP9WEKCK2DRC8HYM6KG252TM
  • stepFunctionAsStartArgWorkflow - step function reference passed as start() argument | wrun_01KP9WEYRH9GEHVFZF0SXPC9B8
  • cancelRun - cancelling a running workflow | wrun_01KP9WF56R7472CDY8S2RN89GQ
  • cancelRun via CLI - cancelling a running workflow | wrun_01KP9WFE6K231NF35QNZEXQJS9
  • 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_01KP9WFT8RY7FVERDW6K4TP38N
  • sleepInLoopWorkflow - sleep inside loop with steps actually delays each iteration | wrun_01KP9WGEFJMR2Z4B7WXCB1N0ZV
  • sleepWithSequentialStepsWorkflow - sequential steps work with concurrent sleep (control) | wrun_01KP9WGS3RGEKHYACVGWXF3XM0
  • importMetaUrlWorkflow - import.meta.url is available in step bundles | wrun_01KP9WGZTGAEE44KCRJVSPQ8G4
  • metadataFromHelperWorkflow - getWorkflowMetadata/getStepMetadata work from module-level helper (#1577) | wrun_01KP9WH1VWXCNR302D6BEVED3P
  • resilient start: addTenWorkflow completes when run_created returns 500 | wrun_01KP9WH3X0447ZK6ZRHJFPHCY6
  • getterStepWorkflow - getter functions with "use step" directive | wrun_01KP9WH70RWBSFGD88HV8M3BAY

Details by Category

✅ ▲ Vercel Production
AppPassedFailedSkipped
✅ astro8307
✅ example8307
✅ express8307
✅ fastify8307
✅ hono8307
✅ nextjs-turbopack8802
✅ nextjs-webpack8802
✅ nitro8307
✅ nuxt8307
✅ sveltekit8307
✅ vite8307
✅ 💻 Local Development
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
✅ 📦 Local Production
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
✅ 🐘 Local Postgres
AppPassedFailedSkipped
✅ astro-stable76014
✅ express-stable76014
✅ fastify-stable76014
✅ hono-stable76014
✅ nextjs-turbopack-canary63027
✅ nextjs-turbopack-stable8208
✅ nextjs-webpack-canary63027
✅ nextjs-webpack-stable8208
✅ nitro-stable76014
✅ nuxt-stable76014
✅ sveltekit-stable76014
✅ vite-stable76014
❌ 🌍 Community Worlds
AppPassedFailedSkipped
✅ mongodb-dev600
❌ mongodb5678
✅ redis-dev600
❌ redis5678
✅ turso-dev600
❌ turso3608
✅ 📋 Other
AppPassedFailedSkipped
✅ e2e-local-dev-nest-stable76014
✅ e2e-local-postgres-nest-stable76014
✅ e2e-local-prod-nest-stable76014

📋 View full workflow run

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

Pull request overview

Updates documentation and homepage UI text/links to reflect the rename from “Workflow DevKit” / workflowdevkit to “Workflow SDK” / workflowsdk.

Changes:

  • Updated X/Twitter profile link to https://x.com/workflowsdk.
  • Renamed “Workflow DevKit” phrasing to “Workflow SDK” in docs and tweet wall copy.
  • Updated publishing-libraries cookbook examples to use vitest.workflowsdk.config.ts and *.workflowsdk.test.ts naming.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

FileDescription
docs/components/geistdocs/x-button.tsxUpdates the X profile URL to the new workflowsdk handle.
docs/content/docs/errors/start-invalid-workflow-function.mdxUpdates “Workflow DevKit’s” wording to “Workflow SDK’s”.
docs/content/docs/cookbook/advanced/publishing-libraries.mdxUpdates example Vitest config/test filename patterns from workflowdevkit to workflowsdk.
docs/app/[lang]/(home)/components/tweet-wall.tsxUpdates tweet wall display text to “Workflow SDK” and @WorkflowSDK.

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

@VaguelySeriousVaguelySerious left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM, also useworkflow.dev needs changing to workflow-sdk.dev

@TooTallNate
TooTallNate disabled auto-merge April 16, 2026 01:01
@TooTallNate
TooTallNate merged commit 173756d into mainApr 16, 2026
99 of 101 checks passed
@TooTallNate
TooTallNate deleted the fix/rename-workflowdevkit-to-workflowsdk branch April 16, 2026 01:01
@TooTallNateTooTallNate added the backport-stable Cherry-pick this PR to the stable branch when merged label Apr 16, 2026
@ghostghost mentioned this pull request Apr 16, 2026
ghost pushed a commit that referenced this pull request Apr 16, 2026
…rkflow-sdk.dev (#1759)
* [docs] Rename workflowdevkit references to workflowsdk
* [docs] Rename useworkflow.dev to workflow-sdk.dev
* [chore] Add changeset for domain rename
* [docs] Revert sitemap rewrite to useworkflow.dev (crawled-sitemap not yet available for new domain)
@ghost

Copy link
Copy Markdown

Cherry-pick to stable had conflicts that were resolved by AI. Please review the backport PR: #1760

@TooTallNateTooTallNate added backport-stable Cherry-pick this PR to the stable branch when merged and removed backport-stable Cherry-pick this PR to the stable branch when merged labels Apr 17, 2026
ghost pushed a commit that referenced this pull request Apr 17, 2026
…rkflow-sdk.dev (#1759)
* [docs] Rename workflowdevkit references to workflowsdk
* [docs] Rename useworkflow.dev to workflow-sdk.dev
* [chore] Add changeset for domain rename
* [docs] Revert sitemap rewrite to useworkflow.dev (crawled-sitemap not yet available for new domain)
Signed-off-by: Nathan Rajlich <n@n8.io>
@ghost

Copy link
Copy Markdown

Cherry-pick to stable had conflicts that were resolved by AI. Please review the backport PR: #1794

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-stableCherry-pick this PR to the stable branch when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@TooTallNate@VaguelySerious