Workflow Development Kit Updates & Release Notes
166 updates curated from 1 source by the Releasebot Team. Last updated: Oct 14, 2026
- Oct 13, 2026
- Date parsed from source:Oct 13, 2026
- First seen by Releasebot:Oct 14, 2026
Workflow Development Kit by Vercel
Workflow Development Kit releases fixes for replay ordering and exact Unicode string round-tripping, removes an experimental dispatch option, and improves Vercel HTTP stream retries after confirmed rate limits.
@workflow/[email protected]
- #4861 afdc68b @pranaygp - Order setAttributes() resolution with the replay delivery barriers so a branch awaiting it can no longer resume out of event-log order, which could fail the run with REPLAY_DIVERGENCE or hand concurrent branches each other's step results
- #4856 a04ecaa @http-samc - Upgrade devalue to 6.0.3, which escapes large strings with native JSON.stringify instead of a per-character loop. Strings containing unpaired surrogates now round-trip exactly instead of being replaced with U+FFFD.
- #4818 0948b0a @VaguelySerious - Remove the experimental WORKFLOW_RESILIENT_STEP_DISPATCH option
@workflow/[email protected]
- #4828 02993a2 @mmarufov - Fix UND_ERR_REQ_CONTENT_LENGTH_MISMATCH by retrying HTTP stream appends with fresh bodies after confirmed 429s, using the shared throttle wait policy. Retry only connection-refused, DNS, and connect-timeout failures; surface other transport errors without replay.
- Oct 13, 2026
- Date parsed from source:Oct 13, 2026
- First seen by Releasebot:Oct 14, 2026
Workflow Development Kit by Vercel
@workflow/[email protected]
Workflow Development Kit treats events after an entity’s terminal event as inert during replay.
[core] Treat events after an entity's terminal event as inert in repl…
Original source All of your release notes in one feed
Join Releasebot and get updates from Vercel and hundreds of other software products.
- Oct 13, 2026
- Date parsed from source:Oct 13, 2026
- First seen by Releasebot:Oct 14, 2026
Workflow Development Kit by Vercel
@workflow/[email protected]
Workflow Development Kit makes events after an entity’s terminal event inert.
[core] Treat events after an entity's terminal event as inert in repl…
Original source - Oct 13, 2026
- Date parsed from source:Oct 13, 2026
- First seen by Releasebot:Oct 14, 2026
Workflow Development Kit by Vercel
@workflow/[email protected]
Workflow Development Kit makes events after an entity’s terminal event inert during replay.
[core] Treat events after an entity's terminal event as inert in repl…
Original source - Oct 13, 2026
- Date parsed from source:Oct 13, 2026
- First seen by Releasebot:Oct 14, 2026
Workflow Development Kit by Vercel
@workflow/[email protected]
Workflow Development Kit now treats events after an entity’s terminal event as inert in replay.
[core] Treat events after an entity's terminal event as inert in repl…
Original source Similar to Workflow Development Kit with recent updates:
- Claude Code updates472 release notes · Latest Oct 17, 2026
- ChatGPT updates235 release notes · Latest Oct 16, 2026
- OpenAI Models updates50 release notes · Latest Oct 14, 2026
- Gemini updates443 release notes · Latest Oct 15, 2026
- Claude updates168 release notes · Latest Oct 15, 2026
- Codex updates264 release notes · Latest Oct 16, 2026
- Oct 12, 2026
- Date parsed from source:Oct 12, 2026
- First seen by Releasebot:Oct 13, 2026
Workflow Development Kit by Vercel
Workflow Development Kit releases updates that improve workflow startup performance, queue routing and recovery, event-write consistency, and inspection tools. The release also fixes stream listing, pagination, and runtime stability issues across local, PostgreSQL, and Vercel backends.
@workflow/[email protected]
- #4669 854242e @http-samc - Compress workflow arguments on the libuv threadpool when starting a run, so large inputs no longer block the caller's event loop during zstd compression.
- #4670 73a6ca3 @http-samc - Add a compressArguments option to start(); pass false to store the run's arguments uncompressed when the inputs are known to be incompressible.
- #4835 fcb554b @pranaygp - Record the queue namespace on a run's executionContext.queueNamespace in start(), so restart recovery re-enqueues the run to its own namespace.
@workflow/[email protected]
- #4760 1342a96 @pranaygp - Improve workflow inspect for long runs and scoped lookups: add --all for complete steps, events, and sleeps listings, print reusable cursor hints, and keep pagination on the read path that issued the cursor. Support event ID and short workflow-name lookups, require --runId for individual steps, events, and streams, fix st to mean streams, include run IDs in stream hints, and exit non-zero when a stream read fails.
@workflow/[email protected]
- #4733 e6bd692 @VaguelySerious - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
- #4835 fcb554b @pranaygp - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
- #4821 ebaa5b7 @VaguelySerious - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
- #4821 ebaa5b7 @VaguelySerious - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
- #4833 3e93033 @pranaygp - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
@workflow/[email protected]
- #4835 fcb554b @pranaygp - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
- #4821 ebaa5b7 @VaguelySerious - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
- #4838 b69fabe @fazxes - Fix initDataDir() crashing on Bun for a new data directory: Bun's opendir() reports a missing directory on the first read, not when it is opened.
- #4834 77ccb69 @pranaygp - Fix in-band event count conflicts when multiple processes write events, and fix count not surviving world restarts
- #4754 c57820d @pranaygp - Register a run's stream names under a lock so streams.list no longer drops a stream when several of the run's streams first write at once. A stream written again after clear() is listed again.
- #4821 ebaa5b7 @VaguelySerious - Report a message's cumulative deliveryCount across { timeoutSeconds } redeliveries on @workflow/world-postgres.
- #4821 ebaa5b7 @VaguelySerious - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
@workflow/[email protected]
- #4817 026741b @VaguelySerious - Fix a process crash when the database closes an idle connection
- #4835 fcb554b @pranaygp - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
- #4821 ebaa5b7 @VaguelySerious - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
- #4821 ebaa5b7 @VaguelySerious - Report a message's cumulative deliveryCount across { timeoutSeconds } redeliveries on @workflow/world-postgres.
- #4756 e631e78 @pranaygp - Honor pagination.sortOrder in runs.list and steps.list, which always returned newest first.
- #4821 ebaa5b7 @VaguelySerious - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
@workflow/[email protected]
- #4733 e6bd692 @VaguelySerious - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
- #4833 3e93033 @pranaygp - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
@workflow/[email protected]
- #4821 ebaa5b7 @VaguelySerious - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
- #4833 3e93033 @pranaygp - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World. - [email protected]
@workflow/[email protected]
- #4733 e6bd692 @VaguelySerious - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
@workflow/[email protected]
- #4835 fcb554b @pranaygp - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
- Oct 12, 2026
- Date parsed from source:Oct 12, 2026
- First seen by Releasebot:Oct 13, 2026
Workflow Development Kit by Vercel
@workflow/[email protected]: Version Packages (#4776)
Workflow Development Kit improves workflow reliability and observability with faster handling of large run inputs, queue routing and recovery enhancements, safer event writes, and expanded CLI inspection and pagination. The release also fixes stream listing, delivery metadata, and database connection issues.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@workflow/[email protected]
Patch Changes
Updated dependencies
[fcb554b]:
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e, e6bd692, fcb554b, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4760
1342a96
Thanks @pranaygp! - Improve workflow inspect for long runs and scoped lookups: add --all for complete steps, events, and sleeps listings, print reusable cursor hints, and keep pagination on the read path that issued the cursor. Support event ID and short workflow-name lookups, require --runId for individual steps, events, and streams, fix st to mean streams, include run IDs in stream hints, and exit non-zero when a stream read fails.
Updated dependencies
[854242e, e6bd692, fcb554b, 73a6ca3, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4669
854242e
Thanks @http-samc! - Compress workflow arguments on the libuv threadpool when starting a run, so large inputs no longer block the caller's event loop during zstd compression.
#4670
73a6ca3
Thanks @http-samc! - Add a compressArguments option to start(); pass false to store the run's arguments uncompressed when the inputs are known to be incompressible.
#4835
fcb554b
Thanks @pranaygp! - Record the queue namespace on a run's executionContext.queueNamespace in start(), so restart recovery re-enqueues the run to its own namespace.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[fcb554b]:
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
@workflow/[email protected]
@workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
- @workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e, e6bd692, fcb554b, 73a6ca3, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7]:
- @workflow/[email protected]
[email protected]
Patch Changes
Updated dependencies
[854242e, e6bd692, fcb554b, 73a6ca3, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
Updated dependencies
[1342a96, 854242e, e6bd692, fcb554b, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
Patch Changes
#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
#4833
3e93033
Thanks @pranaygp! - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
@workflow/[email protected]
Patch Changes
#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4838
b69fabe
Thanks @fazxes! - Fix initDataDir() crashing on Bun for a new data directory: Bun's opendir() reports a missing directory on the first read, not when it is opened.
#4834
77ccb69
Thanks @pranaygp! - Fix in-band event count conflicts when multiple processes write events, and fix count not surviving world restarts
#4754
c57820d
Thanks @pranaygp! - Register a run's stream names under a lock so streams.list no longer drops a stream when several of the run's streams first write at once. A stream written again after clear() is listed again.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report a message's cumulative deliveryCount across { timeoutSeconds } redeliveries on @workflow/world-postgres.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4817
026741b
Thanks @VaguelySerious! - Fix a process crash when the database closes an idle connection
#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report a message's cumulative deliveryCount across { timeoutSeconds } redeliveries on @workflow/world-postgres.
#4756
e631e78
Thanks @pranaygp! - Honor pagination.sortOrder in runs.list and steps.list, which always returned newest first.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4833
3e93033
Thanks @pranaygp! - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
Updated dependencies
[1342a96, 854242e, e6bd692, fcb554b, 73a6ca3, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- [email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
#4833
3e93033
Thanks @pranaygp! - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Original source - Oct 12, 2026
- Date parsed from source:Oct 12, 2026
- First seen by Releasebot:Oct 13, 2026
Workflow Development Kit by Vercel
@workflow/[email protected]: Version Packages (#4776)
Workflow Development Kit releases updates that improve workflow run inspection, speed up handling large inputs, strengthen queue routing and recovery, and add event fencing and stream reliability fixes across its runtimes and tools.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@workflow/[email protected]
Patch Changes
Updated dependencies
[fcb554b]:
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e, e6bd692, fcb554b, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4760
1342a96
Thanks @pranaygp! - Improve workflow inspect for long runs and scoped lookups: add --all for complete steps, events, and sleeps listings, print reusable cursor hints, and keep pagination on the read path that issued the cursor. Support event ID and short workflow-name lookups, require --runId for individual steps, events, and streams, fix st to mean streams, include run IDs in stream hints, and exit non-zero when a stream read fails.
Updated dependencies
[854242e, e6bd692, fcb554b, 73a6ca3, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4669
854242e
Thanks @http-samc! - Compress workflow arguments on the libuv threadpool when starting a run, so large inputs no longer block the caller's event loop during zstd compression.
#4670
73a6ca3
Thanks @http-samc! - Add a compressArguments option to start(); pass false to store the run's arguments uncompressed when the inputs are known to be incompressible.
#4835
fcb554b
Thanks @pranaygp! - Record the queue namespace on a run's executionContext.queueNamespace in start(), so restart recovery re-enqueues the run to its own namespace.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[fcb554b]:
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e, e6bd692, fcb554b, 73a6ca3, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7]:
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e, e6bd692, fcb554b, 73a6ca3, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
[email protected]
Patch Changes
#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
Updated dependencies
[1342a96, 854242e, e6bd692, fcb554b, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
Patch Changes
#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
#4833
3e93033
Thanks @pranaygp! - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
@workflow/[email protected]
Patch Changes
#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4838
b69fabe
Thanks @fazxes! - Fix initDataDir() crashing on Bun for a new data directory: Bun's opendir() reports a missing directory on the first read, not when it is opened.
#4834
77ccb69
Thanks @pranaygp! - Fix in-band event count conflicts when multiple processes write events, and fix count not surviving world restarts
#4754
c57820d
Thanks @pranaygp! - Register a run's stream names under a lock so streams.list no longer drops a stream when several of the run's streams first write at once. A stream written again after clear() is listed again.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report a message's cumulative deliveryCount across { timeoutSeconds } redeliveries on @workflow/world-postgres.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4817
026741b
Thanks @VaguelySerious! - Fix a process crash when the database closes an idle connection
#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report a message's cumulative deliveryCount across { timeoutSeconds } redeliveries on @workflow/world-postgres.
#4756
e631e78
Thanks @pranaygp! - Honor pagination.sortOrder in runs.list and steps.list, which always returned newest first.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4833
3e93033
Thanks @pranaygp! - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
Updated dependencies
[1342a96, 854242e, e6bd692, fcb554b, 73a6ca3, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- [email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
#4833
3e93033
Thanks @pranaygp! - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Original source - Oct 12, 2026
- Date parsed from source:Oct 12, 2026
- First seen by Releasebot:Oct 13, 2026
Workflow Development Kit by Vercel
@workflow/[email protected]: Version Packages (#4776)
Workflow Development Kit releases improvements to workflow performance, queue handling, and run inspection, alongside stronger event-write safeguards and fixes for local and database-backed worlds.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@workflow/[email protected]
Patch Changes
Updated dependencies
[fcb554b]:
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e,
e6bd692,
fcb554b,
73a6ca3,
fcb554b]:- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4760
1342a96Thanks @pranaygp! - Improve workflow inspect for long runs and scoped lookups: add --all for complete steps, events, and sleeps listings, print reusable cursor hints, and keep pagination on the read path that issued the cursor. Support event ID and short workflow-name lookups, require --runId for individual steps, events, and streams, fix st to mean streams, include run IDs in stream hints, and exit non-zero when a stream read fails.
Updated dependencies
[854242e,
e6bd692,
fcb554b,
73a6ca3,
fcb554b,
ebaa5b7,
b69fabe,
77ccb69,
c57820d,
ebaa5b7,
ebaa5b7,
3e93033]:- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4669
854242eThanks @http-samc! - Compress workflow arguments on the libuv threadpool when starting a run, so large inputs no longer block the caller's event loop during zstd compression.
#4670
73a6ca3Thanks @http-samc! - Add a compressArguments option to start(); pass false to store the run's arguments uncompressed when the inputs are known to be incompressible.
#4835
fcb554bThanks @pranaygp! - Record the queue namespace on a run's executionContext.queueNamespace in start(), so restart recovery re-enqueues the run to its own namespace.
Updated dependencies
[e6bd692,
fcb554b,
ebaa5b7,
b69fabe,
77ccb69,
c57820d,
ebaa5b7,
ebaa5b7,
3e93033]:- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4733
e6bd692Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
Updated dependencies
[e6bd692,
fcb554b,
ebaa5b7,
ebaa5b7,
3e93033]:- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[fcb554b]:- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e,
73a6ca3,
fcb554b]:- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e,
73a6ca3,
fcb554b]:- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4835
fcb554bThanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e,
e6bd692,
fcb554b,
73a6ca3,
fcb554b,
ebaa5b7,
b69fabe,
77ccb69,
c57820d,
ebaa5b7,
ebaa5b7,
3e93033]:- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[fcb554b,
ebaa5b7,
b69fabe,
77ccb69,
c57820d,
ebaa5b7,
ebaa5b7]:- @workflow/[email protected]
Patch Changes
#4733
e6bd692Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
Updated dependencies
[1342a96,
854242e,
e6bd692,
fcb554b,
73a6ca3,
fcb554b]:- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
Patch Changes
#4733
e6bd692Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
#4835
fcb554bThanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
#4821
ebaa5b7Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4821
ebaa5b7Thanks @VaguelySerious! - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
#4833
3e93033Thanks @pranaygp! - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
@workflow/[email protected]
Patch Changes
#4835
fcb554bThanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
#4821
ebaa5b7Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4838
b69fabeThanks @fazxes! - Fix initDataDir() crashing on Bun for a new data directory: Bun's opendir() reports a missing directory on the first read, not when it is opened.
#4834
77ccb69Thanks @pranaygp! - Fix in-band event count conflicts when multiple processes write events, and fix count not surviving world restarts
#4754
c57820dThanks @pranaygp! - Register a run's stream names under a lock so streams.list no longer drops a stream when several of the run's streams first write at once. A stream written again after clear() is listed again.
#4821
ebaa5b7Thanks @VaguelySerious! - Report a message's cumulative deliveryCount across { timeoutSeconds } redeliveries on @workflow/world-postgres.
#4821
ebaa5b7Thanks @VaguelySerious! - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
Updated dependencies
[e6bd692,
fcb554b,
ebaa5b7,
ebaa5b7,
3e93033]:- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4817
026741bThanks @VaguelySerious! - Fix a process crash when the database closes an idle connection
#4835
fcb554bThanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
#4821
ebaa5b7Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4821
ebaa5b7Thanks @VaguelySerious! - Report a message's cumulative deliveryCount across { timeoutSeconds } redeliveries on @workflow/world-postgres.
#4756
e631e78Thanks @pranaygp! - Honor pagination.sortOrder in runs.list and steps.list, which always returned newest first.
#4821
ebaa5b7Thanks @VaguelySerious! - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
Updated dependencies
[e6bd692,
fcb554b,
ebaa5b7,
b69fabe,
77ccb69,
c57820d,
ebaa5b7,
ebaa5b7,
3e93033]:- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4821
ebaa5b7Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4833
3e93033Thanks @pranaygp! - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
Updated dependencies
[1342a96,
854242e,
e6bd692,
fcb554b,
73a6ca3,
fcb554b,
ebaa5b7,
ebaa5b7,
3e93033]:- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- [email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4733
e6bd692Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
#4833
3e93033Thanks @pranaygp! - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
Updated dependencies
[e6bd692,
fcb554b,
ebaa5b7,
ebaa5b7,
3e93033]:- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Original source - Oct 12, 2026
- Date parsed from source:Oct 12, 2026
- First seen by Releasebot:Oct 13, 2026
Workflow Development Kit by Vercel
@workflow/[email protected]: Version Packages (#4776)
Workflow Development Kit releases updates that improve long-run inspection, keep large workflow starts responsive, and strengthen queue routing, recovery, and event handling across supported backends.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@workflow/[email protected]
Patch Changes
Updated dependencies
[fcb554b]:
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e, e6bd692, fcb554b, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
Patch Changes
#4760
1342a96
Thanks @pranaygp! - Improve workflow inspect for long runs and scoped lookups: add --all for complete steps, events, and sleeps listings, print reusable cursor hints, and keep pagination on the read path that issued the cursor. Support event ID and short workflow-name lookups, require --runId for individual steps, events, and streams, fix st to mean streams, include run IDs in stream hints, and exit non-zero when a stream read fails.
Updated dependencies
[854242e, e6bd692, fcb554b, 73a6ca3, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4669
854242e
Thanks @http-samc! - Compress workflow arguments on the libuv threadpool when starting a run, so large inputs no longer block the caller's event loop during zstd compression.
#4670
73a6ca3
Thanks @http-samc! - Add a compressArguments option to start(); pass false to store the run's arguments uncompressed when the inputs are known to be incompressible.
#4835
fcb554b
Thanks @pranaygp! - Record the queue namespace on a run's executionContext.queueNamespace in start(), so restart recovery re-enqueues the run to its own namespace.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[fcb554b]:
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
@workflow/[email protected]
@workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
- @workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e, e6bd692, fcb554b, 73a6ca3, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7]:
- @workflow/[email protected]
[email protected]
Patch Changes
Updated dependencies
[854242e, e6bd692, fcb554b, 73a6ca3, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
Updated dependencies
[1342a96, 854242e, e6bd692, fcb554b, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
Patch Changes
#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
#4833
3e93033
Thanks @pranaygp! - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
@workflow/[email protected]
Patch Changes
#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4838
b69fabe
Thanks @fazxes! - Fix initDataDir() crashing on Bun for a new data directory: Bun's opendir() reports a missing directory on the first read, not when it is opened.
#4834
77ccb69
Thanks @pranaygp! - Fix in-band event count conflicts when multiple processes write events, and fix count not surviving world restarts
#4754
c57820d
Thanks @pranaygp! - Register a run's stream names under a lock so streams.list no longer drops a stream when several of the run's streams first write at once. A stream written again after clear() is listed again.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report a message's cumulative deliveryCount across { timeoutSeconds } redeliveries on @workflow/world-postgres.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4817
026741b
Thanks @VaguelySerious! - Fix a process crash when the database closes an idle connection
#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report a message's cumulative deliveryCount across { timeoutSeconds } redeliveries on @workflow/world-postgres.
#4756
e631e78
Thanks @pranaygp! - Honor pagination.sortOrder in runs.list and steps.list, which always returned newest first.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
Patch Changes
#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4833
3e93033
Thanks @pranaygp! - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
Updated dependencies
[1342a96, 854242e, e6bd692, fcb554b, 73a6ca3, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- [email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
#4833
3e93033
Thanks @pranaygp! - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Original source - Oct 12, 2026
- Date parsed from source:Oct 12, 2026
- First seen by Releasebot:Oct 13, 2026
Workflow Development Kit by Vercel
@workflow/[email protected]: Version Packages (#4776)
Workflow Development Kit releases updates that improve workflow inspection, keep large-run argument compression off the caller’s event loop, and strengthen queue routing, recovery, and event consistency across backends.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@workflow/[email protected]
Patch ChangesUpdated dependencies
[fcb554b]:
- @workflow/[email protected]
@workflow/[email protected]
Patch ChangesUpdated dependencies []:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch ChangesUpdated dependencies
[854242e, e6bd692, fcb554b, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes#4760
1342a96
Thanks @pranaygp! - Improve workflow inspect for long runs and scoped lookups: add --all for complete steps, events, and sleeps listings, print reusable cursor hints, and keep pagination on the read path that issued the cursor. Support event ID and short workflow-name lookups, require --runId for individual steps, events, and streams, fix st to mean streams, include run IDs in stream hints, and exit non-zero when a stream read fails.
Updated dependencies
[854242e, e6bd692, fcb554b, 73a6ca3, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes#4669
854242e
Thanks @http-samc! - Compress workflow arguments on the libuv threadpool when starting a run, so large inputs no longer block the caller's event loop during zstd compression.
#4670
73a6ca3
Thanks @http-samc! - Add a compressArguments option to start(); pass false to store the run's arguments uncompressed when the inputs are known to be incompressible.
#4835
fcb554b
Thanks @pranaygp! - Record the queue namespace on a run's executionContext.queueNamespace in start(), so restart recovery re-enqueues the run to its own namespace.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch ChangesUpdated dependencies
[fcb554b]:
- @workflow/[email protected]
@workflow/[email protected]
Patch ChangesUpdated dependencies
[854242e, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch ChangesUpdated dependencies
[854242e, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
@workflow/[email protected]
@workflow/[email protected]
@workflow/[email protected]
Patch ChangesUpdated dependencies []:
- @workflow/[email protected]
- @workflow/[email protected]
Updated dependencies []:
- @workflow/[email protected]
@workflow/[email protected]
Patch ChangesUpdated dependencies []:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
@workflow/[email protected]
Patch ChangesUpdated dependencies []:
- @workflow/[email protected]
@workflow/[email protected]
Patch ChangesUpdated dependencies
[854242e, e6bd692, fcb554b, 73a6ca3, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch ChangesUpdated dependencies
[fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7]:
- @workflow/[email protected]
@workflow/[email protected]
Patch ChangesUpdated dependencies
[854242e, e6bd692, fcb554b, 73a6ca3, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
[email protected]
Patch Changes#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
Updated dependencies
[1342a96, 854242e, e6bd692, fcb554b, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
#4833
3e93033
Thanks @pranaygp! - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
@workflow/[email protected]
Patch Changes#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4838
b69fabe
Thanks @fazxes! - Fix initDataDir() crashing on Bun for a new data directory: Bun's opendir() reports a missing directory on the first read, not when it is opened.
#4834
77ccb69
Thanks @pranaygp! - Fix in-band event count conflicts when multiple processes write events, and fix count not surviving world restarts
#4754
c57820d
Thanks @pranaygp! - Register a run's stream names under a lock so streams.list no longer drops a stream when several of the run's streams first write at once. A stream written again after clear() is listed again.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report a message's cumulative deliveryCount across { timeoutSeconds } redeliveries on @workflow/world-postgres.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes#4817
026741b
Thanks @VaguelySerious! - Fix a process crash when the database closes an idle connection
#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report a message's cumulative deliveryCount across { timeoutSeconds } redeliveries on @workflow/world-postgres.
#4756
e631e78
Thanks @pranaygp! - Honor pagination.sortOrder in runs.list and steps.list, which always returned newest first.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4833
3e93033
Thanks @pranaygp! - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
Updated dependencies
[1342a96, 854242e, e6bd692, fcb554b, 73a6ca3, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
#4833
3e93033
Thanks @pranaygp! - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Original source - Oct 12, 2026
- Date parsed from source:Oct 12, 2026
- First seen by Releasebot:Oct 13, 2026
Workflow Development Kit by Vercel
@workflow/[email protected]: Version Packages (#4776)
Workflow Development Kit releases updates that improve long-running workflow inspection, keep large-run startup responsive, and strengthen queue routing, event consistency, and stream handling across supported backends.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@workflow/[email protected]
Patch Changes
Updated dependencies
[fcb554b]:
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e, e6bd692, fcb554b, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4760
1342a96
Thanks @pranaygp! - Improve workflow inspect for long runs and scoped lookups: add --all for complete steps, events, and sleeps listings, print reusable cursor hints, and keep pagination on the read path that issued the cursor. Support event ID and short workflow-name lookups, require --runId for individual steps, events, and streams, fix st to mean streams, include run IDs in stream hints, and exit non-zero when a stream read fails.
Updated dependencies
[854242e, e6bd692, fcb554b, 73a6ca3, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4669
854242e
Thanks @http-samc! - Compress workflow arguments on the libuv threadpool when starting a run, so large inputs no longer block the caller's event loop during zstd compression.
#4670
73a6ca3
Thanks @http-samc! - Add a compressArguments option to start(); pass false to store the run's arguments uncompressed when the inputs are known to be incompressible.
#4835
fcb554b
Thanks @pranaygp! - Record the queue namespace on a run's executionContext.queueNamespace in start(), so restart recovery re-enqueues the run to its own namespace.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
Updated dependencies
[e6bd692, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[fcb554b]:
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies
[854242e, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
@workflow/[email protected]
@workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
- @workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
@workflow/[email protected]
@workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
@workflow/[email protected]
Patch Changes
Updated dependencies []:
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies [854242e, e6bd692, fcb554b, 73a6ca3, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
Updated dependencies [fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7]:
- @workflow/[email protected]
[email protected]
Patch Changes
#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
Updated dependencies [854242e, e6bd692, fcb554b, 73a6ca3, fcb554b]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
Patch Changes
#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
#4833
3e93033
Thanks @pranaygp! - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
@workflow/[email protected]
Patch Changes
#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4838
b69fabe
Thanks @fazxes! - Fix initDataDir() crashing on Bun for a new data directory: Bun's opendir() reports a missing directory on the first read, not when it is opened.
#4834
77ccb69
Thanks @pranaygp! - Fix in-band event count conflicts when multiple processes write events, and fix count not surviving world restarts
#4754
c57820d
Thanks @pranaygp! - Register a run's stream names under a lock so streams.list no longer drops a stream when several of the run's streams first write at once. A stream written again after clear() is listed again.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report a message's cumulative deliveryCount across { timeoutSeconds } redeliveries on @workflow/world-postgres.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
Updated dependencies [e6bd692, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4817
026741b
Thanks @VaguelySerious! - Fix a process crash when the database closes an idle connection
#4835
fcb554b
Thanks @pranaygp! - Add optional Queue.registerRoute() and Queue.registerHandler(), implemented by @workflow/world-local and @workflow/world-postgres, so a queue consumer other than the Workflow SDK receives its own prefix's messages on its own route or in process. reenqueueActiveRuns() re-enqueues a run to the queue namespace it recorded, and @workflow/world-postgres keeps a job's queue prefix.
#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report a message's cumulative deliveryCount across { timeoutSeconds } redeliveries on @workflow/world-postgres.
#4756
e631e78
Thanks @pranaygp! - Honor pagination.sortOrder in runs.list and steps.list, which always returned newest first.
#4821
ebaa5b7
Thanks @VaguelySerious! - Report deliveryCount and createdAt in queue handler meta on @workflow/world-local and @workflow/world-postgres.
Updated dependencies [e6bd692, fcb554b, ebaa5b7, b69fabe, 77ccb69, c57820d, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4821
ebaa5b7
Thanks @VaguelySerious! - Implement the optional in-band writer fence and list snapshot in @workflow/world-local and @workflow/world-postgres, declared with the new inBandFence capability.
#4833
3e93033
Thanks @pranaygp! - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
Updated dependencies [1342a96, 854242e, e6bd692, fcb554b, 73a6ca3, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
- [email protected]
- @workflow/[email protected]
@workflow/[email protected]
Patch Changes
#4733
e6bd692
Thanks @VaguelySerious! - Add InBandSupersededError and optional inBand/expectedSeqInBand event-create params for the in-band writer fence. @workflow/world-vercel forwards them, does not retry a fenced write in-process, and records the fence on its event spans. The runtime does not use them yet.
#4833
3e93033
Thanks @pranaygp! - @workflow/world-vercel declares the inBandFence capability (its backend refuses a stale in-band write on every run with an event sequencer, and answers an in-band write on an older run with a 400), and passes on the in-band counts its backend reports: snapshot on events.list and allocated on a single events.create. The inBandFence contract lets a World list no snapshot when its refusals carry both counters, and @workflow/world-testing takes the counters from a refusal for such a World.
Updated dependencies [e6bd692, fcb554b, ebaa5b7, ebaa5b7, 3e93033]:
- @workflow/[email protected]
- @workflow/[email protected]
- @workflow/[email protected]
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Original source - Oct 6, 2026
- Date parsed from source:Oct 6, 2026
- First seen by Releasebot:Oct 7, 2026
Workflow Development Kit by Vercel
@workflow/[email protected]
Workflow Development Kit adds Version Packages (#4580).
Version Packages (#4580)
Original source - Oct 6, 2026
- Date parsed from source:Oct 6, 2026
- First seen by Releasebot:Oct 7, 2026
Workflow Development Kit by Vercel
@workflow/[email protected]
Workflow Development Kit releases Version Packages.
Version Packages (#4580)
Original source - Oct 6, 2026
- Date parsed from source:Oct 6, 2026
- First seen by Releasebot:Oct 7, 2026
Workflow Development Kit by Vercel
@workflow/[email protected]
Workflow Development Kit adds Version Packages.
Version Packages (#4580)
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.