Skip to content

workflow@5.2.1

Choose a tag to compare

@github-actions github-actions released this 12 Oct 20:55
Immutable release. Only release title and notes can be modified.
ac46e54

@workflow/core@5.2.1

  • #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/cli@5.0.4

  • #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/world@5.0.4

  • #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/world-local@5.1.1

  • #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/world-postgres@5.0.4

  • #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/world-vercel@5.2.1

  • #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/world-testing@5.0.4

  • #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. - workflow@5.2.1

@workflow/errors@5.0.4

  • #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/utils@5.0.2

  • #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.