Skip to content

workflow@5.0.0-beta.41

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Aug 19:31
Immutable release. Only release title and notes can be modified.
9f5015b

@workflow/core@5.0.0-beta.41

  • #3385 74dbf81 @NathanColosimo - Retry replay timeouts through normal queue redelivery instead of exiting the process, and keep Postgres jobs retryable through Core's terminal delivery limit.
  • #3124 65139ac @NathanColosimo - Continue partial run_started event preloads from their cursor instead of reloading the event log from the beginning.
  • #3372 1a64f68 @ar-tama - Fix Date subclassing inside workflow functions. The deterministic Date override in the workflow VM now forwards new.target via Reflect.construct, so subclasses like TZDate from @date-fns/tz keep their identity, methods, and fields. Calling Date() without new now returns the (fixed) time string per spec, instead of a Date object.
  • #3382 a8db185 @VaguelySerious - Fold new events returned by events.create into the replay log so a completed wait no longer needs a follow-up events.list round trip
  • #3286 4bb86d3 @NathanColosimo - Fail a workflow when its World deterministically rejects Hook creation.
  • #3374 439a495 @karthikscale3 - Carry the run's pinned deployment on lazy resume messages so misrouted deliveries re-route before the hook_received write.
  • #3342 eb9e13f @TooTallNate - QuickJS engine: start invocations by restoring a bundle-hydrated VM-memory snapshot instead of re-evaluating the workflow bundle (~25× faster VM startup; bundles with module-scope randomness or clock reads automatically fall back to fresh evaluation). Disable with WORKFLOW_QUICKJS_BASELINE_SNAPSHOT=0.
  • #3263 19b5b85 @TooTallNate - QuickJS engine: move serialization out of the VM onto the host, replacing the in-VM serde bundle with side-effect-free handle introspection (same wire format, 2–100× faster).
  • #3406 fbebf71 @VaguelySerious - Fix replay divergence when a step result overtook an earlier sleep or hook delivery that was parked behind an unread hook's payload
  • #3389 6786db9 @VaguelySerious - Breaking: SpecVersion 6: Event IDs are now a dense per-run slot number, allocated by the world at publish time so a rejected write leaves no gap in the event log. A replay tells the world how many events it had read and gets back the ones it did not see, so an event that arrives from outside the replay and lands ahead of an event the replay wrote no longer fails the run with CORRUPTED_EVENT_LOG: it is held for whichever part of the workflow awaits it. A gap in the numbering fails the run instead of being replayed over.
  • #3205 22349e9 @NathanColosimo - Load replay-event suffixes through one World request.
  • #3439 69c30ff @VaguelySerious - Stop reporting replay divergence for an event the workflow is still on its way to consuming, by waiting for in-flight step and hook deliveries instead of a fixed delay
  • #3124 65139ac @NathanColosimo - Infer required run and step entities, including their start times, from events.create request types.

@workflow/world@5.0.0-beta.26

  • #3374 439a495 @karthikscale3 - Carry the run's pinned deployment on lazy resume messages so misrouted deliveries re-route before the hook_received write.
  • #3385 74dbf81 @NathanColosimo - Retry replay timeouts through normal queue redelivery instead of exiting the process, and keep Postgres jobs retryable through Core's terminal delivery limit.
  • #3382 a8db185 @VaguelySerious - Fold new events returned by events.create into the replay log so a completed wait no longer needs a follow-up events.list round trip
  • #3389 6786db9 @VaguelySerious - Breaking: SpecVersion 6: Event IDs are now a dense per-run slot number, allocated by the world at publish time so a rejected write leaves no gap in the event log. A replay tells the world how many events it had read and gets back the ones it did not see, so an event that arrives from outside the replay and lands ahead of an event the replay wrote no longer fails the run with CORRUPTED_EVENT_LOG: it is held for whichever part of the workflow awaits it. A gap in the numbering fails the run instead of being replayed over.
  • #3205 22349e9 @NathanColosimo - Load replay-event suffixes through one World request.
  • #3124 65139ac @NathanColosimo - Infer required run and step entities, including their start times, from events.create request types.

@workflow/world-local@5.0.0-beta.35

  • #3382 a8db185 @VaguelySerious - Fold new events returned by events.create into the replay log so a completed wait no longer needs a follow-up events.list round trip
  • #3389 6786db9 @VaguelySerious - Breaking: SpecVersion 6: Event IDs are now a dense per-run slot number, allocated by the world at publish time so a rejected write leaves no gap in the event log. A replay tells the world how many events it had read and gets back the ones it did not see, so an event that arrives from outside the replay and lands ahead of an event the replay wrote no longer fails the run with CORRUPTED_EVENT_LOG: it is held for whichever part of the workflow awaits it. A gap in the numbering fails the run instead of being replayed over.
  • #3205 22349e9 @NathanColosimo - Load replay-event suffixes through one World request.
  • #3124 65139ac @NathanColosimo - Infer required run and step entities, including their start times, from events.create request types.

@workflow/world-postgres@5.0.0-beta.33

  • #3385 74dbf81 @NathanColosimo - Retry replay timeouts through normal queue redelivery instead of exiting the process, and keep Postgres jobs retryable through Core's terminal delivery limit.
  • #3382 a8db185 @VaguelySerious - Fold new events returned by events.create into the replay log so a completed wait no longer needs a follow-up events.list round trip
  • #3389 6786db9 @VaguelySerious - Breaking: SpecVersion 6: Event IDs are now a dense per-run slot number, allocated by the world at publish time so a rejected write leaves no gap in the event log. A replay tells the world how many events it had read and gets back the ones it did not see, so an event that arrives from outside the replay and lands ahead of an event the replay wrote no longer fails the run with CORRUPTED_EVENT_LOG: it is held for whichever part of the workflow awaits it. A gap in the numbering fails the run instead of being replayed over.
  • #3205 22349e9 @NathanColosimo - Load replay-event suffixes through one World request.
  • #3124 65139ac @NathanColosimo - Infer required run and step entities, including their start times, from events.create request types.

@workflow/world-vercel@5.0.0-beta.37

  • #3286 4bb86d3 @NathanColosimo - Support Hook minimum retention on Vercel.
  • #3084 264ddff @shalabhc - Add an opt-in WebSocket transport for event writes during step execution, enabled with WORKFLOW_EVENTS_TRANSPORT=ws. Defaults to HTTP; no behavior change unless explicitly enabled.
  • #3385 74dbf81 @NathanColosimo - Retry replay timeouts through normal queue redelivery instead of exiting the process, and keep Postgres jobs retryable through Core's terminal delivery limit.
  • #3382 a8db185 @VaguelySerious - Fold new events returned by events.create into the replay log so a completed wait no longer needs a follow-up events.list round trip
  • #3370 bf4dda6 @VaguelySerious - Recover from HTTP/2 connections that stop delivering event requests, and make WORKFLOW_H2_MULTIPLEX=0 disable HTTP/2 on the events path entirely
  • #3389 6786db9 @VaguelySerious - Breaking: SpecVersion 6: Event IDs are now a dense per-run slot number, allocated by the world at publish time so a rejected write leaves no gap in the event log. A replay tells the world how many events it had read and gets back the ones it did not see, so an event that arrives from outside the replay and lands ahead of an event the replay wrote no longer fails the run with CORRUPTED_EVENT_LOG: it is held for whichever part of the workflow awaits it. A gap in the numbering fails the run instead of being replayed over.
  • #3205 22349e9 @NathanColosimo - Load replay-event suffixes through one World request.
  • #3191 665110b @NathanColosimo - Load the current replay log from non-Turbo run_started responses while preserving Turbo's preload opt-out.
  • #3124 65139ac @NathanColosimo - Infer required run and step entities, including their start times, from events.create request types.

@workflow/builders@5.0.0-beta.41

  • #3163 4ec7aca @lucamaraschi - Add an optional observer for accepted workflow SWC transform results.
  • #3084 264ddff @shalabhc - Add an opt-in WebSocket transport for event writes during step execution, enabled with WORKFLOW_EVENTS_TRANSPORT=ws. Defaults to HTTP; no behavior change unless explicitly enabled.

@workflow/next@5.0.0-beta.41

  • #3084 264ddff @shalabhc - Add an opt-in WebSocket transport for event writes during step execution, enabled with WORKFLOW_EVENTS_TRANSPORT=ws. Defaults to HTTP; no behavior change unless explicitly enabled.

@workflow/rollup@5.0.0-beta.41

  • #3084 264ddff @shalabhc - Add an opt-in WebSocket transport for event writes during step execution, enabled with WORKFLOW_EVENTS_TRANSPORT=ws. Defaults to HTTP; no behavior change unless explicitly enabled.