20 KiB
@workflow/world
4.2.1
Patch Changes
-
#2295
f9119d4Thanks @TooTallNate! - Fixworld-localandworld-postgresturning duplicate processing of the samehook_created(samerunId,hookId, and token) into a self-conflict; both worlds now treat same-entity duplicates as idempotent (matchingstep_created), and recover crash-orphaned token claims (world-local) and hook rows (world-postgres) by completing the partial write instead of incorrectly suppressing it. -
#2511
db8a2c4Thanks @VaguelySerious! - EmitworkflowNameon per-step events (step_created,step_completed) so Worlds can access it without additional queries -
#2580
9fba14eThanks @karthikscale3! - Send optional client-side event occurrence timestamps through world event creation. -
#2414
2a688f0Thanks @github-actions! - 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. -
#2747
6dbe2deThanks @NathanColosimo! - Keep local hooks reachable after a crash or restart by rebuilding lost hook cache files from committed hook creation events, preventing active hook tokens from being reused. -
#2622
87d213cThanks @karthikscale3! - Declare Zod as a runtime dependency so exported schemas are built with the package's own Zod version instead of the consuming application's peer.
4.2.0
Minor Changes
- #2305
9c667e0Thanks @willsather! - Add an optionalnamespaceparameter that scopes queue topic prefixes to__{namespace}_wkf_workflow_*. This allows configuring multiple frameworks in the same deployment without queue topic collision.
4.1.5
Patch Changes
-
#2012
326d93aThanks @pranaygp! - Expose the active run ID on hook token conflict errors. -
#1799
eca3b51Thanks @TooTallNate! - Use inline sourcemaps for all workspace packages; published packages no longer ship external.js.mapfiles.
4.1.4
Patch Changes
-
#2191
5a0ce9aThanks @pranaygp! - Fix forwarded writable stream encryption when child workflows execute on a newer deployment than their parent. -
#2208
5fd7d9cThanks @pranaygp! - Retry transient workflow replay divergence before classifying repeated divergence as a corrupted event log.
4.1.3
Patch Changes
- #1979
8ab6c4fThanks @adamiBs! - Makerun.inputandstep.input.optional()on the World snapshot schemas so consumers no longer fail validation when the service externalizes payloads asRemoteRefblobs.
4.1.2
Patch Changes
-
#2029
a434184Thanks @pranaygp! - Refresh workflow events after completing elapsed waits so concurrent hook events preserve deterministic replay order. -
#2046
8407c1eThanks @pranaygp! - Report corrupted event logs with a distinctCorruptedEventLogErrortype andCORRUPTED_EVENT_LOGrun error code. -
#1902
15e44b3Thanks @ziyak97! - Fix compatibility with Zod 4.4.x inWorkflowRunSchemaby markingoutput,error, andcompletedAtas.optional()on non-final / cancelled / completed / failed run states. -
#2030
c347509Thanks @pranaygp! - Validate step, wait, and hook lifecycle events against replay ownership metadata.
4.1.1
Patch Changes
2ece7baThanks @VaguelySerious! - Fix community world E2E tests by addingspecVersionto the World interface sostart()uses the safe baseline (v2) for worlds that don't declare their supported version
4.1.0
Patch Changes
- #1640
8890b33Thanks @VaguelySerious! - Stable release
4.1.0-beta.16
Patch Changes
- #1605
b30b0dcThanks @VaguelySerious! - Use asymmetric ULID timestamp validation thresholds: 24h past, 5min future.
4.1.0-beta.15
Patch Changes
-
#1569
a98f8deThanks @VaguelySerious! - Combine initial run fetch, event fetch, and run_started event creation -
#1534
329cdb3Thanks @VaguelySerious! - Re-enqueue active runs on world restart so inflight runs resume instead of getting stuck
4.1.0-beta.14
Patch Changes
-
#1460
78f1b0eThanks @VaguelySerious! - Support negativestartIndexfor streaming (e.g.-3reads last 3 chunks) -
#1470
01bbe66Thanks @VaguelySerious! - AddgetStreamChunks()andgetStreamInfo()to the Streamer interface, andgetTailIndex()to the readable stream returned byrun.getReadable().WorkflowChatTransportnow reads thex-workflow-stream-tail-indexresponse header to resolve negativeinitialStartIndexvalues into absolute positions, fixing reconnection retries after a disconnect.
4.1.0-beta.13
Patch Changes
-
#1396
2f0772dThanks @karthikscale3! - Track Vercel request IDs (x-vercel-id) on all workflow events for correlating request logs with workflow executions -
#1364
94c14c7Thanks @karthikscale3! - Strip only ref/payload fields from eventData when resolveData is 'none', preserving all other metadata
4.1.0-beta.12
Patch Changes
- #1317
825417aThanks @TooTallNate! - Add optionalresolveLatestDeploymentId()method to theWorldinterface for resolving the most recent deployment ID for the current deployment's environment
4.1.0-beta.11
Patch Changes
- #1287
d8daa2aThanks @VaguelySerious! - Addworld.events.get(runId, eventId)to the Storage interface for fetching a single event by ID.
4.1.0-beta.10
Patch Changes
- #1273
11dcb64Thanks @VaguelySerious! - Locally validate run ID to be ULID when passed by user
4.1.0-beta.9
Patch Changes
- #1270
adfe8b6Thanks @pranaygp! - Prevent hooks from being resumed via the public webhook endpoint by default. AddisWebhookoption tocreateHook()to opt-in to public resumption.createWebhook()always setsisWebhook: true.
4.1.0-beta.8
Patch Changes
4.1.0-beta.7
Patch Changes
4.1.0-beta.6
Patch Changes
- #956
b65bb07Thanks @TooTallNate! - OverloadgetEncryptionKeyForRuninterface: acceptWorkflowRun(preferred) orrunIdstring with optional opaque world-specific context forstart()
4.1.0-beta.5
Patch Changes
-
#979
6e72b29Thanks @TooTallNate! - AddWorld.getEncryptionKeyForRun()and thread encryption key through serialization layer -
#1057
5e06a7cThanks @pranaygp! - Materialize waits as entities to prevent duplicate wait_completed events@workflow/core: Handle 409 conflict gracefully when creating wait_completed events, preventing crashes when multiple concurrent invocations race to complete the same wait@workflow/world: AddWaittype,WaitSchema, andWaitStatusSchemaexports; add optionalwaitfield toEventResult@workflow/world-local: Materialize wait entities on wait_created/wait_completed with duplicate detection; clean up waits on terminal run states@workflow/world-postgres: Addworkflow_waitstable withwait_statusenum; materialize wait entities with conditional writes for duplicate prevention; clean up waits on terminal run states
-
#1081
5487983Thanks @TooTallNate! - Add optionalclose()method to theWorldinterface for releasing resources held by a World implementation
4.1.0-beta.4
Patch Changes
- #966
56f2221Thanks @VaguelySerious! - Add 429 throttle retry handling and 500 server error retry with exponential backoff to the workflow and step runtimes
4.1.0-beta.3
Patch Changes
-
#954
d9e9859Thanks @TooTallNate! - Generate runId client-side in start() and simplify runId typesThe
runIdis now generated client-side using ULID before serialization, rather than waiting for the server response. This simplifies theStreamerinterface andWorkflowServerWritableStreamto acceptstringinstead ofstring | Promise<string>forrunId.
4.1.0-beta.2
Patch Changes
-
#922
0ce46b9Thanks @pranaygp! - Add support for custom headers in queue messages -
#867
c54ba21Thanks @TooTallNate! - Add optionalwriteToStreamMultifunction to the World interface
4.1.0-beta.1
Minor Changes
-
#621
4966b72Thanks @pranaygp! - Add backwards compatibility for runs created with different spec versions- Add
RunNotSupportedErrorfor runs requiring newer world versions - Add semver-based version comparison utilities
- Legacy runs (< 4.1): route to legacy handlers
run_cancelled: skip event storage, directly update runwait_completed: store event only (no entity mutation)- Unknown legacy events: throw error
- Add
-
#621
4966b72Thanks @pranaygp! - BREAKING: Storage interface is now read-only; all mutations go throughevents.create()- Remove
cancel,pause,resumefromruns - Remove
create,updatefromruns,steps,hooks - Add run lifecycle events:
run_created,run_started,run_completed,run_failed,run_cancelled - Add
step_createdevent type - Remove
fatalfield fromstep_failed(terminal failure is now implicit) - Add
step_retryingevent with error info for retriable failures
- Remove
Patch Changes
-
#621
4966b72Thanks @pranaygp! - Addhook_conflictevent type for duplicate token detection- World returns
hook_conflictevent whenhook_createduses an existing token - Add
HOOK_CONFLICTerror slug
- World returns
-
#853
1060f9dThanks @TooTallNate! - BREAKING CHANGE: Change user input/output to be binary data (Uint8Array) at the World interfaceThis 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
4966b72Thanks @pranaygp! - Remove deprecatedworkflow_completed,workflow_failed, andworkflow_startedevents in favor ofrun_completed,run_failed, andrun_startedevents. -
#621
4966b72Thanks @pranaygp! - AddspecVersionproperty to World interface- All worlds expose
@workflow/worldpackage version for protocol compatibility - Stored in
run_createdevent andWorkflowRunschema - Displayed in observability UI
- All worlds expose
4.0.1-beta.13
Patch Changes
-
#743
61fdb41Thanks @TooTallNate! - AddHealthCheckPayloadSchema -
#772
0aa835fThanks @TooTallNate! - Add typedoc comments toHookinterface
4.0.1-beta.12
Patch Changes
- #751
dd3db13Thanks @VaguelySerious! - Remove the unused paused/resumed run events and states- Remove
run_pausedandrun_resumedevent types - Remove
pausedstatus fromWorkflowRunStatus - Remove
PauseWorkflowRunParamsandResumeWorkflowRunParamstypes - Remove
pauseWorkflowRunandresumeWorkflowRunfunctions from world-vercel
- Remove
4.0.1-beta.11
Patch Changes
- #455
e3f0390Thanks @karthikscale3! - Added Control Flow Graph extraction from Workflows and extended manifest.json's schema to incorporate the graph structure into it. Refactored manifest generation to pass manifest as a parameter instead of using instance state. Add e2e tests for manifest validation across all builders.
4.0.1-beta.10
Patch Changes
- #574
c82b467Thanks @VaguelySerious! - Add listByRunId endpoint to Streamer interface
4.0.1-beta.9
Patch Changes
57a2c32: Add expiredAt attribute to Run
4.0.1-beta.8
Patch Changes
4.0.1-beta.7
Patch Changes
fb9fd0f: Add support for closure scope vars in step functions
4.0.1-beta.6
Patch Changes
4b70739: Require specifying runId when writing to stream
4.0.1-beta.5
Patch Changes
00b0bb9: Add error stack propogation to steps and runs
4.0.1-beta.4
Patch Changes
f973954: Update license to Apache 2.0
4.0.1-beta.3
Patch Changes
20d51f0: Add optionalretryAfterproperty toStepinterface70be894: Implementsleep()natively into the workflow runtime
4.0.1-beta.2
Patch Changes
d3a4ed3: Remove@types/json-schemadependency (not used)d3a4ed3: Remove@types/nodefrom being a peerDependency7868434: RemoveAuthProviderinterface fromWorldand associated implementations
4.0.1-beta.1
Patch Changes
- 8422a32: Update Workflow naming convention
- e46294f: Add "license" and "repository" fields to
package.jsonfile
4.0.1-beta.0
Patch Changes
- fcf63d0: Initial publish