Files
2026-09-09 12:12:11 -07:00

103 KiB

@workflow/world-vercel

5.0.0-beta.45

Patch Changes

  • #4044 f83e836 Thanks @VaguelySerious! - Honor WORKFLOW_NODE_HTTP on the queue client's transport, so a deployment whose bundled undici is unusable can still acknowledge queue messages instead of redelivering them until the invocation is killed.

  • #4049 2354301 Thanks @VaguelySerious! - Give the queue client its own connection pool and a total per-request deadline, so a stalled queue acknowledgement fails fast instead of holding the invocation until the platform kills it.

  • #3764 fdeb642 Thanks @alangenfeld! - Add the default-off stream WebSocket capability gate.

  • #3763 4fdbadc Thanks @alangenfeld! - Add the client-side workflow-stream-ws/v1 stream-write frame contract.

  • Updated dependencies [61fb1f9, 4547e1a]:

    • @workflow/errors@5.0.0-beta.21
    • @workflow/world@5.0.0-beta.34

5.0.0-beta.44

Minor Changes

  • #3943 fbfb9fe Thanks @karthikscale3! - Validate world.analytics arguments up front: an invalid id, an out-of-range page limit, an oversized attribute filter, or a half-open startTime/endTime window now throws a WorkflowWorldError with code: 'INVALID_ARGUMENT' and field set to the offending parameter, instead of failing the request. The message names the method, the parameter, and what it received. Adds ANALYTICS_RUN_SCOPED_PAGE_LIMIT, ANALYTICS_PAGE_LIMIT and ANALYTICS_MAX_ATTRIBUTE_FILTERS.

    Deprecate analytics.events.listByCorrelationId() in favour of analytics.events.list({ runId, correlationId }).

    Fix analytics.attributes.list() timestamps being shifted by the local UTC offset.

Patch Changes

5.0.0-beta.43

Patch Changes

  • #3742 1c44cc8 Thanks @VaguelySerious! - Fail a run instead of retrying it forever when its event log references a payload the backend can no longer read

  • #3844 cc6eb7e Thanks @VaguelySerious! - Authenticate deploymentId: "latest" with the deployment's own OIDC identity instead of an ambient VERCEL_TOKEN, and scope the request to the configured team, fixing spurious 404s when resolving the latest deployment

  • #3548 e9d5c56 Thanks @NathanColosimo! - Prepare replay payloads as validated event frames arrive, reuse primitive step results across fresh VMs, and preserve replay startup overlap.

  • #3878 ffc5807 Thanks @pranaygp! - Stop logging on healthy workflow execution: the breadcrumbs that only described the runtime working correctly now print under DEBUG=workflow:*. Warnings and errors are unchanged.

  • #3546 aaeb8e4 Thanks @NathanColosimo! - Classify malformed replay responses as typed world failures and resume incomplete streams from their last validated event.

  • Updated dependencies [855e479, 2668e33, e9d5c56, ffc5807]:

    • @workflow/world@5.0.0-beta.32
    • @workflow/utils@5.0.0-beta.10
    • @workflow/errors@5.0.0-beta.19

5.0.0-beta.42

Patch Changes

  • Updated dependencies [d9e0777]:
    • @workflow/world@5.0.0-beta.31
    • @workflow/errors@5.0.0-beta.18

5.0.0-beta.41

Patch Changes

  • Updated dependencies [d62b444]:
    • @workflow/world@5.0.0-beta.30
    • @workflow/errors@5.0.0-beta.18

5.0.0-beta.40

Minor Changes

  • #3570 9454d51 Thanks @pranaygp! - Add world.runs.waitForTerminalStatus(runId, { timeoutMs, signal, resolveData }) method, which long-polls until the run reaches a terminal status. await run.returnValue now internally uses this, if the World supports it, instead of using a polling interval.

  • #3634 7b79ba3 Thanks @pranaygp! - New runs are created with the sealed-log event identity (specVersion 7). A sealed-log run's event positions are assigned by the backend before each write commits, so concurrent writers never contend for a position. A position whose writer dies is closed by the backend with a noop event; replay steps over those without delivering them or advancing the deterministic clock. Set WORKFLOW_SEALED_LOG=0 to put a deployment back on the previous scheme. Every runtime reads sealed logs either way, and a run's version is fixed at creation, so the setting only affects new runs.

  • #3702 dc68611 Thanks @shalabhc! - Default the events transport to WebSockets. WORKFLOW_EVENTS_TRANSPORT=http opts back out; any other value, including unset, now takes the socket.

Patch Changes

  • #3599 d012bf0 Thanks @karthikscale3! - Preserve upstream HTTP status codes when fetching Workflow run encryption keys.

  • #3728 f771585 Thanks @pranaygp! - Hold process-wide state (the WebSocket transport registry, HTTP connection pools, ULID factories, caches, log-once latches) on globalThis instead of at module scope. This de-duplicates state across bundled packages. Fixes WebSocket transport, which was registered in one module state but looked up in another.

  • #3702 dc68611 Thanks @shalabhc! - Add WORKFLOW_INTERNAL_EVENTS_TRANSPORT_STRICT, an internal flag that fails a step_completed write which falls back to HTTP while the WebSocket gate is on, so CI can tell a working socket from a silently demoted one.

  • Updated dependencies [f771585, f771585, 9454d51, 7b79ba3, f771585, bf9de1c]:

    • @workflow/utils@5.0.0-beta.9
    • @workflow/world@5.0.0-beta.29
    • @workflow/errors@5.0.0-beta.18

5.0.0-beta.39

Minor Changes

  • #3461 04e060a Thanks @VaguelySerious! - Add WORKFLOW_NODE_HTTP to run the Vercel and Local World HTTP layers on Node's built-in node:http and node:https modules instead of their usual HTTP client library.

Patch Changes

  • #3025 b0adb50 Thanks @pranaygp! - Add world.events.createBatch World API method, which allows writing ordered events in one durable write, returning per-event outcomes. Optional. On by default if implemented by the World. Disable with WORKFLOW_BATCH_TRANSITIONS=0.

  • #3568 37e1d9e Thanks @pranaygp! - Pre-claim inline steps inside the suspension batch, so a fan-out's inline step bodies start off the batch commit with no per-step claim request

  • #3586 52526e1 Thanks @NathanColosimo! - Avoid repeatedly copying partial event-frame bodies as network chunks arrive.

  • #3493 0b2797b Thanks @VaguelySerious! - Update @vercel/queue to 0.5.0

  • Updated dependencies [b0adb50, 37e1d9e, 1321570, 04e060a]:

    • @workflow/world@5.0.0-beta.28
    • @workflow/errors@5.0.0-beta.17

5.0.0-beta.38

Minor Changes

  • #3390 600b096 Thanks @alangenfeld! - Add a bounded batch analytics event lookup for enriching canonical event pages.

  • #3365 7683130 Thanks @TooTallNate! - Resilient step dispatch: newly created steps are published to the queue in parallel with their step_created event write, with the serialized input carried on the message (stepInput) so the consumer re-ensures the event if the direct write failed transiently — mirroring resilient start (runInput) and resilient hook resume (hookInput). Worlds that enforce the precondition guard keep the sequential create-then-publish dispatch (only sequencing gives the message a happens-after edge over the create's guard verdict); step-dispatch idempotency keys are now step-identity-scoped. Disable via WORKFLOW_RESILIENT_STEP_DISPATCH=0.

Patch Changes

  • #3519 dc85865 Thanks @VaguelySerious! - Remove the preconditionGuard World capability. A stale replay-context write no longer needs to be rejected: a reader holds a prefix of the log, replay is deterministic on a prefix, and the writer's next write reports the events it was pushed past.

  • #3536 63cc09e Thanks @shalabhc! - Add the Workflow client version, step-to-step overhead, and active latency optimizations to terminal event-write client spans for service and version latency analysis.

  • #3542 de2a86c Thanks @VaguelySerious! - Breaking: New runs are created at spec version 6, and a World that declares an older spec version is now rejected before the first run rather than failing partway through one.

  • #3519 dc85865 Thanks @VaguelySerious! - Slot-numbered event ids are a requirement of the World contract, not a capability. The slotEventIds flag is gone, and the conformance suite now fails a World whose event ids are not positions.

  • #3479 b589460 Thanks @VaguelySerious! - Replay-context event writes now always report the log position they replayed from, and the WORKFLOW_PRECONDITION_GUARD flag is removed.

  • #3410 c1a5c74 Thanks @alangenfeld! - Surface typed terminal errors when stream retention expires.

  • #3504 8d8b7b3 Thanks @TooTallNate! - Retry 429 (ThrottleError) event writes in-process, honoring the server's Retry-After, bounded by a 30s cumulative wait budget per write. Previously a throttled event write escaped to the queue handler, whose retry directive can be delayed up to ~5 minutes by queue redelivery scheduling.

  • #3452 01991ed Thanks @shalabhc! - Restore the per-event client span on the WebSocket events transport (WORKFLOW_EVENTS_TRANSPORT=ws), and add a workflow.events.ws.connect span for the handshake. Event write spans now carry workflow.events.transport and workflow.event.type on both transports.

  • Updated dependencies [600b096, dc85865, efbc408, a0ccfe0, de2a86c, dc85865, 7683130, dc85865, b589460, c1a5c74]:

    • @workflow/world@5.0.0-beta.27
    • @workflow/errors@5.0.0-beta.17

5.0.0-beta.37

Minor Changes

  • #3286 4bb86d3 Thanks @NathanColosimo! - Support Hook minimum retention on Vercel.

  • #3084 264ddff Thanks @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.

Patch Changes

  • #3385 74dbf81 Thanks @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 Thanks @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 Thanks @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 Thanks @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 Thanks @NathanColosimo! - Load replay-event suffixes through one World request.

  • #3191 665110b Thanks @NathanColosimo! - Load the current replay log from non-Turbo run_started responses while preserving Turbo's preload opt-out.

  • #3124 65139ac Thanks @NathanColosimo! - Infer required run and step entities, including their start times, from events.create request types.

  • Updated dependencies [74dbf81, a8db185, 439a495, 6786db9, 22349e9, 65139ac]:

    • @workflow/world@5.0.0-beta.26
    • @workflow/errors@5.0.0-beta.16

5.0.0-beta.36

Major Changes

  • #3280 de1905f Thanks @VaguelySerious! - Breaking: events.listByCorrelationId and analytics.events.listByCorrelationId now require a runId. A correlation id is unique within its run, not across runs, so an unscoped lookup answered with one event per run that numbered a step or wait the same.

Minor Changes

  • #3347 8d47928 Thanks @karthikscale3! - Add a bulk run cancellation primitive. @workflow/world defines the BulkCancelWorkflowRuns* contract and an optional runs.cancelMany; @workflow/world-vercel implements it via a single POST /v4/runs/cancel; @workflow/core adds a cancelRuns helper that uses cancelMany when available and falls back to bounded-concurrency single-run cancellation.

Patch Changes

  • #3315 1222aab Thanks @pranaygp! - Update undici to 7.29.0

  • #3334 2eddf74 Thanks @VaguelySerious! - Send the run id with correlation-id event lookups so the backend can scope them to a single run.

  • #2960 79e4c04 Thanks @alangenfeld! - Re-route a queue delivery that reaches a deployment other than the one its run is pinned to, retry transient publishing failures through normal queue redelivery, and fail the run with the new DEPLOYMENT_MISMATCH error code once the recovery budget is spent.

  • #3345 9c1b3c8 Thanks @karthikscale3! - Initialize lazy hook resume replay from the hook_received write via the new advisory preloadEvents param, skipping run_started and the initial events.list; safe fallback otherwise.

  • #3360 72efc90 Thanks @elliotdauber! - Derive inline-execution duration limits from World.getRuntimeDeadline() (implemented on Vercel World via @vercel/functions).

  • Updated dependencies [8d47928, de1905f, 79e4c04, 9c1b3c8, e6f1b6f, 72efc90]:

    • @workflow/world@5.0.0-beta.25
    • @workflow/errors@5.0.0-beta.16

5.0.0-beta.35

Minor Changes

  • #3186 4a9d26b Thanks @alangenfeld! - Record the compute instance that ran each step attempt: CreateEventParams.computeInstanceId is stamped on step_started writes, forwarded in the world-vercel v4 frame meta alongside vercelId, read back on AnalyticsEvent / AnalyticsStep, and surfaced as "Compute Instance ID" in the observability attribute panel.

  • #3145 1471f25 Thanks @VaguelySerious! - Strengthen the event-creation precondition guard: replay-context writes now also send the number of loaded events, so a snapshot that is missing an event is rejected instead of committing a divergent event log, and a rejection restarts the replay in-process (consuming the events a world may attach to the rejection) rather than re-committing the rejected payload or re-invoking over the queue. @workflow/world-local and @workflow/world-postgres do not implement the check.

  • #3230 31f92df Thanks @karthikscale3! - Lazy hook resumption: on a fast path, resumeHook() writes the hook_received event and dispatches the workflow queue message concurrently instead of sequentially, cutting a round trip off resume latency. A (runId, resumeId) dedup constraint keeps the two writers converging on exactly one event; the runtime falls back to the sequential path when dedup support is unavailable or when WORKFLOW_DISABLE_LAZY_HOOK_RESUME=1. resumeHook() resolves to a ResumedHook (a Hook plus an optional resilientResume: true flag, set only when the direct write failed transiently and the resume was recovered via the queue consumer's re-ensure) — preserving the contract introduced alongside the resilient-resume work.

  • #3244 ee944d2 Thanks @pranaygp! - Implement getEnvironment(), reporting the environment this client's writes are attributed to from the same resolution that produces the x-vercel-environment request header.

Patch Changes

5.0.0-beta.34

Patch Changes

  • #3190 34975f6 Thanks @VaguelySerious! - Event-log requests now multiplex over a single HTTP/2 connection instead of opening one connection per in-flight request

  • #3142 a09d001 Thanks @VaguelySerious! - Revert the static workflow world target injection: the world package is again resolved at runtime from WORKFLOW_TARGET_WORLD instead of being aliased into host bundles at build time.

  • Updated dependencies []:

    • @workflow/errors@5.0.0-beta.14

5.0.0-beta.33

Major Changes

  • #3112 4ada27d Thanks @NathanColosimo! - Remove deprecated world-specific factory aliases in favor of createWorld.

  • #3061 62d570e Thanks @NathanColosimo! - Remove legacy step queue topics and payloads now that queued steps use the workflow topic and combined flow handler.

Minor Changes

  • #3095 b4ba79e Thanks @TooTallNate! - Persist and transport the new optional encryptionPublicKey field on workflow runs, carried on run_created (and run_started for resilient start).

  • #3099 a86035f Thanks @TooTallNate! - The cross-deployment capability probe now returns the target run's public key, letting start() seal workflow arguments without a separate key-lookup request.

Patch Changes

  • #3111 8c12358 Thanks @NathanColosimo! - Clarify runtime invariants and compression behavior.

  • #3062 313a074 Thanks @karthikscale3! - Add WORKFLOW_DISABLE_ANALYTICS_READS=1 to opt the world's analytics read namespace off, forcing workflow inspect list paths onto strongly consistent primary storage. Intended for tests and tooling that read entities immediately after writing them, where the analytics store's asynchronous ingestion can return stale pages.

  • #3144 49276f2 Thanks @VaguelySerious! - Explain how to fix a build targeting the Vercel World that runs outside a Vercel deployment, where VERCEL_DEPLOYMENT_ID is missing.

  • Updated dependencies [8c12358, b4ba79e, a86035f, d24c91c, fc81f45, 62d570e, 62d570e]:

    • @workflow/world@5.0.0-beta.23
    • @workflow/errors@5.0.0-beta.13

5.0.0-beta.32

Minor Changes

  • #2915 7d29bab Thanks @joeyhotz! - Add runs.getMany() for retrieving ordered workflow run snapshots in one storage operation.

  • #2865 a5e6f11 Thanks @NathanColosimo! - Add experimental_minRetention for keeping a Hook token unavailable after its run ends, and require supporting Worlds to advertise the hookRetention capability.

Patch Changes

  • #2986 fe12b84 Thanks @shalabhc! - Enforce a server-supplied per-run event limit (default 25K)

  • #2951 6f032d7 Thanks @karthikscale3! - Decode stable-line CBOR structured errors when reading v4 workflow events while preserving current serialized error payloads.

  • #2959 457e671 Thanks @alangenfeld! - Log the underlying queue handler error before retrying a failed delivery.

  • #3013 9078126 Thanks @NathanColosimo! - Retry transient connection timeouts so Eve can resume existing workflow runs after brief network failures.

  • #3038 59c1369 Thanks @karthikscale3! - Retry stream close on retriable 5xx. Close is idempotent on the server (unlike chunk appends, which keep their no-5xx retry policy), and the server may return retriable 503s expecting the writer to close again.

  • #2970 bb773e9 Thanks @VaguelySerious! - Add an optional capabilities?: WorldCapabilities field to the World interface so implementations can declare backend feature support (preconditionGuard, maxConcurrency) instead of the runtime inferring it from environment variables; the Vercel World declares both.

  • #2998 4ecbe7e Thanks @ruiconti! - Append caller-provided user-agent tokens to the world-vercel user-agent instead of discarding them.

  • Updated dependencies [7d29bab, fe12b84, a5e6f11, eb8fdb9, bb773e9]:

    • @workflow/world@5.0.0-beta.22
    • @workflow/errors@5.0.0-beta.12

5.0.0-beta.31

Minor Changes

  • #2266 a00d169 Thanks @VaguelySerious! - Add an opt-in optimistic-concurrency guard for event creation (WORKFLOW_PRECONDITION_GUARD=1): replay-context event creations send a stateUpdatedAt snapshot timestamp, and the runtime reloads the event log and retries (then falls back to a queue re-invocation) when the backend reports a newer out-of-band event with a 412 PreconditionFailedError.

  • #2929 1933e29 Thanks @VaguelySerious! - Report run-started-to-first-step (rsfs) and final-scheduling-replay (finalSchedulingReplay) latency telemetry on step completion events.

Patch Changes

5.0.0-beta.30

Patch Changes

  • #2901 9242ddb Thanks @karthikscale3! - Move client-observed stream telemetry to core: chunk_rtt on the flush span, connect_ms on the read span, and new workflow.stream.close and workflow.stream.read.complete spans. Dedupe @opentelemetry/api to one workspace instance.

5.0.0-beta.29

Minor Changes

  • #2903 f2be954 Thanks @karthikscale3! - Add analytics.attributes.list() for attribute key discovery, and an attributes key=value filter to analytics.runs.list().

  • #2193 a4d8de0 Thanks @VaguelySerious! - Add opt-in WORKFLOW_SEQUENTIAL_REPLAYS env var (also enabled by the WORKFLOW_SAFE_MODE=1 umbrella flag when not set explicitly). When set to 1, flow (orchestrator) routes are limited to one invocation per run at a time via a per-run queue topic and maxConcurrency: 1 on the flow trigger. Step routes are unaffected.

  • #1981 9da2d76 Thanks @TooTallNate! - Implement World.createRunId to mint region-tagged ULIDs, preferring an explicit options.region from start(), then the VERCEL_REGION environment variable, and finally defaulting to iad1 so run IDs are always tagged with a concrete, routable region. The queue now routes each message to the region encoded in the payload's tagged run ID (or to an explicit opts.region override), instead of the previous hard-coded iad1.

Patch Changes

  • #2896 c31e30c Thanks @TooTallNate! - Show world-specific run fields (e.g. region on Vercel) in workflow inspect output via the new optional World.describeRun hook.

  • Updated dependencies [f2be954, ac41e7d, c31e30c, 9da2d76]:

    • @workflow/world@5.0.0-beta.20
    • @workflow/errors@5.0.0-beta.10

5.0.0-beta.28

Patch Changes

  • #2891 4a43e39 Thanks @karthikscale3! - Emit a client-observed workflow.stream.flush span per stream-write batch, with a buffer_dwell_ms attribute separating client-side batching cost from network/server time. Log under DEBUG=workflow:* when @opentelemetry/api fails to load in world-vercel.

5.0.0-beta.27

Patch Changes

  • Updated dependencies [7a1ea5a, 0b956f6]:
    • @workflow/world@5.0.0-beta.19
    • @workflow/errors@5.0.0-beta.10

5.0.0-beta.26

Minor Changes

Patch Changes

  • #2876 84df8f3 Thanks @karthikscale3! - Update @vercel/queue from 0.3.1 to 0.4.0

  • #2873 4dce2ae Thanks @VaguelySerious! - Cancel the v4 event frame stream when a reader stops early, so the response body's undici connection returns to the pool instead of leaking.

  • #2790 145835b Thanks @NathanColosimo! - Centralize workflow event type classifiers and event-data payload field helpers.

  • #2848 6603628 Thanks @VaguelySerious! - Fix duplicate inline step execution when a hook or wait wakes a run while the step is still running (#2780). The lazy step_started now records the owning queue message ID, and wake replays schedule a delayed backstop for in-flight inline steps instead of immediately re-dispatching them. Disable with WORKFLOW_INLINE_OWNERSHIP=0.

  • #2857 2c6ee61 Thanks @karthikscale3! - Add stream latency to OTEL spans

  • Updated dependencies [f28150c, 145835b, 6603628]:

    • @workflow/world@5.0.0-beta.18
    • @workflow/errors@5.0.0-beta.10

5.0.0-beta.25

Minor Changes

  • #2833 3f69666 Thanks @VaguelySerious! - Report time-to-first-step and step-to-step overhead latency telemetry on step completion events.

Patch Changes

  • #2840 712ed61 Thanks @VaguelySerious! - Add an optional reason to run cancellation (run.cancel({ cancelReason })), recorded on the cancellation event and shown in the run detail view.

  • Updated dependencies [3f69666, 712ed61]:

    • @workflow/world@5.0.0-beta.17
    • @workflow/errors@5.0.0-beta.10

5.0.0-beta.24

Patch Changes

  • #2752 0f557d5 Thanks @ijjk! - Statically inject the configured world package into host bundles instead of selecting worlds dynamically at runtime.

  • #2812 fe327e6 Thanks @karthikscale3! - Support startTime/endTime on world.analytics.runs.list to bound the listing window.

  • #2468 49a50e8 Thanks @NathanColosimo! - Standardize first-party World packages on createWorld(), support relative target World modules consistently, and align the Postgres World DATABASE_URL fallback with bootstrap.

  • #2789 03862ed Thanks @TooTallNate! - Send the x-vercel-queue-region header on proxy-mode queue sends so they route to the region's VQS dataplane host like direct in-function sends do.

  • Updated dependencies [fe327e6]:

    • @workflow/world@5.0.0-beta.16
    • @workflow/errors@5.0.0-beta.10

5.0.0-beta.23

Minor Changes

  • #2234 f76377b Thanks @karthikscale3! - Add an optional metadata-only world.analytics namespace for observability reads (runs, steps, events, hooks, waits). Implemented by @workflow/world-vercel; payload-bearing fields remain on the canonical runtime storage APIs.

  • #2718 cc7f076 Thanks @VaguelySerious! - Make runtime tuning constants (timeouts, retry counts, stream buffering/reconnect) configurable via WORKFLOW_* environment variables, and forward WORKFLOW_TEST_LIMIT_OVERRIDES to the backend as a request header so a deployment can tighten server-side limits for testing.

Patch Changes

  • #2680 89f4726 Thanks @karthikscale3! - Decompress gzip- and zstd-prefixed serialized data returned from Vercel Workflow storage, and route OSS web hydration through the async WASM-capable path for compressed payloads.

  • Updated dependencies [f76377b, cc7f076, 2ab7057]:

    • @workflow/world@5.0.0-beta.15
    • @workflow/errors@5.0.0-beta.9

5.0.0-beta.22

Patch Changes

  • 897aac9 - Retry transient transport failures (e.g. UND_ERR_REQ_RETRY, ECONNRESET, socket timeouts, 5xx) in-process for idempotent-on-retry event POSTs, so a brief network blip after a step completes no longer re-executes the step. step_started, step_retrying, and hook_received are excluded as they are not safe to blindly retry.

  • 603ad97 - Treat transient world-vercel transport failures as retryable, surfacing them as a TRANSPORT type WorkflowWorldError, to be retried by the queue instead of failing the run.

  • 1dcdafd - Unify world-vercel HTTP request handling into a shared core and extend OTEL client spans + debug logging to the v4 events, stream, and Vercel-API request paths.

5.0.0-beta.21

Patch Changes

  • a1cbc8b - Enable HTTP/2 for the events API and stream write requests.

  • Updated dependencies [48e6bbf]:

    • @workflow/world@5.0.0-beta.14
    • @workflow/errors@5.0.0-beta.8

5.0.0-beta.20

Patch Changes

  • #2580 25c3df7 Thanks @karthikscale3! - Send optional client-side event occurrence timestamps through world event creation.

  • #2424 d476d7a Thanks @VaguelySerious! - Use v3 endpoint for stream reads, which supports automatic transparent reconnects.

  • #2569 d108ba3 Thanks @VaguelySerious! - Turbo mode now tells world-vercel to skip the run_started event-log preload it never reads, reducing request time.

  • Updated dependencies [25c3df7, d108ba3]:

    • @workflow/world@5.0.0-beta.13
    • @workflow/errors@5.0.0-beta.8

5.0.0-beta.19

Patch Changes

  • #2534 b563126 Thanks @NathanColosimo! - Update undici to 7.28.0.

  • #2475 2074f91 Thanks @pranaygp! - Skip the per-step incremental events.list round-trip in the inline sequential loop by consuming an event-log delta returned from the step's terminal write (gated to the single-step case with no open hooks or waits).

    Add the opt-in CreateEventParams.sinceCursor contract so a step-terminal events.create can return the event-log delta since that cursor (via EventResult.events/cursor/hasMore).

    Return the inline delta from a step-terminal write when sinceCursor is supplied, computed identically to events.list so the consumed prefix cannot skew from the server log.

    Forward sinceCursor over the v4 wire in @workflow/world-vercel so the server can return the delta on a step-terminal response; older servers ignore it and the runtime falls back to events.list.

  • #2478 e7ef9d8 Thanks @pranaygp! - Lazy inline step start: the owned-inline runtime path now sends a single step_started carrying the step input, letting the world create the step on the fly and saving one round-trip per inline step.

    @workflow/world: step_started event data accepts an optional input, and EventResult gains a stepCreated ownership signal.

    @workflow/world-local: step_started with input atomically creates the step plus a synthetic step_created event; a lazy step_started for an already-existing step throws EntityConflictError so concurrent losers skip (exactly-once).

    @workflow/world-postgres: same lazy-create + exactly-once create-claim for the Postgres backend.

    @workflow/world-vercel: sends the step input on step_started over the v4 wire and threads the server's stepCreated signal into EventResult.

  • #2508 1332da3 Thanks @karthikscale3! - Add run IDs on world storage telemetry spans.

  • #2514 fb5abbb Thanks @VaguelySerious! - Route v4 event requests through the global fetch so they appear in the Vercel observability log viewer's outgoing-requests view again.

  • #2533 90efb96 Thanks @karthikscale3! - Inject W3C trace context (traceparent/tracestate/baggage) on v4 event requests, which previously bypassed it via fetchV4 — restoring workflow-server span correlation for traffic from the flow route. No-op when no OpenTelemetry SDK is registered.

  • Updated dependencies [2074f91, e7ef9d8, ab2e9b8]:

    • @workflow/world@5.0.0-beta.12
    • @workflow/errors@5.0.0-beta.8

5.0.0-beta.18

Patch Changes

  • #2486 26fd184 Thanks @VaguelySerious! - Honor the server's explicit pagination flag when listing run events, avoiding one extra empty-page request per event-log load on replay.

5.0.0-beta.17

Minor Changes

  • #2394 5f0b845 Thanks @pranaygp! - Advertise specVersion 5 so new Vercel runs are eligible for gzip payload compression. The workflow-server declared spec-5 support in vercel/workflow-server#520; payloads remain opaque to the server (compression is client-side). Spec 5 is a superset of spec 4, so initial run attributes still work.

Patch Changes

  • #2415 6aa1ce0 Thanks @VaguelySerious! - Skip transferring event payload bytes when listing events with resolveData: 'none' using the v4 API.

  • Updated dependencies [5f0b845]:

    • @workflow/world@5.0.0-beta.11
    • @workflow/errors@5.0.0-beta.8

5.0.0-beta.16

Minor Changes

  • #2363 926a5e7 Thanks @karthikscale3! - Add WORKFLOW_TRACE_MODE with a new linked default: each workflow/step invocation span is now its own trace root with span links to the delivery and run-origin contexts, instead of one trace spanning the entire run. world-vercel now explicitly injects W3C traceparent/tracestate/baggage headers on outgoing workflow-server requests.

    Span names are also friendlier: workflow and step spans now use the short function name (e.g. workflow.execute processOrder, step.execute chargeCard, workflow.start processOrder) instead of the uppercase prefixes and full machine names (WORKFLOW_V2 workflow//./src/jobs/order//processOrder). The full name remains available in the workflow.name / step.name span attributes, and new workflowDisplayName / stepDisplayName helpers are exported from @workflow/utils.

    Behavioral changes to telemetry under the new default (set WORKFLOW_TRACE_MODE=continuous to restore the previous trace shape exactly; the span-name change applies in both modes):

    • A run no longer shares one trace ID: the trace of the request that called start() no longer contains the workflow's execution spans — navigate via span links or the workflow.run.id attribute instead.
    • Sampling decisions are made independently per invocation root (previously one parent-based decision covered the whole run), and the number of root spans/traces increases to one per invocation.
    • workflow.execute/step.execute invocation spans (formerly WORKFLOW_V2/STEP) become parentless roots, which changes parent/child-based queries and service-map edges.
    • Re-enqueued queue messages forward the original run-origin trace carrier unchanged, rather than each invocation's current context.
    • Queries or dashboards matching the old WORKFLOW_V2 .../STEP ... span names must switch to the new names.
    • The queue-delivered workflow.execute span kind changed from internal to consumer, matching the queue-delivered step.execute span (this applies in both modes).

    Existing attributes and baggage keys are unchanged, and everything remains a no-op when no OpenTelemetry SDK is registered.

Patch Changes

  • Updated dependencies []:
    • @workflow/errors@5.0.0-beta.8

5.0.0-beta.15

Minor Changes

  • #2055 0178fa5 Thanks @VaguelySerious! - New internal API format: separately encode event metadata from user payloads. Eliminates the need for calling separate endpoints for ref resolution, which improves performance especially on longer runs.

Patch Changes

  • #2399 af859c3 Thanks @VaguelySerious! - Update @vercel/queues from 0.3.0 to 0.3.1, which adds native retries for 429s and ECONNRESET

  • Updated dependencies [628795a]:

    • @workflow/world@5.0.0-beta.10
    • @workflow/errors@5.0.0-beta.7

5.0.0-beta.14

Minor Changes

  • #2226 ae8d6fe Thanks @pranaygp! - Allow passing initial run attributes through start(), and speed up workflow-level setAttribute calls by using native events for recording attributes.

Patch Changes

  • Updated dependencies [ae8d6fe]:
    • @workflow/world@5.0.0-beta.9
    • @workflow/errors@5.0.0-beta.7

5.0.0-beta.13

Patch Changes

  • #2338 95d7009 Thanks @xujustinj! - Use vitest run instead of watch mode so local pnpm test exits cleanly.

  • Updated dependencies [4670c4b]:

    • @workflow/world@5.0.0-beta.8
    • @workflow/errors@5.0.0-beta.7

5.0.0-beta.12

Patch Changes

  • #2257 ccd37e9 Thanks @pranaygp! - Avoid unhandled run lookups for unused or empty readable streams and include Vercel request correlation headers in world transport errors.

  • #2255 81bda49 Thanks @ctgowrie! - Update @vercel/queue from 0.2.1 to 0.3.0

  • #2035 c19f38d Thanks @TooTallNate! - Validate ref resolve responses (empty, truncated, or Content-Length-mismatched bodies) before use, throwing WorkflowWorldError instead of corrupting the event log.

5.0.0-beta.11

Minor Changes

  • #2235 3a16272 Thanks @AndrewBarba! - Add a dispatcher option to createVercelWorld for supplying a custom undici dispatcher, used for both HTTP and queue requests. Defaults to the shared undici RetryAgent.

Patch Changes

5.0.0-beta.10

Patch Changes

  • #2204 7994629 Thanks @VaguelySerious! - Retry transient response-body read/decode failures (truncated or terminated streams, gateway non-CBOR bodies) on idempotent requests inside the HTTP client, so a sporadic events.list parse failure no longer surfaces as a fatal error.

  • Updated dependencies [8f68d35]:

    • @workflow/world@5.0.0-beta.6
    • @workflow/errors@5.0.0-beta.6

5.0.0-beta.9

Patch Changes

  • Updated dependencies [8d0928b]:
    • @workflow/errors@5.0.0-beta.6

5.0.0-beta.8

Patch Changes

  • #2142 ae37315 Thanks @pranaygp! - Prevent failed stream writes from surfacing as unhandled rejections and include request correlation details in stream errors.

5.0.0-beta.7

Minor Changes

  • #1978 b0d0561 Thanks @TooTallNate! - Add @workflow/world-vercel/run-id sub-export with encode/decode helpers that produce ULID-shaped workflow run IDs carrying a tag bit, a 5-bit version, and a 6-bit Vercel region ID.

Patch Changes

  • #2134 1e6b1fd Thanks @VaguelySerious! - Add experimental_setAttributes() workflow-level helper for attaching string key/value metadata to a workflow run, surfaced as run.attributes

  • #1799 503a929 Thanks @TooTallNate! - Use inline sourcemaps for all workspace packages; published packages no longer ship external .js.map files.

  • Updated dependencies [1e6b1fd, 62ec537, 503a929]:

    • @workflow/world@5.0.0-beta.5
    • @workflow/errors@5.0.0-beta.5

5.0.0-beta.6

Patch Changes

  • #2038 dc0be50 Thanks @pranaygp! - Refresh workflow events after completing elapsed waits so concurrent hook events preserve deterministic replay order.

  • #2013 2a446af Thanks @TooTallNate! - Exclude inline step execution from the workflow replay timeout. Long-running steps no longer hit REPLAY_TIMEOUT (fixes #2009). Adds a WORKFLOW_REPLAY_TIMEOUT_MS env var override and a new optional World.processExitTriggersQueueRedelivery capability used to gate the runtime's process.exit(1) failure path.

  • #2060 1d3959e Thanks @pranaygp! - Record fatal world response contract failures as non-retryable workflow errors.

  • Updated dependencies [dc0be50, ad71b58, b124365, 2a446af, 1d3959e]:

    • @workflow/world@5.0.0-beta.4
    • @workflow/errors@5.0.0-beta.4

5.0.0-beta.5

Patch Changes

  • #1999 c43e721 Thanks @pranaygp! - Release failed VQS workflow handler messages on the configured retry cadence.

  • #1987 22b5a12 Thanks @karthikscale3! - Update to new queue client version

  • Updated dependencies [9d2a926]:

    • @workflow/errors@5.0.0-beta.3
    • @workflow/world@5.0.0-beta.3

5.0.0-beta.4

Major Changes

  • #1851 5f22832 Thanks @TooTallNate! - BREAKING CHANGE: Run and step errors are now serialized through the workflow serialization pipeline, preserving original class identity and cause chains on WorkflowRunFailedError.cause. Pre-upgrade failed runs in the world-postgres legacy error text column surface as error: undefined on read; the original payload is still readable directly from the errorJson column for manual inspection.

Minor Changes

  • #1882 cd50618 Thanks @TooTallNate! - Switch the workflow-server Deployment Protection bypass to OIDC Trusted Sources. The VERCEL_WORKFLOW_SERVER_PROTECTION_BYPASS env var is no longer used; the x-vercel-trusted-oidc-idp-token header is now sourced from getVercelOidcToken().

Patch Changes

5.0.0-beta.3

Minor Changes

  • #1824 354840e Thanks @TooTallNate! - Add VERCEL_WORKFLOW_SERVER_PROTECTION_BYPASS and VERCEL_WORKFLOW_SERVER_URL env vars.

5.0.0-beta.2

Patch Changes

5.0.0-beta.1

Major Changes

  • #1293 66d49c0 Thanks @VaguelySerious! - BREAKING CHANGE: Restructure stream methods on World interface to use world.streams.* namespace with runId as the first parameter. writeToStream(name, runId, chunk) → streams.write(runId, name, chunk), writeToStreamMulti → streams.writeMulti, closeStream → streams.close, readFromStream → streams.get(runId, name, startIndex?), listStreamsByRunId → streams.list(runId).

  • #1293 66d49c0 Thanks @VaguelySerious! - Require runId argument for world.steps.get.

Patch Changes

  • #1658 a5c90ce Thanks @VaguelySerious! - Fix community world E2E tests by adding specVersion to the World interface so start() uses the safe baseline (v2) for worlds that don't declare their supported version

  • #1676 68cf25e Thanks @TooTallNate! - Fix streams.get() to include runId in the request URL instead of always omitting it.

  • Updated dependencies [66d49c0, a5c90ce, 66d49c0]:

    • @workflow/world@5.0.0-beta.1
    • @workflow/errors@5.0.0-beta.0

5.0.0-beta.0

Major Changes

Patch Changes

  • Updated dependencies [c5cdfc0]:
    • @workflow/errors@5.0.0-beta.0
    • @workflow/world@5.0.0-beta.0

4.1.0-beta.49

Patch Changes

  • #1627 5f138f2 Thanks @VaguelySerious! - Bump specVersion to 3 and gate CBOR queue transport on spec version. Old deployments (specVersion < 3) receive JSON queue messages; new deployments receive CBOR. Handler uses dual transport to deserialize both formats. Fixes replay/reenqueue from dashboard to older deployments.

  • #1537 c8dce52 Thanks @VaguelySerious! - Allow workflow invocation to create run if initial storage call in start did not succeed. Send run input through queue to enable this. Allow creating run_created and run_started events together in World, and skip first event list call by returning events directly.

  • #1626 5b9eb40 Thanks @VaguelySerious! - Paginate writeToStreamMulti to stay within the server's 1000 chunks per batch limit

  • Updated dependencies [5f138f2, 7e70d18, c8dce52]:

    • @workflow/world@4.1.0-beta.17
    • @workflow/errors@4.1.0-beta.20

4.1.0-beta.48

Patch Changes

  • #1602 760ebf1 Thanks @karthikscale3! - Update headers from x-workflow-run-id and x-workflow-step-id to x-vercel-workflow-run-id and x-vercel-workflow-step-id in order to align with header naming convention

  • Updated dependencies [b30b0dc]:

    • @workflow/world@4.1.0-beta.16
    • @workflow/errors@4.1.0-beta.20

4.1.0-beta.47

Patch Changes

  • #1588 ef2218a Thanks @VaguelySerious! - Fix zod v3/v4 schema mismatch crash (keyValidator._parse is not a function) by using consistent zod/v4 imports in queue files that consume v4-native schemas from @workflow/world

4.1.0-beta.46

Patch Changes

  • Updated dependencies [a98f8de, 6dc1b78, 329cdb3]:
    • @workflow/world@4.1.0-beta.15
    • @workflow/errors@4.1.0-beta.20

4.1.0-beta.45

Patch Changes

  • #1340 84599b7 Thanks @pranaygp! - Add error code classification (USER_ERROR, RUNTIME_ERROR) to run_failed events, improve queue and schema validation error logging

  • #1442 fdbe853 Thanks @VaguelySerious! - When DEBUG=workflow: is enabled, show API timing debug logs

  • #1342 aee035f Thanks @pranaygp! - Replace HTTP status code checks with semantic error types (EntityConflictError, RunExpiredError, ThrottleError, TooEarlyError). BREAKING CHANGE: WorkflowAPIError renamed to WorkflowWorldError.

  • #1429 741661b Thanks @VaguelySerious! - Support refs inside hook_received event payload

  • #1470 01bbe66 Thanks @VaguelySerious! - Add getStreamChunks() and getStreamInfo() to the Streamer interface, and getTailIndex() to the readable stream returned by run.getReadable(). WorkflowChatTransport now reads the x-workflow-stream-tail-index response header to resolve negative initialStartIndex values into absolute positions, fixing reconnection retries after a disconnect.

  • Updated dependencies [73a851a, 84599b7, 2ef33d2, 672d919, beccbc4, 78f1b0e, aee035f, 01bbe66]:

    • @workflow/errors@4.1.0-beta.19
    • @workflow/world@4.1.0-beta.14

4.1.0-beta.44

Patch Changes

  • #1378 d6e8727 Thanks @TooTallNate! - Reorder token resolution in fetchRunKey and resolveLatestDeploymentId to prefer options.token / VERCEL_TOKEN before calling OIDC, skipping the OIDC network call when a token is already available

  • #1396 2f0772d Thanks @karthikscale3! - Track Vercel request IDs (x-vercel-id) on all workflow events for correlating request logs with workflow executions

  • #1335 e902980 Thanks @VaguelySerious! - Use undici dispatcher for queue client

  • #1364 94c14c7 Thanks @karthikscale3! - Strip only ref/payload fields from eventData when resolveData is 'none', preserving all other metadata

  • Updated dependencies [2f0772d, 94c14c7]:

    • @workflow/world@4.1.0-beta.13
    • @workflow/errors@4.1.0-beta.18

4.1.0-beta.43

Patch Changes

  • #1317 825417a Thanks @TooTallNate! - Implement resolveLatestDeploymentId() that calls the Vercel API to resolve the latest deployment for the current environment

  • #1322 d5bc418 Thanks @VaguelySerious! - Encode all user-supplied IDs in URL path segments with encodeURIComponent()

  • Updated dependencies [825417a]:

    • @workflow/world@4.1.0-beta.12
    • @workflow/errors@4.1.0-beta.18

4.1.0-beta.42

Patch Changes

  • #1262 9781afb Thanks @TooTallNate! - Use VERCEL=1 to distinguish serverless runtime from external contexts for encryption key resolution

  • #1309 d842ce1 Thanks @TooTallNate! - Include response body and status text in fetchRunKey error message for better debuggability of rate limit and server errors.

4.1.0-beta.41

Patch Changes

  • #1287 d8daa2a Thanks @VaguelySerious! - Add world.events.get(runId, eventId) to the Storage interface for fetching a single event by ID.

  • Updated dependencies [d8daa2a]:

    • @workflow/world@4.1.0-beta.11
    • @workflow/errors@4.1.0-beta.18

4.1.0-beta.40

Patch Changes

  • #1290 8b5a388 Thanks @pranaygp! - Support timeoutSeconds: 0 for immediate re-enqueue without arbitrary delay

4.1.0-beta.39

Patch Changes

  • #1273 11dcb64 Thanks @VaguelySerious! - Locally validate run ID to be ULID when passed by user

  • Updated dependencies [11dcb64]:

    • @workflow/world@4.1.0-beta.10
    • @workflow/errors@4.1.0-beta.18

4.1.0-beta.38

Patch Changes

  • #1270 adfe8b6 Thanks @pranaygp! - Add HookNotFoundError to @workflow/errors and adopt it across all world backends

  • Updated dependencies [adfe8b6, adfe8b6]:

    • @workflow/errors@4.1.0-beta.18
    • @workflow/world@4.1.0-beta.9

4.1.0-beta.37

Patch Changes

4.1.0-beta.36

Patch Changes

4.1.0-beta.35

Patch Changes

  • #1189 b224521 Thanks @TooTallNate! - Move event ref resolution from server-side to client-side to reduce memory pressure

  • 49d1b6d Thanks @VaguelySerious! - Include total blob and stream storage size of a run in the run response

  • #1174 e1a2f47 Thanks @TooTallNate! - Handle { key: null } response from the run-key API endpoint, returning undefined to signal encryption is disabled for that workflow run

  • #1183 c614456 Thanks @TooTallNate! - Pass teamId to the run-key API endpoint for team-scoped encryption key retrieval

  • #1188 b06e491 Thanks @ctgowrie! - New vercel queue client

  • Updated dependencies [b06e491]:

    • @workflow/world@4.1.0-beta.7
    • @workflow/errors@4.1.0-beta.16

4.1.0-beta.34

Patch Changes

  • #956 b65bb07 Thanks @TooTallNate! - Implement getEncryptionKeyForRun with HKDF-SHA256 per-run key derivation and cross-deployment key resolution via fetchRunKey API

  • Updated dependencies [b65bb07]:

    • @workflow/world@4.1.0-beta.6
    • @workflow/errors@4.1.0-beta.16

4.1.0-beta.33

Patch Changes

  • #1098 7046610 Thanks @pranaygp! - Auto-inject x-workflow-run-id and x-workflow-step-id VQS headers from queue payload in world-vercel

  • #999 ea3254e Thanks @TooTallNate! - Separate project ID and project name into distinct env vars (WORKFLOW_VERCEL_PROJECT and WORKFLOW_VERCEL_PROJECT_NAME)

  • #1096 29347b7 Thanks @ctgowrie! - Use new Vercel queue client with v2 message format, simplified callback handling, etc.

  • Updated dependencies [c2b4fe9, 6e72b29, 5e06a7c, 5487983]:

    • @workflow/errors@4.1.0-beta.16
    • @workflow/world@4.1.0-beta.5

4.1.0-beta.32

Patch Changes

  • #966 56f2221 Thanks @VaguelySerious! - Add 429 throttle retry handling and 500 server error retry with exponential backoff to the workflow and step runtimes

  • Updated dependencies [56f2221]:

    • @workflow/errors@4.1.0-beta.15
    • @workflow/world@4.1.0-beta.4

4.1.0-beta.31

Patch Changes

  • #985 aa448c2 Thanks @VaguelySerious! - Allow overwriting backend URL via env variable

  • Updated dependencies [d9e9859]:

    • @workflow/world@4.1.0-beta.3
    • @workflow/errors@4.1.0-beta.14

4.1.0-beta.30

Patch Changes

  • #922 0ce46b9 Thanks @pranaygp! - Add support for custom headers in queue messages

  • #867 c54ba21 Thanks @TooTallNate! - Add optional writeToStreamMulti function to the World interface

  • #933 79e988f Thanks @pranaygp! - Add OTEL tracing for HTTP requests and storage operations using standard OTEL semantic conventions

  • #932 088de0a Thanks @pranaygp! - Improve world-vercel telemetry and event creation performance

    • Use parent application's 'workflow' tracer instead of separate service name
    • Add peer.service and RPC semantic conventions for Datadog service maps
    • Include event type in world.events.create span names (e.g., world.events.create step_started)
    • Use lazy ref resolution for fire-and-forget events to skip S3 ref resolution (~200-460ms savings)
  • Updated dependencies [0ce46b9, c54ba21]:

    • @workflow/world@4.1.0-beta.2
    • @workflow/errors@4.1.0-beta.14

4.1.0-beta.29

Minor Changes

  • #621 4966b72 Thanks @pranaygp! - BREAKING: Storage interface is now read-only; all mutations go through events.create()
    • Remove cancel, pause, resume from runs
    • Remove create, update from runs, steps, hooks
    • Add run lifecycle events: run_created, run_started, run_completed, run_failed, run_cancelled
    • Add step_created event type
    • Remove fatal field from step_failed (terminal failure is now implicit)
    • Add step_retrying event with error info for retriable failures

Patch Changes

  • #799 26a9833 Thanks @VaguelySerious! - Update queue implementation to use VQS v3

  • #844 b59559b Thanks @TooTallNate! - Submit request bodies with CBOR encoding

  • #894 a2b688d Thanks @VaguelySerious! - Fix resuming v1 hooks and cancelling/re-running v1 runs from a v2 UI or runtime

  • #833 bd8116d Thanks @TooTallNate! - Remove skipProxy and baseUrl config options, simplify proxy logic

  • #853 1060f9d Thanks @TooTallNate! - BREAKING CHANGE: Change user input/output to be binary data (Uint8Array) at the World interface

    This is part of specVersion 2 changes where serialization of workflow and step data uses binary format instead of JSON arrays. This allows the workflow client to be fully responsible for the data serialization format and enables future enhancements such as encryption and compression without the World implementation needing to care about the underlying data representation.

  • #621 4966b72 Thanks @pranaygp! - Add specVersion property to World interface

    • All worlds expose @workflow/world package version for protocol compatibility
    • Stored in run_created event and WorkflowRun schema
    • Displayed in observability UI
  • #832 b973b8d Thanks @TooTallNate! - Add support for CBOR responses

  • #621 4966b72 Thanks @pranaygp! - Route entity mutations through v2 events API

    • events.create() calls v2 endpoint for atomic entity creation
    • Remove cancel, pause, resume from storage interface
  • Updated dependencies [4966b72, 4966b72, 4966b72, 1060f9d, 4966b72, 4966b72]:

    • @workflow/world@4.1.0-beta.1
    • @workflow/errors@4.1.0-beta.14

4.0.1-beta.28

Patch Changes

4.0.1-beta.27

Patch Changes

  • Updated dependencies [61fdb41, 0aa835f]:
    • @workflow/world@4.0.1-beta.13
    • @workflow/errors@4.0.1-beta.13

4.0.1-beta.26

Patch Changes

  • #751 dd3db13 Thanks @VaguelySerious! - Remove the unused paused/resumed run events and states

    • Remove run_paused and run_resumed event types
    • Remove paused status from WorkflowRunStatus
    • Remove PauseWorkflowRunParams and ResumeWorkflowRunParams types
    • Remove pauseWorkflowRun and resumeWorkflowRun functions from world-vercel
  • Updated dependencies [dd3db13]:

    • @workflow/world@4.0.1-beta.12
    • @workflow/errors@4.0.1-beta.13

4.0.1-beta.25

Patch Changes

  • Updated dependencies []:
    • @workflow/errors@4.0.1-beta.13

4.0.1-beta.24

Patch Changes

  • Updated dependencies [e3f0390]:
    • @workflow/world@4.0.1-beta.11
    • @workflow/errors@4.0.1-beta.12

4.0.1-beta.23

Patch Changes

  • Updated dependencies []:
    • @workflow/errors@4.0.1-beta.11

4.0.1-beta.22

Patch Changes

4.0.1-beta.21

Patch Changes

  • #639 ab55ba2 Thanks @adriandlam! - Add custom request header to bypass RSC request memoization

  • Updated dependencies [4bdd3e5]:

    • @workflow/errors@4.0.1-beta.10

4.0.1-beta.20

Patch Changes

  • #627 deaf019 Thanks @VaguelySerious! - [world-vercel] Allow skipping vercel backend proxy for e2e tests where CLI runs in runtime env

  • Updated dependencies [b56aae3]:

    • @workflow/errors@4.0.1-beta.9

4.0.1-beta.19

Patch Changes

  • Updated dependencies []:
    • @workflow/errors@4.0.1-beta.8

4.0.1-beta.18

Patch Changes

  • #574 c82b467 Thanks @VaguelySerious! - Add listByRunId endpoint to Streamer interface

  • Updated dependencies [c82b467]:

    • @workflow/world@4.0.1-beta.10
    • @workflow/errors@4.0.1-beta.7

4.0.1-beta.17

Patch Changes

  • Updated dependencies [57a2c32]
    • @workflow/world@4.0.1-beta.9
    • @workflow/errors@4.0.1-beta.7

4.0.1-beta.16

Patch Changes

  • c8fa70a: Change Vercel queue max visibility to 11 hours

4.0.1-beta.15

Patch Changes

  • e9494d5: Update @vercel/queue to use new QueueClient class to simplify custom header/path overwrites

4.0.1-beta.14

Patch Changes

  • Updated dependencies [10c5b91]
  • Updated dependencies [bdde1bd]
    • @workflow/world@4.0.1-beta.8
    • @workflow/errors@4.0.1-beta.7

4.0.1-beta.13

Patch Changes

  • Updated dependencies [fb9fd0f]
    • @workflow/world@4.0.1-beta.7
    • @workflow/errors@4.0.1-beta.6

4.0.1-beta.12

Patch Changes

  • 6889dac: Log warning when detecting zod v3

4.0.1-beta.11

Patch Changes

  • 2c438c3: Make queue() call backwardscompatible with zod v3 for codebases that pin zod
    • @workflow/errors@4.0.1-beta.6

4.0.1-beta.10

Patch Changes

  • 3d99d6d: Update @vercel/oidc and @vercel/queue to fix expired OIDC token edge case

4.0.1-beta.9

Patch Changes

  • 4b70739: Require specifying runId when writing to stream
  • Updated dependencies [4b70739]
    • @workflow/world@4.0.1-beta.6
    • @workflow/errors@4.0.1-beta.5

4.0.1-beta.8

Patch Changes

  • b97b6bf: Lock all dependencies in our packages
  • 00b0bb9: Support structured errors for steps and runs
  • Updated dependencies [b97b6bf]
  • Updated dependencies [00b0bb9]
  • Updated dependencies [00b0bb9]
    • @workflow/errors@4.0.1-beta.5
    • @workflow/world@4.0.1-beta.5

4.0.1-beta.7

Patch Changes

4.0.1-beta.6

Patch Changes

  • @workflow/errors@4.0.1-beta.4

4.0.1-beta.5

Patch Changes

  • f973954: Update license to Apache 2.0
  • Updated dependencies [f973954]
    • @workflow/errors@4.0.1-beta.3
    • @workflow/world@4.0.1-beta.4

4.0.1-beta.4

Patch Changes

  • 20d51f0: Enforce the Vercel Queue max visibility limit
  • Updated dependencies [796fafd]
  • Updated dependencies [20d51f0]
  • Updated dependencies [70be894]
    • @workflow/errors@4.0.1-beta.2
    • @workflow/world@4.0.1-beta.3

4.0.1-beta.3

Patch Changes

  • e367046: Allow setting baseUrl and token for queue service

4.0.1-beta.2

Patch Changes

  • 7868434: Remove AuthProvider interface from World and associated implementations
  • Updated dependencies [d3a4ed3]
  • Updated dependencies [d3a4ed3]
  • Updated dependencies [7868434]
    • @workflow/world@4.0.1-beta.2

4.0.1-beta.1

Patch Changes

  • 1408293: Add "description" field to package.json file
  • e46294f: Add "license" and "repository" fields to package.json file
  • Updated dependencies [1408293]
  • Updated dependencies [8422a32]
  • Updated dependencies [e46294f]
    • @workflow/errors@4.0.1-beta.1
    • @workflow/world@4.0.1-beta.1

4.0.1-beta.0

Patch Changes

  • fcf63d0: Initial publish
  • Updated dependencies [fcf63d0]
    • @workflow/errors@4.0.1-beta.0
    • @workflow/world@4.0.1-beta.0