Workflow Development Kit Updates & Release Notes
43 updates curated from 1 source by the Releasebot Team. Last updated: May 22, 2026
- May 22, 2026
- Date parsed from source:May 22, 2026
- First seen by Releasebot:May 22, 2026
Workflow Development Kit by Vercel
Workflow Development Kit releases beta updates across core, world, testing, web, and Nitro with stronger replay handling, clearer corrupted log errors, longer inline steps without replay timeouts, improved deterministic event ordering, and trace viewer polish.
@workflow/[email protected]
#2059 49da6c5 @TooTallNate - A WritableStream from a workflow's getWritable() can now be passed as an argument to a child workflow via start(); the child's writes land on the parent run's stream directly for the full lifetime of the child run.
#2038 dc0be50 @pranaygp - Refresh workflow events after completing elapsed waits so concurrent hook events preserve deterministic replay order.
#2046 ad71b58 @pranaygp - Report corrupted event logs with a distinct CorruptedEventLogError type and CORRUPTED_EVENT_LOG run error code.
#2056 9454151 @VaguelySerious - Fix spurious "Event cursor missing after initial load" warning
#2030 b124365 @pranaygp - Validate step, wait, and hook lifecycle events against replay ownership metadata.
#2013 2a446af @TooTallNate - Exclude inline step execution from the workflow replay timeout. Long-running steps no longer hit REPLAY_TIMEOUT (fixes #2009). Adds a WORKFLOW_REPLAY_TIMEOUT_MS env var override and a new optional World.processExitTriggersQueueRedelivery capability used to gate the runtime's process.exit(1) failure path.
#2060 1d3959e @pranaygp - Record fatal world response contract failures as non-retryable workflow errors.@workflow/[email protected]
#2038 dc0be50 @pranaygp - Refresh workflow events after completing elapsed waits so concurrent hook events preserve deterministic replay order.
#2046 ad71b58 @pranaygp - Report corrupted event logs with a distinct CorruptedEventLogError type and CORRUPTED_EVENT_LOG run error code.
#2030 b124365 @pranaygp - Validate step, wait, and hook lifecycle events against replay ownership metadata.
#2013 2a446af @TooTallNate - Exclude inline step execution from the workflow replay timeout. Long-running steps no longer hit REPLAY_TIMEOUT (fixes #2009). Adds a WORKFLOW_REPLAY_TIMEOUT_MS env var override and a new optional World.processExitTriggersQueueRedelivery capability used to gate the runtime's process.exit(1) failure path.@workflow/[email protected]
#2038 dc0be50 @pranaygp - Refresh workflow events after completing elapsed waits so concurrent hook events preserve deterministic replay order.
@workflow/[email protected]
#2038 dc0be50 @pranaygp - Refresh workflow events after completing elapsed waits so concurrent hook events preserve deterministic replay order.
#2019 738ec5e @VaguelySerious - workflow-postgres-setup now also bootstraps the graphile_worker schema, fixing potential race on setup when starting the app and a test runner at the same time@workflow/[email protected]
#2038 dc0be50 @pranaygp - Refresh workflow events after completing elapsed waits so concurrent hook events preserve deterministic replay order.
#2013 2a446af @TooTallNate - Exclude inline step execution from the workflow replay timeout. Long-running steps no longer hit REPLAY_TIMEOUT (fixes #2009). Adds a WORKFLOW_REPLAY_TIMEOUT_MS env var override and a new optional World.processExitTriggersQueueRedelivery capability used to gate the runtime's process.exit(1) failure path.
#2060 1d3959e @pranaygp - Record fatal world response contract failures as non-retryable workflow errors.@workflow/[email protected]
#2043 96e2d3c @TooTallNate - Fix race condition in test server's flow invocation counter that caused intermittent failures in the inline-execution test suite (e.g. "sequential steps complete in a single flow invocation"). The counter is now incremented before awaiting the flow handler, so the count is observable as soon as the run transitions to completed.
@workflow/[email protected]
#2036 753e39e @mitul-s - trace viewer bug fix + file cleanup
#2022 5a393a6 @mitul-s - updated colours on the trace viewer
#2045 366f9cc @mitul-s - Add reduced motion for the trace viewer@workflow/[email protected]
#1575 c1242e8 @RihanArfan - Match the webhook functionRules key (:token) to the handler route on Nitro v3 Vercel deploys so the runtime override is applied to the real webhook/[token].func instead of generating a duplicate webhook/[...].func. Also propagate workflow.runtime to the public manifest route for consistency.
@workflow/[email protected]
#2046 ad71b58 @pranaygp - Report corrupted event logs with a distinct CorruptedEventLogError type and CORRUPTED_EVENT_LOG run error code.
Original source
#2060 1d3959e @pranaygp - Record fatal world response contract failures as non-retryable workflow errors. - May 22, 2026
- Date parsed from source:May 22, 2026
- First seen by Releasebot:May 22, 2026
Workflow Development Kit by Vercel
Workflow Development Kit ships broad stability and correctness updates across core, world, web, builders, and framework adapters, improving replay determinism, error reporting, local and Vercel workflows, queue handling, and trace viewer behavior while fixing several edge cases and race conditions.
@workflow/[email protected]
- #2029 a434184 @pranaygp - Refresh workflow events after completing elapsed waits so concurrent hook events preserve deterministic replay order.
- #2046 8407c1e @pranaygp - Report corrupted event logs with a distinct CorruptedEventLogError type and CORRUPTED_EVENT_LOG run error code.
- #2056 7487430 @VaguelySerious - Fix spurious "Event cursor missing after initial load" warning
- #2030 c347509 @pranaygp - Validate step, wait, and hook lifecycle events against replay ownership metadata.
- #2060 ca5f355 @pranaygp - Record fatal world response contract failures as non-retryable workflow errors.
- #1986 16f2c23 @pranaygp - Fix local workflow port detection, make generated health endpoints respond to HEAD requests, materialize manual webhook response bodies before returning them, wait for step return stream serialization before completing the step, bound Vercel stream and health-check operations so stuck writes or queue sends retry or time out instead of hanging, and stabilize remote Vercel e2e checks around CLI inspection, sleep timing, and hook registration/disposal.
- #1935 6aabd6f @TooTallNate - Preserve the this binding of bound step proxies across workflow serialization, so passing useStep(...).bind(thisArg) as a step argument no longer loses the receiver.
@workflow/[email protected]
- #2029 a434184 @pranaygp - Refresh workflow events after completing elapsed waits so concurrent hook events preserve deterministic replay order.
- #2046 8407c1e @pranaygp - Report corrupted event logs with a distinct CorruptedEventLogError type and CORRUPTED_EVENT_LOG run error code.
- #1902 15e44b3 @ziyak97 - Fix compatibility with Zod 4.4.x in WorkflowRunSchema by marking output, error, and completedAt as .optional() on non-final / cancelled / completed / failed run states.
- #2030 c347509 @pranaygp - Validate step, wait, and hook lifecycle events against replay ownership metadata.
@workflow/[email protected]
- #2029 a434184 @pranaygp - Refresh workflow events after completing elapsed waits so concurrent hook events preserve deterministic replay order.
- #1985 76352f0 @pranaygp - Improve the local queue error message when a Next.js proxy intercepts workflow routes.
- #1898 e428cdb @VaguelySerious - Fix local-world recovery isolation in Vitest and support custom test directories
- #1829 5f50bbc @TooTallNate - Fix path traversal via request-supplied IDs in the world-local storage backend.
@workflow/[email protected]
- #2029 a434184 @pranaygp - Refresh workflow events after completing elapsed waits so concurrent hook events preserve deterministic replay order.
- #2069 096adbf @pranaygp - Fix race in events.create() where concurrent step_created / hook_created / wait_created writes with the same correlationId would persist duplicate event rows. Adds a unique partial index and surfaces the violation as EntityConflictError.
- #2019 be506cc @VaguelySerious - workflow-postgres-setup now also bootstraps the graphile_worker schema, fixing potential race on setup when starting the app and a test runner at the same time
@workflow/[email protected]
- #1897 677867b @VaguelySerious - Switch the workflow-server Deployment Protection bypass to OIDC Trusted Sources. The VERCEL_WORKFLOW_SERVER_PROTECTION_BYPASS env var is no longer used; the x-vercel-trusted-oidc-idp-token header is now sourced from getVercelOidcToken().
- #2029 a434184 @pranaygp - Refresh workflow events after completing elapsed waits so concurrent hook events preserve deterministic replay order.
- #1999 a350e8d @pranaygp - Release failed VQS workflow handler messages on the configured retry cadence.
- #2060 ca5f355 @pranaygp - Record fatal world response contract failures as non-retryable workflow errors.
- #1986 16f2c23 @pranaygp - Fix local workflow port detection, make generated health endpoints respond to HEAD requests, materialize manual webhook response bodies before returning them, wait for step return stream serialization before completing the step, bound Vercel stream and health-check operations so stuck writes or queue sends retry or time out instead of hanging, and stabilize remote Vercel e2e checks around CLI inspection, sleep timing, and hook registration/disposal.
- #1987 ecfccc3 @karthikscale3 - Update to new queue client version
@workflow/[email protected]
- #1955 73e0c4d @mitul-s - Show hook name on trace viewer + no toast on decrypt
@workflow/[email protected]
- #1955 73e0c4d @mitul-s - Show hook name on trace viewer + no toast on decrypt
- #2087 88070cf @VaguelySerious - Fix the "Queued for" duration shown in the events list for retried steps. It now measures from step_created to the first step_started instead of the last, so the displayed value reflects actual queue time rather than queue time plus all retry waits.
- #1952 01cfe19 @mitul-s - Fix old trace viewer layout to be in a row rather than column
@workflow/[email protected]
- #1944 a9cc1d5 @TooTallNate - Fix three bugs affecting nested step functions that get hoisted out of an enclosing function (workflows in any declaration form, plus regular factory-style functions returning objects with step methods): 1. Module-level imports referenced only by hoisted step bodies were stripped by dead-code elimination, causing a ReferenceError at runtime. 2. The step ID generated for nested anonymous steps inside a non-exported workflow declared as const foo = async () => {} or const foo = async function() {} was not namespaced under the workflow name in step mode, so it did not match the ID looked up by the workflow-mode proxy and caused a runtime "step not found" failure. Steps inside async function foo() workflows were already namespaced correctly; this brings the const-arrow and const-fn-expression forms into agreement. 3. The __internal_workflows manifest comment reported nested anonymous step IDs without the workflow-name prefix even though the runtime registration and proxy lookup used the prefixed form, so downstream tooling (e.g. builders consuming the manifest) saw the wrong step ID.
- #1935 6aabd6f @TooTallNate - Fix arguments being incorrectly captured as a closure variable in nested function-form step bodies, which previously produced invalid output.
- #1935 6aabd6f @TooTallNate - Support this references inside nested arrow "use step" functions. Requires the enclosing class to have custom serialization.
@workflow/[email protected]
- #1683 478a9c7 @pranaygp - Write colocated .gitignore files for public workflow manifests generated by WORKFLOW_PUBLIC_MANIFEST=1
- #1965 066c157 @ijjk - Bundle transitive local step dependencies for direct Nitro dev loading while keeping ordinary package dependencies external unless they contain workflow entries.
- #1986 16f2c23 @pranaygp - Fix local workflow port detection, make generated health endpoints respond to HEAD requests, materialize manual webhook response bodies before returning them, wait for step return stream serialization before completing the step, bound Vercel stream and health-check operations so stuck writes or queue sends retry or time out instead of hanging, and stabilize remote Vercel e2e checks around CLI inspection, sleep timing, and hook registration/disposal.
- #1481 14326ad @TooTallNate - Auto-remove workflow-enabled packages from Next.js serverExternalPackages so they can be transformed, and retain a best-effort externalPackages warning fallback for non-Next builders.
@workflow/[email protected]
- #1683 478a9c7 @pranaygp - Write colocated .gitignore files for public workflow manifests generated by WORKFLOW_PUBLIC_MANIFEST=1
- #2021 9ebe5e4 @lukesandberg - Move workflow-socket.json out of .next/cache/ so it isn't preserved across Vercel/Turborepo builds, and clean up stale copies at builder boot. Resolves ECONNREFUSED 127.0.0.1: failures from the webpack loader when a prior build's socket-info file was restored from build cache. The loader now also annotates connection errors with the port, credentials source, and the file being processed.
- #1986 16f2c23 @pranaygp - Fix local workflow port detection, make generated health endpoints respond to HEAD requests, materialize manual webhook response bodies before returning them, wait for step return stream serialization before completing the step, bound Vercel stream and health-check operations so stuck writes or queue sends retry or time out instead of hanging, and stabilize remote Vercel e2e checks around CLI inspection, sleep timing, and hook registration/disposal.
- #1481 14326ad @TooTallNate - Auto-remove workflow-enabled packages from Next.js serverExternalPackages so they can be transformed, and retain a best-effort externalPackages warning fallback for non-Next builders.
@workflow/[email protected]
- #1683 478a9c7 @pranaygp - Write colocated .gitignore files for public workflow manifests generated by WORKFLOW_PUBLIC_MANIFEST=1
- #1986 16f2c23 @pranaygp - Fix local workflow port detection, make generated health endpoints respond to HEAD requests, materialize manual webhook response bodies before returning them, wait for step return stream serialization before completing the step, bound Vercel stream and health-check operations so stuck writes or queue sends retry or time out instead of hanging, and stabilize remote Vercel e2e checks around CLI inspection, sleep timing, and hook registration/disposal.
- #1984 5b6a581 @pranaygp - Fix duplicate Workflow queue consumers in SvelteKit deployments by removing stale workflow queue triggers from shared Vercel function configs.
@workflow/[email protected]
- #1986 16f2c23 @pranaygp - Fix local workflow port detection, make generated health endpoints respond to HEAD requests, materialize manual webhook response bodies before returning them, wait for step return stream serialization before completing the step, bound Vercel stream and health-check operations so stuck writes or queue sends retry or time out instead of hanging, and stabilize remote Vercel e2e checks around CLI inspection, sleep timing, and hook registration/disposal.
@workflow/[email protected]
- #2046 8407c1e @pranaygp - Report corrupted event logs with a distinct CorruptedEventLogError type and CORRUPTED_EVENT_LOG run error code.
- #2060 ca5f355 @pranaygp - Record fatal world response contract failures as non-retryable workflow errors.
@workflow/[email protected]
- #1986 16f2c23 @pranaygp - Fix local workflow port detection, make generated health endpoints respond to HEAD requests, materialize manual webhook response bodies before returning them, wait for step return stream serialization before completing the step, bound Vercel stream and health-check operations so stuck writes or queue sends retry or time out instead of hanging, and stabilize remote Vercel e2e checks around CLI inspection, sleep timing, and hook registration/disposal.
@workflow/[email protected]
- #1986 16f2c23 @pranaygp - Fix local workflow port detection, make generated health endpoints respond to HEAD requests, materialize manual webhook response bodies before returning them, wait for step return stream serialization before completing the step, bound Vercel stream and health-check operations so stuck writes or queue sends retry or time out instead of hanging, and stabilize remote Vercel e2e checks around CLI inspection, sleep timing, and hook registration/disposal.
@workflow/[email protected]
- #1898 e428cdb @VaguelySerious - Fix local-world recovery isolation in Vitest and support custom test directories
All of your release notes in one feed
Join Releasebot and get updates from Vercel and hundreds of other software products.
- May 19, 2026
- Date parsed from source:May 19, 2026
- First seen by Releasebot:May 20, 2026
Workflow Development Kit by Vercel
Workflow Development Kit releases beta updates across core, world, next and SvelteKit with better error reporting, cleaner local queue messages, improved retry handling for failed VQS workflow handlers, and fixes for stale build cache and duplicate queue consumers.
@workflow/[email protected]
- #2012 9d2a926 @pranaygp - Expose the active run ID on hook token conflict errors.
@workflow/[email protected]
- #2012 9d2a926 @pranaygp - Expose the active run ID on hook token conflict errors.
@workflow/[email protected]
- #2012 9d2a926 @pranaygp - Expose the active run ID on hook token conflict errors.
- #1985 c145bf5 @pranaygp - Improve the local queue error message when a Next.js proxy intercepts workflow routes.
@workflow/[email protected]
- #2012 9d2a926 @pranaygp - Expose the active run ID on hook token conflict errors.
@workflow/[email protected]
- #1999 c43e721 @pranaygp - Release failed VQS workflow handler messages on the configured retry cadence.
- #1987 22b5a12 @karthikscale3 - Update to new queue client version
@workflow/[email protected]
- #2006 23943f1 @tomdale - Use a typed Tailwind duration utility in the trace viewer controls.
@workflow/[email protected]
- #2021 4cde3b9 @lukesandberg - Move workflow-socket.json out of .next/cache/ so it isn't preserved across Vercel/Turborepo builds, and clean up stale copies at builder boot. Resolves ECONNREFUSED 127.0.0.1:<port> failures from the webpack loader when a prior build's socket-info file was restored from build cache. The loader now also annotates connection errors with the port, credentials source, and the file being processed.
@workflow/[email protected]
- #1995 4753abb @pranaygp - Fix duplicate Workflow queue consumers in SvelteKit deployments by removing stale workflow queue triggers from shared Vercel function configs.
@workflow/[email protected]
- #2012 9d2a926 @pranaygp - Expose the active run ID on hook token conflict errors.
- May 11, 2026
- Date parsed from source:May 11, 2026
- First seen by Releasebot:May 12, 2026
Workflow Development Kit by Vercel
Workflow Development Kit ships beta updates across core, worlds, builders, and framework adapters with stronger error serialization, friendlier workflow diagnostics, AbortController support, concurrency and race fixes, sourcemap controls, and better Next.js, Nitro, SvelteKit, Astro, and Vercel integration.
@workflow/[email protected]
- #1851 5f22832 @TooTallNate - BREAKING CHANGE: Run and step errors are now serialized through the workflow serialization pipeline, preserving original class identity and cause chains on WorkflowRunFailedError.cause. Pre-upgrade failed runs in the world-postgres legacy error text column surface as error: undefined on read; the original payload is still readable directly from the errorJson column for manual inspection.
- #1511 e7ea068 @TooTallNate - Add first-class serialization support for built-in Error subclasses (TypeError, RangeError, SyntaxError, URIError, ReferenceError, EvalError, AggregateError) and preserve the cause property on all Error types
- #1513 74b13cd @TooTallNate - Add first-class serialization for FatalError and RetryableError so they round-trip with class identity preserved across all serialization boundaries (including from environments that don't run the SWC plugin)
- #1301 aee5699 @pranaygp - Drain pending queue items at workflow completion instead of only logging warnings, and implicitly dispose any never-aborted system (abort) hooks at completion so unused AbortController instances don't leave abandoned rows in the hooks table for the run's TTL
- #1301 aee5699 @pranaygp - Fix DOMException not serializing correctly
- #1924 3535caf @VaguelySerious - Fix Promise.race(step, sleep) always blocking until step completed
- #1849 1203dae @pranaygp - Friendlier workflow error messages. New SerializationError, WorkflowBuildError, and structured context-violation classes (e.g. NotInWorkflowContextError) with actionable hints and docs links applied to user-facing throw sites; FatalError.is() recognizes any error with fatal: true so context violations and serialization failures now fail fast instead of burning retry attempts. Runtime logs are namespaced under [workflow-sdk] and gain errorAttribution (user vs sdk) plus class-aware hints
- #1747 00a011d @ijjk - Fix eager Next.js workflow builds with lazy discovery disabled.
- #1849 1203dae @pranaygp - Replace util.inspect's default object dump for runtime structured-log metadata with an opinionated, workflow-aware formatter. The runtime logger uses color-coded metadata blocks.
- #1301 aee5699 @pranaygp - Add serializable AbortController and AbortSignal support across workflow and step boundaries. Workflow code can now construct an AbortController, pass signal to steps, and call abort().
- #1299 9f3516e @TooTallNate - Refactor serialization.ts into modular serialization/ files. No runtime change.
- #1935 d0e3f27 @TooTallNate - Preserve the this binding of bound step proxies across workflow serialization, so passing useStep(...).bind(thisArg) as a step argument no longer loses the receiver.
- #1338 8ea1532 @VaguelySerious - Merge flow and step routes into a single combined handler that executes steps inline when possible, reducing function invocations and queue overhead.
- #1951 72911f7 @VaguelySerious - Fix world.ts being tree-shaken out of the bundle and unavailable at runtime
@workflow/[email protected]
- #1851 5f22832 @TooTallNate - BREAKING CHANGE: Run and step errors are now serialized through the workflow serialization pipeline, preserving original class identity and cause chains on WorkflowRunFailedError.cause. Pre-upgrade failed runs in the world-postgres legacy error text column surface as error: undefined on read; the original payload is still readable directly from the errorJson column for manual inspection.
- #1939 5374148 @TooTallNate - Fix compatibility with Zod 4.4.x in WorkflowRunSchema by marking output, error, and completedAt as .optional() on non-final / cancelled / completed / failed run states.
- #1338 8ea1532 @VaguelySerious - Merge flow and step routes into a single combined handler that executes steps inline when possible, reducing function invocations and queue overhead.
@workflow/[email protected]
- #1851 5f22832 @TooTallNate - BREAKING CHANGE: Run and step errors are now serialized through the workflow serialization pipeline, preserving original class identity and cause chains on WorkflowRunFailedError.cause. Pre-upgrade failed runs in the world-postgres legacy error text column surface as error: undefined on read; the original payload is still readable directly from the errorJson column for manual inspection.
- #1877 92dc826 @TooTallNate - Fix race in events.create() where concurrent step_created / wait_created writes with the same correlationId would both succeed instead of one losing with EntityConflictError.
- #1895 2f52d14 @VaguelySerious - Fix local-world recovery isolation in Vitest and support custom test directories
- #1894 c1163eb @VaguelySerious - Throw WorkflowRunNotFoundError when run_failed is recorded against a run that doesn't exist, matching the behaviour of world-postgres and world-vercel.
@workflow/[email protected]
- #1851 5f22832 @TooTallNate - BREAKING CHANGE: Run and step errors are now serialized through the workflow serialization pipeline, preserving original class identity and cause chains on WorkflowRunFailedError.cause. Pre-upgrade failed runs in the world-postgres legacy error text column surface as error: undefined on read; the original payload is still readable directly from the errorJson column for manual inspection.
- #1338 8ea1532 @VaguelySerious - Increase default concurrency to 50
- #1878 7c45e9e @TooTallNate - Fix race in events.create() where concurrent step_created / hook_created / wait_created writes with the same correlationId would persist duplicate event rows. Adds a unique partial index and surfaces the violation as EntityConflictError.
@workflow/[email protected]
- #1851 5f22832 @TooTallNate - BREAKING CHANGE: Run and step errors are now serialized through the workflow serialization pipeline, preserving original class identity and cause chains on WorkflowRunFailedError.cause. Pre-upgrade failed runs in the world-postgres legacy error text column surface as error: undefined on read; the original payload is still readable directly from the errorJson column for manual inspection.
- #1882 cd50618 @TooTallNate - Switch the workflow-server Deployment Protection bypass to OIDC Trusted Sources. The VERCEL_WORKFLOW_SERVER_PROTECTION_BYPASS env var is no longer used; the x-vercel-trusted-oidc-idp-token header is now sourced from getVercelOidcToken().
- #1807 5eb0b79 @karthikscale3 - Add a default request timeout to world-vercel HTTP calls so hanging responses can be re-tried sooner and run less risk of continuing until a function timeout
@workflow/[email protected]
- #1955 f20c706 @mitul-s - Show hook name on trace viewer + no toast on decrypt
- #1815 45d1eb2 @TooTallNate - Configure vercelPreset() from @vercel/react-router/vite in react-router.config.ts when building the packages/web project for the Vercel deployment, enabling per-route bundle splitting, function-level configuration, and an accurate Deployment Summary.
@workflow/[email protected]
- #1955 f20c706 @mitul-s - Show hook name on trace viewer + no toast on decrypt
- #1952 b940748 @mitul-s - Fix old trace viewer layout to be in a row rather than column
- #1942 c80b747 @TooTallNate - Fix "Unknown type FatalError" / "Failed to load resource details" in the o11y UI by adding the missing reviver entries (FatalError, RetryableError, the built-in Error subclasses, AggregateError, and DOMException) to getWebRevivers() so it stays in sync with the runtime reducer set.
@workflow/[email protected]
- #1944 1d4f83a @TooTallNate - Fix three bugs affecting nested step functions that get hoisted out of an enclosing function (workflows in any declaration form, plus regular factory-style functions returning objects with step methods): 1. Module-level imports referenced only by hoisted step bodies were stripped by dead-code elimination, causing a ReferenceError at runtime. 2. The step ID generated for nested anonymous steps inside a non-exported workflow declared as const foo = async () => {} or const foo = async function() {} was not namespaced under the workflow name in step mode, so it did not match the ID looked up by the workflow-mode proxy and caused a runtime "step not found" failure. Steps inside async function foo() workflows were already namespaced correctly; this brings the const-arrow and const-fn-expression forms into agreement. 3. The __internal_workflows manifest comment reported nested anonymous step IDs without the workflow-name prefix even though the runtime registration and proxy lookup used the prefixed form, so downstream tooling (e.g. builders consuming the manifest) saw the wrong step ID.
- #1935 d0e3f27 @TooTallNate - Fix arguments being incorrectly captured as a closure variable in nested function-form step bodies, which previously produced invalid output.
- #1935 d0e3f27 @TooTallNate - Support this references inside nested arrow "use step" functions. Requires the enclosing class to have custom serialization.
@workflow/[email protected]
- #1842 6dd5c72 @VaguelySerious - Add sourcemap option to builders for disabling or customising source map emission on generated workflow bundles. Accepts the same values as esbuild's sourcemap option: true, false, 'inline', 'linked', 'external', 'both'. Can also be set via the WORKFLOW_SOURCEMAP environment variable.
- #1885 e0ec429 @TooTallNate - Fix Package subpath ... is not defined by "exports" runtime errors when step files reach project-local helpers via tsconfig paths / esbuild aliases / self-referencing package names.
- #1849 1203dae @pranaygp - Friendlier workflow error messages. New SerializationError, WorkflowBuildError, and structured context-violation classes (e.g. NotInWorkflowContextError) with actionable hints and docs links applied to user-facing throw sites; FatalError.is() recognizes any error with fatal: true so context violations and serialization failures now fail fast instead of burning retry attempts. Runtime logs are namespaced under [workflow-sdk] and gain errorAttribution (user vs sdk) plus class-aware hints
- #1747 00a011d @ijjk - Fix eager Next.js workflow builds with lazy discovery disabled.
- #1965 96e92c6 @ijjk - Bundle transitive local step dependencies for direct Nitro dev loading while keeping ordinary package dependencies external unless they contain workflow entries.
- #1821 7830169 @TooTallNate - Fix false-positive workflow-node-module-error for step-only Node.js usage in shared modules
- #1338 8ea1532 @VaguelySerious - Merge flow and step routes into a single combined handler that executes steps inline when possible, reducing function invocations and queue overhead.
- #1481 0c997ce @TooTallNate - Auto-remove workflow-enabled packages from Next.js serverExternalPackages so they can be transformed, and retain a best-effort externalPackages warning fallback for non-Next builders.
@workflow/[email protected]
- #1842 6dd5c72 @VaguelySerious - Add sourcemap option to builders for disabling or customising source map emission on generated workflow bundles. Accepts the same values as esbuild's sourcemap option: true, false, 'inline', 'linked', 'external', 'both'. Can also be set via the WORKFLOW_SOURCEMAP environment variable.
- #1747 00a011d @ijjk - Fix eager Next.js workflow builds with lazy discovery disabled.
- #1338 8ea1532 @VaguelySerious - Merge flow and step routes into a single combined handler that executes steps inline when possible, reducing function invocations and queue overhead.
- #1481 0c997ce @TooTallNate - Auto-remove workflow-enabled packages from Next.js serverExternalPackages so they can be transformed, and retain a best-effort externalPackages warning fallback for non-Next builders.
@workflow/[email protected]
- #1842 6dd5c72 @VaguelySerious - Add sourcemap option to builders for disabling or customising source map emission on generated workflow bundles. Accepts the same values as esbuild's sourcemap option: true, false, 'inline', 'linked', 'external', 'both'. Can also be set via the WORKFLOW_SOURCEMAP environment variable.
- #1338 8ea1532 @VaguelySerious - Merge flow and step routes into a single combined handler that executes steps inline when possible, reducing function invocations and queue overhead.
@workflow/[email protected]
- #1842 6dd5c72 @VaguelySerious - Add sourcemap option to builders for disabling or customising source map emission on generated workflow bundles. Accepts the same values as esbuild's sourcemap option: true, false, 'inline', 'linked', 'external', 'both'. Can also be set via the WORKFLOW_SOURCEMAP environment variable.
- #1338 8ea1532 @VaguelySerious - Merge flow and step routes into a single combined handler that executes steps inline when possible, reducing function invocations and queue overhead.
@workflow/[email protected]
- #1842 6dd5c72 @VaguelySerious - Add sourcemap option to builders for disabling or customising source map emission on generated workflow bundles. Accepts the same values as esbuild's sourcemap option: true, false, 'inline', 'linked', 'external', 'both'. Can also be set via the WORKFLOW_SOURCEMAP environment variable.
- #1338 8ea1532 @VaguelySerious - Merge flow and step routes into a single combined handler that executes steps inline when possible, reducing function invocations and queue overhead.
@workflow/[email protected]
- #1851 5f22832 @TooTallNate - BREAKING CHANGE: Run and step errors are now serialized through the workflow serialization pipeline, preserving original class identity and cause chains on WorkflowRunFailedError.cause. Pre-upgrade failed runs in the world-postgres legacy error text column surface as error: undefined on read; the original payload is still readable directly from the errorJson column for manual inspection.
- #1915 540a2ef @VaguelySerious - Replace the chalk import in @workflow/errors/ansi with a tiny inline ANSI shim. @workflow/errors/ansi is reachable from the workflow-VM bundle (via @workflow/core/workflow → context-errors → context-violation-error → here), and chalk pulls in supports-color, which calls require('os') at module load — crashing every workflow with ReferenceError: require is not defined in the sandboxed VM.
- #1849 1203dae @pranaygp - Friendlier workflow error messages. New SerializationError, WorkflowBuildError, and structured context-violation classes (e.g. NotInWorkflowContextError) with actionable hints and docs links applied to user-facing throw sites; FatalError.is() recognizes any error with fatal: true so context violations and serialization failures now fail fast instead of burning retry attempts. Runtime logs are namespaced under [workflow-sdk] and gain errorAttribution (user vs sdk) plus class-aware hints
- #1849 1203dae @pranaygp - Replace util.inspect's default object dump for runtime structured-log metadata with an opinionated, workflow-aware formatter. The runtime logger uses color-coded metadata blocks.
@workflow/[email protected]
- #1849 1203dae @pranaygp - Friendlier workflow error messages. New SerializationError, WorkflowBuildError, and structured context-violation classes (e.g. NotInWorkflowContextError) with actionable hints and docs links applied to user-facing throw sites; FatalError.is() recognizes any error with fatal: true so context violations and serialization failures now fail fast instead of burning retry attempts. Runtime logs are namespaced under [workflow-sdk] and gain errorAttribution (user vs sdk) plus class-aware hints
@workflow/[email protected]
- #1842 6dd5c72 @VaguelySerious - Add sourcemap option to builders for disabling or customising source map emission on generated workflow bundles. Accepts the same values as esbuild's sourcemap option: true, false, 'inline', 'linked', 'external', 'both'. Can also be set via the WORKFLOW_SOURCEMAP environment variable.
- #1338 8ea1532 @VaguelySerious - Merge flow and step routes into a single combined handler that executes steps inline when possible, reducing function invocations and queue overhead.
@workflow/[email protected]
- #1895 2f52d14 @VaguelySerious - Fix local-world recovery isolation in Vitest and support custom test directories
- Apr 30, 2026
- Date parsed from source:Apr 30, 2026
- First seen by Releasebot:May 1, 2026
Workflow Development Kit by Vercel
Workflow Development Kit improves the new trace viewer with a detail pane, middle-truncate component, timeline tweaks, and UI cleanups.
@workflow/[email protected]
#1883 640a050 @TooTallNate - Polish the new trace viewer: add detail pane, middle-truncate component, timeline tweaks, and various UI cleanups.
@workflow/[email protected]
#1883 640a050 @TooTallNate - Polish the new trace viewer: add detail pane, middle-truncate component, timeline tweaks, and various UI cleanups.
Original source - Apr 30, 2026
- Date parsed from source:Apr 30, 2026
- First seen by Releasebot:May 1, 2026
Workflow Development Kit by Vercel
Workflow Development Kit ships beta updates across the core, CLI, web, AI, and framework integrations, including a safer JSON-based serializer, workflow and stream viewer improvements, new Vercel environment support, clearer TypeScript errors, and a breaking SWC client mode removal.
@workflow/[email protected]
#1491 e295bae @pranaygp - Allow start() to be called directly inside workflow functions
#1848 7d07fab @pranaygp - Replace eval in serialization.ts revive() helper with JSON.parse. devalue.stringify() output is always valid JSON (special values are encoded as negative integer sentinels), so JSON.parse is a safe drop-in that eliminates the eval anti-pattern.
@workflow/[email protected]
#1686 417c493 @TooTallNate - BREAKING CHANGE: Remove client transform mode from SWC plugin. The client and step modes were nearly identical — both preserved step function bodies, replaced workflow bodies with throw stubs, and emitted the same JSON manifest. The only differences were the step registration mechanism (simple property assignment vs. IIFE) and whether DCE ran. Step mode now absorbs all client-mode behaviors: hoisted variable references for object property steps (so .stepId is accessible), and dead code elimination. All integrations that previously used mode: 'client' now use mode: 'step'.
@workflow/[email protected]
#1829 3ad8ee7 @TooTallNate - Fix path traversal via request-supplied IDs in the world-local storage backend.
@workflow/[email protected]
#1824 354840e @TooTallNate - Add VERCEL_WORKFLOW_SERVER_PROTECTION_BYPASS and VERCEL_WORKFLOW_SERVER_URL env vars.
@workflow/[email protected]
#1852 9ea1254 @karthikscale3 - Decode UTF-8 typed array stream chunks in the web stream viewer.
@workflow/[email protected]
#1852 9ea1254 @karthikscale3 - Decode UTF-8 typed array stream chunks in the web stream viewer.
@workflow/[email protected]
#1544 3f6d98f @iNishant - Forward strict, inputExamples, and providerOptions tool properties to language model providers, and handle type: 'dynamic' tools
@workflow/[email protected]
#1830 a38f140 @ijjk - Make the TypeScript peer dependency optional and show a clearer error when TypeScript is unavailable.
@workflow/[email protected]
#1686 417c493 @TooTallNate - BREAKING CHANGE: Remove client transform mode from SWC plugin. The client and step modes were nearly identical — both preserved step function bodies, replaced workflow bodies with throw stubs, and emitted the same JSON manifest. The only differences were the step registration mechanism (simple property assignment vs. IIFE) and whether DCE ran. Step mode now absorbs all client-mode behaviors: hoisted variable references for object property steps (so .stepId is accessible), and dead code elimination. All integrations that previously used mode: 'client' now use mode: 'step'.
@workflow/[email protected]
#1857 baba580 @ijjk - Write Next.js workflow diagnostics manifests inside the Next.js dist directory and only use .vercel/output/diagnostics for the Vercel Build Output API builder.
#1686 417c493 @TooTallNate - BREAKING CHANGE: Remove client transform mode from SWC plugin. The client and step modes were nearly identical — both preserved step function bodies, replaced workflow bodies with throw stubs, and emitted the same JSON manifest. The only differences were the step registration mechanism (simple property assignment vs. IIFE) and whether DCE ran. Step mode now absorbs all client-mode behaviors: hoisted variable references for object property steps (so .stepId is accessible), and dead code elimination. All integrations that previously used mode: 'client' now use mode: 'step'.
@workflow/[email protected]
#1857 baba580 @ijjk - Write Next.js workflow diagnostics manifests inside the Next.js dist directory and only use .vercel/output/diagnostics for the Vercel Build Output API builder.
#1686 417c493 @TooTallNate - BREAKING CHANGE: Remove client transform mode from SWC plugin. The client and step modes were nearly identical — both preserved step function bodies, replaced workflow bodies with throw stubs, and emitted the same JSON manifest. The only differences were the step registration mechanism (simple property assignment vs. IIFE) and whether DCE ran. Step mode now absorbs all client-mode behaviors: hoisted variable references for object property steps (so .stepId is accessible), and dead code elimination. All integrations that previously used mode: 'client' now use mode: 'step'.
#1796 906f7c1 @TooTallNate - Simplify the deferred builder by importing step sources directly into the generated step/route.js, matching how serde files are handled.
@workflow/[email protected]
#1844 cbecbaa @TooTallNate - Forward string entries from Nitro's externals.external config to the workflow builder's esbuild external option.
@workflow/[email protected]
#1686 417c493 @TooTallNate - BREAKING CHANGE: Remove client transform mode from SWC plugin. The client and step modes were nearly identical — both preserved step function bodies, replaced workflow bodies with throw stubs, and emitted the same JSON manifest. The only differences were the step registration mechanism (simple property assignment vs. IIFE) and whether DCE ran. Step mode now absorbs all client-mode behaviors: hoisted variable references for object property steps (so .stepId is accessible), and dead code elimination. All integrations that previously used mode: 'client' now use mode: 'step'.
@workflow/[email protected]
#1686 417c493 @TooTallNate - BREAKING CHANGE: Remove client transform mode from SWC plugin. The client and step modes were nearly identical — both preserved step function bodies, replaced workflow bodies with throw stubs, and emitted the same JSON manifest. The only differences were the step registration mechanism (simple property assignment vs. IIFE) and whether DCE ran. Step mode now absorbs all client-mode behaviors: hoisted variable references for object property steps (so .stepId is accessible), and dead code elimination. All integrations that previously used mode: 'client' now use mode: 'step'.
Original source - Apr 17, 2026
- Date parsed from source:Apr 17, 2026
- First seen by Releasebot:Apr 17, 2026
Workflow Development Kit by Vercel
Workflow Development Kit reverts transparent reconnection stream control frame changes.
@workflow/[email protected]
#1788 7be05b9 @VaguelySerious - Revert "Use stream control frame for transparent reconnection"
Original source - Apr 16, 2026
- Date parsed from source:Apr 16, 2026
- First seen by Releasebot:Apr 17, 2026
Workflow Development Kit by Vercel
Workflow Development Kit releases beta updates with clickable encrypted markers and Run references, inline decryption in the data inspector, stronger replay retry handling, source content in published sourcemaps, and several build, UI, and framework integration fixes.
@workflow/[email protected]
- #1716 df115fd @karthikscale3 - Make encrypted markers clickable to trigger decryption and detect encryption at run level before span selection. Persist features.encryption flag in executionContext at run creation so the UI can detect encryption without a probe fetch.
- #1740 0810b75 @VaguelySerious - When runtime replays exceed 240s, re-try them up to three times, instead of failing immediately
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
- #1778 b7d6595 @TooTallNate - Fix false-positive unconsumed step_created errors when replay resumes a for await hook loop and appends more async work after the first promise-queue drain.
- #1681 ac09f40 @TooTallNate - Add clickable Run reference rendering in observability UI
- #1759 173756d @TooTallNate - Rename useworkflow.dev URLs to workflow-sdk.dev
@workflow/[email protected]
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
- #1736 eba7df3 @karthikscale3 - Fix false "data expired" warning for runs with future expiredAt
- #1759 173756d @TooTallNate - Rename useworkflow.dev URLs to workflow-sdk.dev
@workflow/[email protected]
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
- #1739 11cfb8f @VaguelySerious - Add filesystem polling to enable cross-process streaming in local development
@workflow/[email protected]
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
@workflow/[email protected]
- #1742 340c085 @VaguelySerious - Use custom stream close control frame to decide whether to reconnect to stream
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
@workflow/[email protected]
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
@workflow/[email protected]
- #1732 c57eeff @VaguelySerious - Support standalone deploy to vercel
- #1768 bcf818c @karthikscale3 - Disable Vite minification so the published build contains readable code, reducing false-positive obfuscation flags from supply chain security scanners (Socket).
- #1716 df115fd @karthikscale3 - Make encrypted markers clickable to trigger decryption and detect encryption at run level before span selection. Persist features.encryption flag in executionContext at run creation so the UI can detect encryption without a probe fetch.
- #1681 ac09f40 @TooTallNate - Add clickable Run reference rendering in observability UI
- #1759 173756d @TooTallNate - Rename useworkflow.dev URLs to workflow-sdk.dev
@workflow/[email protected]
- #1716 df115fd @karthikscale3 - Make encrypted markers clickable to trigger decryption and detect encryption at run level before span selection. Persist features.encryption flag in executionContext at run creation so the UI can detect encryption without a probe fetch.
- #1681 ac09f40 @TooTallNate - Add clickable Run reference rendering in observability UI
- #1759 173756d @TooTallNate - Rename useworkflow.dev URLs to workflow-sdk.dev
- #1722 3eb5034 @karthikscale3 - Support in-line decryption for data inspector on the detail panel
@workflow/[email protected]
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
- #1707 86ebe9f @craze3 - Preserve malformed streamed tool-call input until repair hooks can run
- #1759 173756d @TooTallNate - Rename useworkflow.dev URLs to workflow-sdk.dev
@workflow/[email protected]
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
- #1759 173756d @TooTallNate - Rename useworkflow.dev URLs to workflow-sdk.dev
@workflow/[email protected]
- #1743 136bd35 @TooTallNate - Preserve original step function names in stack traces by setting Object.defineProperty(fn, "name", ...) in the IIFE registration
- #1759 173756d @TooTallNate - Rename useworkflow.dev URLs to workflow-sdk.dev
@workflow/[email protected]
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
- #1699 e788e3b @TooTallNate - Fix discovery WeakMap cache miss causing duplicate esbuild passes during dev rebuilds
- #1759 173756d @TooTallNate - Rename useworkflow.dev URLs to workflow-sdk.dev
@workflow/[email protected]
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
- #1701 fe13110 @TooTallNate - Fix next/package.json resolution failure in npm workspaces monorepos
- #1759 173756d @TooTallNate - Rename useworkflow.dev URLs to workflow-sdk.dev
@workflow/[email protected]
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
- #1759 173756d @TooTallNate - Rename useworkflow.dev URLs to workflow-sdk.dev
@workflow/[email protected]
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
- #1759 173756d @TooTallNate - Rename useworkflow.dev URLs to workflow-sdk.dev
@workflow/[email protected]
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
- #1759 173756d @TooTallNate - Rename useworkflow.dev URLs to workflow-sdk.dev
@workflow/[email protected]
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
- #1759 173756d @TooTallNate - Rename useworkflow.dev URLs to workflow-sdk.dev
@workflow/[email protected]
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
- #1759 173756d @TooTallNate - Rename useworkflow.dev URLs to workflow-sdk.dev
@workflow/[email protected]
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
@workflow/[email protected]
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
- #1759 173756d @TooTallNate - Rename useworkflow.dev URLs to workflow-sdk.dev
@workflow/[email protected]
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
- #1759 173756d @TooTallNate - Rename useworkflow.dev URLs to workflow-sdk.dev
@workflow/[email protected]
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
@workflow/[email protected]
- #1769 5a42964 @tomdale - Embed source content in published sourcemaps.
- Apr 16, 2026
- Date parsed from source:Apr 16, 2026
- First seen by Releasebot:Apr 17, 2026
Workflow Development Kit by Vercel
Workflow Development Kit releases broad updates across core, CLI, web, AI, and runtime worlds, including replay retry handling, source content in published sourcemaps, safer world version defaults, stream reconnect improvements, and cleaner builds for security scanning.
@workflow/[email protected]
- #1758 fb3c118 @VaguelySerious - When runtime replays exceed 240s, re-try them up to three times, instead of failing immediately
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
- 2ece7ba @VaguelySerious - Fix community world E2E tests by adding specVersion to the World interface so start() uses the safe baseline (v2) for worlds that don't declare their supported version
- #1726 7aab36b @workflow-devkit-release-bot - Fix false-positive unconsumed step_created errors when replay resumes a for await hook loop and appends more async work after the first promise-queue drain.
@workflow/[email protected]
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
@workflow/[email protected]
- 2ece7ba @VaguelySerious - Fix community world E2E tests by adding specVersion to the World interface so start() uses the safe baseline (v2) for worlds that don't declare their supported version
@workflow/[email protected]
- #1765 5bc4191 @VaguelySerious - Add filesystem polling for cross-process stream reads
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
- 2ece7ba @VaguelySerious - Fix community world E2E tests by adding specVersion to the World interface so start() uses the safe baseline (v2) for worlds that don't declare their supported version
@workflow/[email protected]
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
- 2ece7ba @VaguelySerious - Fix community world E2E tests by adding specVersion to the World interface so start() uses the safe baseline (v2) for worlds that don't declare their supported version
@workflow/[email protected]
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
- 2ece7ba @VaguelySerious - Fix community world E2E tests by adding specVersion to the World interface so start() uses the safe baseline (v2) for worlds that don't declare their supported version
- #1766 3737caa @VaguelySerious - Use stream control frame to transparently reconnect on server timeout
@workflow/[email protected]
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
@workflow/[email protected]
- #1776 c556da3 @workflow-devkit-release-bot - Disable Vite minification so the published build contains readable code, reducing false-positive obfuscation flags from supply chain security scanners (Socket).
@workflow/[email protected]
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
- #1726 3aad64d @workflow-devkit-release-bot - Preserve malformed streamed tool-call input until repair hooks can run
@workflow/[email protected]
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
@workflow/[email protected]
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
@workflow/[email protected]
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
@workflow/[email protected]
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
@workflow/[email protected]
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
@workflow/[email protected]
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
@workflow/[email protected]
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
@workflow/[email protected]
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
@workflow/[email protected]
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
@workflow/[email protected]
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
@workflow/[email protected]
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
@workflow/[email protected]
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
@workflow/[email protected]
- #1726 6f48e9e @workflow-devkit-release-bot - Embed source content in published sourcemaps.
- Apr 14, 2026
- Date parsed from source:Apr 14, 2026
- First seen by Releasebot:Apr 15, 2026
Workflow Development Kit by Vercel
Workflow Development Kit adds in-line decryption for the data inspector on the detail panel.
@workflow/[email protected]
1c70bfa @karthikscale3 - Support in-line decryption for data inspector on the detail panel
Original source - Apr 14, 2026
- Date parsed from source:Apr 14, 2026
- First seen by Releasebot:Apr 14, 2026
Workflow Development Kit by Vercel
Workflow Development Kit adds clickable encrypted markers and run-level encryption detection, so the UI can identify encryption earlier and trigger decryption without a probe fetch.
@workflow/[email protected]
f1cc68f @karthikscale3 - Make encrypted markers clickable to trigger decryption and detect encryption at run level before span selection. Persist features.encryption flag in executionContext at run creation so the UI can detect encryption without a probe fetch.
@workflow/[email protected]
f1cc68f @karthikscale3 - Make encrypted markers clickable to trigger decryption and detect encryption at run level before span selection. Persist features.encryption flag in executionContext at run creation so the UI can detect encryption without a probe fetch.
@workflow/[email protected]
f1cc68f @karthikscale3 - Make encrypted markers clickable to trigger decryption and detect encryption at run level before span selection. Persist features.encryption flag in executionContext at run creation so the UI can detect encryption without a probe fetch.
Original source - Apr 11, 2026
- Date parsed from source:Apr 11, 2026
- First seen by Releasebot:Apr 11, 2026
Workflow Development Kit by Vercel
Workflow Development Kit ships a beta release with major stream API restructuring, async world creation, and ESM-first build output. It also improves serde discovery, adds workflow metadata encryption support, and fixes stream handling, event loading, and step bundle resolution.
@workflow/[email protected]
#1293 66d49c0 @VaguelySerious - BREAKING CHANGE: Restructure stream methods on World interface to use world.streams.* namespace with runId as the first parameter. writeToStream(name, runId, chunk) → streams.write(runId, name, chunk), writeToStreamMulti → streams.writeMulti, closeStream → streams.close, readFromStream → streams.get(runId, name, startIndex?), listStreamsByRunId → streams.list(runId).
#1632 0a86de3 @TooTallNate - BREAKING CHANGE: Remove @workflow/core/private and workflow/internal/private public subpath exports. The SWC compiler plugin no longer generates imports from these paths.
#1293 66d49c0 @VaguelySerious - Require runId argument for world.steps.get.
#1652 ec517fa @TooTallNate - Add features.encryption to WorkflowMetadata returned by getWorkflowMetadata()
#1616 71d39d2 @TooTallNate - Use custom class serialization for Run across runtime and workflow VM contexts, and add e2e coverage for Run instance boundary roundtrips
#1677 9513a81 @TooTallNate - Add serialization support for workflow function references
#1658 a5c90ce @VaguelySerious - Fix community world E2E tests by adding specVersion to the World interface so start() uses the safe baseline (v2) for worlds that don't declare their supported version
#1678 ea97bd6 @TooTallNate - Remove redundant hc_ prefix from health check correlationId that caused doubled hc_hc_ in the derived runId and stream name.
#942 873b4e2 @VaguelySerious - BREAKING CHANGE: Make getWorld and createWorld asynchronous to support ESM dynamic imports for custom world modules. All callers must now await getWorld().
@workflow/[email protected]
#1293 66d49c0 @VaguelySerious - BREAKING CHANGE: Restructure stream methods on World interface to use world.streams.* namespace with runId as the first parameter. writeToStream(name, runId, chunk) → streams.write(runId, name, chunk), writeToStreamMulti → streams.writeMulti, closeStream → streams.close, readFromStream → streams.get(runId, name, startIndex?), listStreamsByRunId → streams.list(runId).
#1293 66d49c0 @VaguelySerious - Require runId argument for world.steps.get.
#1562 e436242 @VaguelySerious - Switch Vercel Build Output API and standalone builder output from CJS to ESM. Step bundles, workflow bundles, and webhook bundles now emit ESM format by default, preserving native import.meta.url support and eliminating the need for CJS polyfills. Fully-bundled ESM output includes a createRequire banner to support CJS dependencies that use require() for Node.js builtins. The intermediate workflow bundle (which runs inside vm.runInContext) remains CJS as required by the VM execution model.
#942 873b4e2 @VaguelySerious - BREAKING CHANGE: Make getWorld and createWorld asynchronous to support ESM dynamic imports for custom world modules. All callers must now await getWorld().
@workflow/[email protected]
#1293 66d49c0 @VaguelySerious - BREAKING CHANGE: Restructure stream methods on World interface to use world.streams.* namespace with runId as the first parameter. writeToStream(name, runId, chunk) → streams.write(runId, name, chunk), writeToStreamMulti → streams.writeMulti, closeStream → streams.close, readFromStream → streams.get(runId, name, startIndex?), listStreamsByRunId → streams.list(runId).
#1293 66d49c0 @VaguelySerious - Require runId argument for world.steps.get.
#1658 a5c90ce @VaguelySerious - Fix community world E2E tests by adding specVersion to the World interface so start() uses the safe baseline (v2) for worlds that don't declare their supported version
@workflow/[email protected]
#1293 66d49c0 @VaguelySerious - BREAKING CHANGE: Restructure stream methods on World interface to use world.streams.* namespace with runId as the first parameter. writeToStream(name, runId, chunk) → streams.write(runId, name, chunk), writeToStreamMulti → streams.writeMulti, closeStream → streams.close, readFromStream → streams.get(runId, name, startIndex?), listStreamsByRunId → streams.list(runId).
#1293 66d49c0 @VaguelySerious - Require runId argument for world.steps.get.
#1658 a5c90ce @VaguelySerious - Fix community world E2E tests by adding specVersion to the World interface so start() uses the safe baseline (v2) for worlds that don't declare their supported version
@workflow/[email protected]
#1293 66d49c0 @VaguelySerious - BREAKING CHANGE: Restructure stream methods on World interface to use world.streams.* namespace with runId as the first parameter. writeToStream(name, runId, chunk) → streams.write(runId, name, chunk), writeToStreamMulti → streams.writeMulti, closeStream → streams.close, readFromStream → streams.get(runId, name, startIndex?), listStreamsByRunId → streams.list(runId).
#1293 66d49c0 @VaguelySerious - Require runId argument for world.steps.get.
#1658 a5c90ce @VaguelySerious - Fix community world E2E tests by adding specVersion to the World interface so start() uses the safe baseline (v2) for worlds that don't declare their supported version
@workflow/[email protected]
#1293 66d49c0 @VaguelySerious - BREAKING CHANGE: Restructure stream methods on World interface to use world.streams.* namespace with runId as the first parameter. writeToStream(name, runId, chunk) → streams.write(runId, name, chunk), writeToStreamMulti → streams.writeMulti, closeStream → streams.close, readFromStream → streams.get(runId, name, startIndex?), listStreamsByRunId → streams.list(runId).
#1293 66d49c0 @VaguelySerious - Require runId argument for world.steps.get.
#1658 a5c90ce @VaguelySerious - Fix community world E2E tests by adding specVersion to the World interface so start() uses the safe baseline (v2) for worlds that don't declare their supported version
#1676 68cf25e @TooTallNate - Fix streams.get() to include runId in the request URL instead of always omitting it.
@workflow/[email protected]
#1293 66d49c0 @VaguelySerious - BREAKING CHANGE: Restructure stream methods on World interface to use world.streams.* namespace with runId as the first parameter. writeToStream(name, runId, chunk) → streams.write(runId, name, chunk), writeToStreamMulti → streams.writeMulti, closeStream → streams.close, readFromStream → streams.get(runId, name, startIndex?), listStreamsByRunId → streams.list(runId).
#1293 66d49c0 @VaguelySerious - Require runId argument for world.steps.get.
@workflow/[email protected]
#1685 38a642b @karthikscale3 - Fix event data loading for step_created events
@workflow/[email protected]
#1663 4d31619 @gr2m - fix(ai): preserve provider tool identity across step boundaries
@workflow/[email protected]
#1633 d040182 @TooTallNate - Allow synchronous functions to use "use step" directive. This enables using "use step" as a mechanism to strip Node.js-dependent code from the workflow VM bundle without requiring the function to be async.
@workflow/[email protected]
#1632 0a86de3 @TooTallNate - BREAKING CHANGE: Inline all step registrations as self-contained IIFEs instead of generating import { registerStepFunction } from "workflow/internal/private". Closure variable access is also inlined. This eliminates the dependency on the workflow package being available in node_modules, enabling 3rd-party packages to define step functions. Registrations are now placed immediately after each function definition instead of being batched at the bottom of the file.
#1633 d040182 @TooTallNate - Allow synchronous functions to use "use step" directive. This enables using "use step" as a mechanism to strip Node.js-dependent code from the workflow VM bundle without requiring the function to be async.
#1671 66585fd @TooTallNate - Eliminate unreferenced private class members in workflow mode after "use step" stripping
#1664 ebb0a4a @TooTallNate - Restore export validation for file-level "use step" files: only function exports (sync or async) are allowed; non-function exports (constants, classes, re-exports) emit an error
@workflow/[email protected]
#1662 89d242f @TooTallNate - BREAKING CHANGE: Remove isWorkflowSdkFile path-based serde exclusion. Serde discovery now uses AST-level verification via SWC detect mode across all integration paths (esbuild plugin, Next.js deferred builder, Next.js loader). This allows class definitions with serde symbols in SDK packages like @workflow/core to be discovered and bundled correctly.
#1669 dc0c0dc @TooTallNate - Fix step bundle discovery and externalization for SDK serde classes - Broaden importParents tracking to all imports (not just file extensions) so parentHasChild() works through bare specifier imports - Include workflow/runtime in discovery inputs so SDK serde classes like Run are always discovered - Bundle node_modules deps instead of externalizing with broken relative paths
#1562 e436242 @VaguelySerious - Switch Vercel Build Output API and standalone builder output from CJS to ESM. Step bundles, workflow bundles, and webhook bundles now emit ESM format by default, preserving native import.meta.url support and eliminating the need for CJS polyfills. Fully-bundled ESM output includes a createRequire banner to support CJS dependencies that use require() for Node.js builtins. The intermediate workflow bundle (which runs inside vm.runInContext) remains CJS as required by the VM execution model.
#1670 32a17b4 @TooTallNate - Fix lazy discovery bare specifier resolution in copied step files - Use enhanced-resolve with ESM conditions to resolve bare specifiers from the original source file's location - Only rewrite specifiers that can't resolve from the app directory (transitive SDK deps) - Add enhanced-resolve to pnpm catalog and use catalog: in both packages
@workflow/[email protected]
#1662 89d242f @TooTallNate - BREAKING CHANGE: Remove isWorkflowSdkFile path-based serde exclusion. Serde discovery now uses AST-level verification via SWC detect mode across all integration paths (esbuild plugin, Next.js deferred builder, Next.js loader). This allows class definitions with serde symbols in SDK packages like @workflow/core to be discovered and bundled correctly.
#1670 32a17b4 @TooTallNate - Fix lazy discovery bare specifier resolution in copied step files - Use enhanced-resolve with ESM conditions to resolve bare specifiers from the original source file's location - Only rewrite specifiers that can't resolve from the app directory (transitive SDK deps) - Add enhanced-resolve to pnpm catalog and use catalog: in both packages
#1646 644d6b8 @ijjk - Stop eager input-graph directive discovery in deferred Next.js builds and rely on loader/socket-driven discovery with onBeforeDeferredEntries.
@workflow/[email protected]
#1662 89d242f @TooTallNate - BREAKING CHANGE: Remove isWorkflowSdkFile path-based serde exclusion. Serde discovery now uses AST-level verification via SWC detect mode across all integration paths (esbuild plugin, Next.js deferred builder, Next.js loader). This allows class definitions with serde symbols in SDK packages like @workflow/core to be discovered and bundled correctly.
Original source - Apr 11, 2026
- Date parsed from source:Apr 11, 2026
- First seen by Releasebot:Apr 11, 2026
Workflow Development Kit by Vercel
Workflow Development Kit fixes health check IDs, event data loading, and AI tool identity across step boundaries.
@workflow/[email protected]
#1657 f5fb9b7 @workflow-devkit-release-bot - Remove redundant hc_ prefix from health check correlationId that caused doubled hc_hc_ in the derived runId and stream name.
@workflow/[email protected]
d210a59 @karthikscale3 - Fix event data loading for step_created events
@workflow/[email protected]
#1657 7faedb7 @workflow-devkit-release-bot - fix(ai): preserve provider tool identity across step boundaries
Original source - Apr 8, 2026
- Date parsed from source:Apr 8, 2026
- First seen by Releasebot:Apr 8, 2026
Workflow Development Kit by Vercel
Workflow Development Kit releases an initial v5 beta across core, CLI, web, plugins, and major framework integrations, plus SWC plugin improvements that reduce false positives and better support getter functions with "use step" directives.
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
#1641 35b539b @TooTallNate - Add detect mode to SWC plugin and use it during discovery to filter false positive directive detections
#1630 bab8cdd @TooTallNate - Support getter functions with "use step" directive
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
#1641 35b539b @TooTallNate - Add detect mode to SWC plugin and use it during discovery to filter false positive directive detections
#1644 372abba @TooTallNate - Fix Node.js builtin imports being relativized in step bundles
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
#1641 35b539b @TooTallNate - Add detect mode to SWC plugin and use it during discovery to filter false positive directive detections
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
@workflow/[email protected]
#1642 c5cdfc0 @VaguelySerious - Initial v5 beta release
Original source - Apr 7, 2026
- Date parsed from source:Apr 7, 2026
- First seen by Releasebot:Apr 8, 2026
Workflow Development Kit by Vercel
Workflow Development Kit releases a broad set of stable package updates across core, CLI, web, AI, plugins, and framework adapters, plus a fix for Node.js builtin imports being relativized in step bundles.
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
1ef83dc @TooTallNate - Fix Node.js builtin imports being relativized in step bundles
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
@workflow/[email protected]
#1640 8890b33 @VaguelySerious - Stable release
Original source
Curated by the Releasebot team
Releasebot is an aggregator of official product update announcements from hundreds of software vendors and thousands of sources.
Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.
Similar to Workflow Development Kit with recent updates:
- Claude Code updates322 release notes · Latest May 23, 2026
- ChatGPT updates167 release notes · Latest May 21, 2026
- OpenAI Models updates45 release notes · Latest Mar 18, 2026
- Gemini updates331 release notes · Latest May 20, 2026
- Claude updates90 release notes · Latest May 21, 2026
- Codex updates170 release notes · Latest May 21, 2026