Version Packages (beta)#340
Open
github-actions[bot] wants to merge 1 commit into
Open
Conversation
ea4bb93 to
c43e721
Compare
9e3825c to
fc6a265
Compare
8322a96 to
9d2a926
Compare
253b141 to
a490f58
Compare
0d23250 to
503a929
Compare
c875ba4 to
c58cae6
Compare
050f484 to
8633ebb
Compare
974eac2 to
b0d0561
Compare
3c8356c to
234412a
Compare
6278396 to
55e1765
Compare
be0cb86 to
7994629
Compare
7aac31d to
b8a337c
Compare
c2713b6 to
ddc8a79
Compare
a9dafb2 to
d674d6f
Compare
5e0ca84 to
a51910b
Compare
5d22311 to
5b448ce
Compare
6a4bbb2 to
3ae0ae2
Compare
04e3465 to
bb6ff9a
Compare
9277095 to
8262c2d
Compare
3fc0b05 to
011d482
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.
mainis currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, runchangeset pre exitonmain.Releases
@workflow/core@5.0.0-beta.20
Minor Changes
#2525
7aee0d4Thanks @TooTallNate! - Derive the workflow VM's deterministic RNG seed fromrunId:workflowName:deploymentId(instead of including the run'sstartedAt) and its initial fixed clock from the ULID timestamp embedded inrunId. These inputs are all available the moment a queue message arrives, decoupling VM setup from therun_startedround-trip. Note: this changes the seed-derived value sequence (step/hook correlation IDs, nanoids, random values) for a given run, so runs started before this change must not be replayed across the upgrade.#2516
84ccd40Thanks @VaguelySerious! - Inline execution now runs up toWORKFLOW_MAX_INLINE_STEPS(default 3) steps in parallel per suspension, each lazily created. An opt-inWORKFLOW_OPTIMISTIC_INLINE_START(default off) additionally starts step bodies beforestep_startedis confirmed, reconciling the in-flight start before the terminal write so a lost create-claim is discarded; it is off by default because under contention a step body can run more than once (e.g. two runs writing to the workflow stream can corrupt it), so only enable it for idempotent steps.Patch Changes
#2473
16b3670Thanks @pranaygp! - Drain consecutively consumable replay events in a single synchronous pass instead of oneprocess.nextTickper event, removing O(N) macrotask hops from replay.#2475
2074f91Thanks @pranaygp! - Skip the per-step incrementalevents.listround-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.sinceCursorcontract so a step-terminalevents.createcan return the event-log delta since that cursor (viaEventResult.events/cursor/hasMore).Return the inline delta from a step-terminal write when
sinceCursoris supplied, computed identically toevents.listso the consumed prefix cannot skew from the server log.Forward
sinceCursorover the v4 wire in@workflow/world-vercelso the server can return the delta on a step-terminal response; older servers ignore it and the runtime falls back toevents.list.#2478
e7ef9d8Thanks @pranaygp! - Lazy inline step start: the owned-inline runtime path now sends a singlestep_startedcarrying the step input, letting the world create the step on the fly and saving one round-trip per inline step.@workflow/world:step_startedevent data accepts an optionalinput, andEventResultgains astepCreatedownership signal.@workflow/world-local:step_startedwith input atomically creates the step plus a syntheticstep_createdevent; a lazystep_startedfor an already-existing step throwsEntityConflictErrorso 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 onstep_startedover the v4 wire and threads the server'sstepCreatedsignal intoEventResult.#2522
722bb7cThanks @VaguelySerious! - Cache the local dev server port per process so workflow replays no longer re-run OS port discovery (which spawnslsofon macOS, ~60ms) on every replay.#2527
de91f20Thanks @karthikscale3! - RefineWORKFLOW_TRACE_MODE=linked(the default) so each queue-deliveredworkflow.execute/step.executespan nests under its local delivery context instead of starting a new trace root.#2511
ab2e9b8Thanks @VaguelySerious! - EmitworkflowNameon per-step events (step_created,step_completed, and lazy-startstep_started) so Worlds can access it without additional queries#2471
939890dThanks @pranaygp! - Cache the compiled workflow-bundlevm.Scriptper process so replays reuse the compiled bundle instead of re-parsing it on every iteration.#2490
a92c16dThanks @pranaygp! - Reject an explicit empty-stringtokenincreateHook(). Omit the option (or passundefined) to get a randomly generated token, or pass a non-empty string.Updated dependencies [
2074f91,e7ef9d8,ab2e9b8,1332da3,fb5abbb]:workflow@5.0.0-beta.20
Minor Changes
84ccd40Thanks @VaguelySerious! - Inline execution now runs up toWORKFLOW_MAX_INLINE_STEPS(default 3) steps in parallel per suspension, each lazily created. An opt-inWORKFLOW_OPTIMISTIC_INLINE_START(default off) additionally starts step bodies beforestep_startedis confirmed, reconciling the in-flight start before the terminal write so a lost create-claim is discarded; it is off by default because under contention a step body can run more than once (e.g. two runs writing to the workflow stream can corrupt it), so only enable it for idempotent steps.Patch Changes
#2475
2074f91Thanks @pranaygp! - Skip the per-step incrementalevents.listround-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.sinceCursorcontract so a step-terminalevents.createcan return the event-log delta since that cursor (viaEventResult.events/cursor/hasMore).Return the inline delta from a step-terminal write when
sinceCursoris supplied, computed identically toevents.listso the consumed prefix cannot skew from the server log.Forward
sinceCursorover the v4 wire in@workflow/world-vercelso the server can return the delta on a step-terminal response; older servers ignore it and the runtime falls back toevents.list.#2478
e7ef9d8Thanks @pranaygp! - Lazy inline step start: the owned-inline runtime path now sends a singlestep_startedcarrying the step input, letting the world create the step on the fly and saving one round-trip per inline step.@workflow/world:step_startedevent data accepts an optionalinput, andEventResultgains astepCreatedownership signal.@workflow/world-local:step_startedwith input atomically creates the step plus a syntheticstep_createdevent; a lazystep_startedfor an already-existing step throwsEntityConflictErrorso 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 onstep_startedover the v4 wire and threads the server'sstepCreatedsignal intoEventResult.Updated dependencies [
7aee0d4,16b3670,2074f91,e7ef9d8,722bb7c,de91f20,ab2e9b8,84ccd40,939890d,a92c16d]:@workflow/astro@5.0.0-beta.20
Patch Changes
@workflow/builders@5.0.0-beta.20
Patch Changes
7aee0d4,16b3670,2074f91,e7ef9d8,722bb7c,de91f20,ab2e9b8,84ccd40,939890d,a92c16d]:@workflow/cli@5.0.0-beta.20
Patch Changes
7aee0d4,16b3670,2074f91,e7ef9d8,722bb7c,de91f20,ab2e9b8,84ccd40,939890d,a92c16d,1332da3,fb5abbb]:@workflow/nest@5.0.0-beta.20
Patch Changes
@workflow/next@5.0.0-beta.20
Patch Changes
7aee0d4,16b3670,2074f91,e7ef9d8,722bb7c,de91f20,ab2e9b8,84ccd40,939890d,a92c16d]:@workflow/nitro@5.0.0-beta.20
Patch Changes
7aee0d4,16b3670,2074f91,e7ef9d8,722bb7c,de91f20,ab2e9b8,84ccd40,939890d,a92c16d]:@workflow/nuxt@5.0.0-beta.20
Patch Changes
@workflow/rollup@5.0.0-beta.20
Patch Changes
@workflow/sveltekit@5.0.0-beta.20
Patch Changes
@workflow/vite@5.0.0-beta.20
Patch Changes
@workflow/vitest@5.0.0-beta.20
Patch Changes
7aee0d4,16b3670,2074f91,e7ef9d8,722bb7c,de91f20,ab2e9b8,84ccd40,939890d,a92c16d,1332da3]:@workflow/web-shared@5.0.0-beta.20
Patch Changes
#2520
d575c7eThanks @mitul-s! - Show pending runs with gray animated stripes instead of the blue running indicator in the new trace viewer.Updated dependencies [
7aee0d4,16b3670,2074f91,e7ef9d8,722bb7c,de91f20,ab2e9b8,84ccd40,939890d,a92c16d]:@workflow/world@5.0.0-beta.12
Patch Changes
#2475
2074f91Thanks @pranaygp! - Skip the per-step incrementalevents.listround-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.sinceCursorcontract so a step-terminalevents.createcan return the event-log delta since that cursor (viaEventResult.events/cursor/hasMore).Return the inline delta from a step-terminal write when
sinceCursoris supplied, computed identically toevents.listso the consumed prefix cannot skew from the server log.Forward
sinceCursorover the v4 wire in@workflow/world-vercelso the server can return the delta on a step-terminal response; older servers ignore it and the runtime falls back toevents.list.#2478
e7ef9d8Thanks @pranaygp! - Lazy inline step start: the owned-inline runtime path now sends a singlestep_startedcarrying the step input, letting the world create the step on the fly and saving one round-trip per inline step.@workflow/world:step_startedevent data accepts an optionalinput, andEventResultgains astepCreatedownership signal.@workflow/world-local:step_startedwith input atomically creates the step plus a syntheticstep_createdevent; a lazystep_startedfor an already-existing step throwsEntityConflictErrorso 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 onstep_startedover the v4 wire and threads the server'sstepCreatedsignal intoEventResult.#2511
ab2e9b8Thanks @VaguelySerious! - EmitworkflowNameon per-step events (step_created,step_completed, and lazy-startstep_started) so Worlds can access it without additional queries@workflow/world-local@5.0.0-beta.20
Patch Changes
#2475
2074f91Thanks @pranaygp! - Skip the per-step incrementalevents.listround-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.sinceCursorcontract so a step-terminalevents.createcan return the event-log delta since that cursor (viaEventResult.events/cursor/hasMore).Return the inline delta from a step-terminal write when
sinceCursoris supplied, computed identically toevents.listso the consumed prefix cannot skew from the server log.Forward
sinceCursorover the v4 wire in@workflow/world-vercelso the server can return the delta on a step-terminal response; older servers ignore it and the runtime falls back toevents.list.#2478
e7ef9d8Thanks @pranaygp! - Lazy inline step start: the owned-inline runtime path now sends a singlestep_startedcarrying the step input, letting the world create the step on the fly and saving one round-trip per inline step.@workflow/world:step_startedevent data accepts an optionalinput, andEventResultgains astepCreatedownership signal.@workflow/world-local:step_startedwith input atomically creates the step plus a syntheticstep_createdevent; a lazystep_startedfor an already-existing step throwsEntityConflictErrorso 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 onstep_startedover the v4 wire and threads the server'sstepCreatedsignal intoEventResult.#2508
1332da3Thanks @karthikscale3! - Add run IDs on world storage telemetry spans.Updated dependencies [
2074f91,e7ef9d8,ab2e9b8]:@workflow/world-postgres@5.0.0-beta.18
Patch Changes
#2478
e7ef9d8Thanks @pranaygp! - Lazy inline step start: the owned-inline runtime path now sends a singlestep_startedcarrying the step input, letting the world create the step on the fly and saving one round-trip per inline step.@workflow/world:step_startedevent data accepts an optionalinput, andEventResultgains astepCreatedownership signal.@workflow/world-local:step_startedwith input atomically creates the step plus a syntheticstep_createdevent; a lazystep_startedfor an already-existing step throwsEntityConflictErrorso 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 onstep_startedover the v4 wire and threads the server'sstepCreatedsignal intoEventResult.Updated dependencies [
2074f91,e7ef9d8,ab2e9b8,1332da3]:@workflow/world-testing@5.0.0-beta.20
Patch Changes
7aee0d4,16b3670,2074f91,e7ef9d8,722bb7c,de91f20,ab2e9b8,84ccd40,939890d,a92c16d]:@workflow/world-vercel@5.0.0-beta.19
Patch Changes
#2475
2074f91Thanks @pranaygp! - Skip the per-step incrementalevents.listround-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.sinceCursorcontract so a step-terminalevents.createcan return the event-log delta since that cursor (viaEventResult.events/cursor/hasMore).Return the inline delta from a step-terminal write when
sinceCursoris supplied, computed identically toevents.listso the consumed prefix cannot skew from the server log.Forward
sinceCursorover the v4 wire in@workflow/world-vercelso the server can return the delta on a step-terminal response; older servers ignore it and the runtime falls back toevents.list.#2478
e7ef9d8Thanks @pranaygp! - Lazy inline step start: the owned-inline runtime path now sends a singlestep_startedcarrying the step input, letting the world create the step on the fly and saving one round-trip per inline step.@workflow/world:step_startedevent data accepts an optionalinput, andEventResultgains astepCreatedownership signal.@workflow/world-local:step_startedwith input atomically creates the step plus a syntheticstep_createdevent; a lazystep_startedfor an already-existing step throwsEntityConflictErrorso 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 onstep_startedover the v4 wire and threads the server'sstepCreatedsignal intoEventResult.#2508
1332da3Thanks @karthikscale3! - Add run IDs on world storage telemetry spans.#2514
fb5abbbThanks @VaguelySerious! - Route v4 event requests through the globalfetchso they appear in the Vercel observability log viewer's outgoing-requests view again.Updated dependencies [
2074f91,e7ef9d8,ab2e9b8]:@workflow/web@5.0.0-beta.20