Immutable
release. Only release title and notes can be modified.
@workflow/core@4.6.0
- #1853
f2ad726@TooTallNate - Add wire-level framing for byte streams (type: 'bytes') so consumers can identify chunk boundaries — a prerequisite for transparent auto-reconnect. - #2397
20a6d73@pranaygp -start({ deploymentId: 'latest' })is now a no-op in Worlds that don't support atomic deployments (local dev, Postgres) instead of throwing — it logs a warning and targets the current deployment, so workflows that use'latest'on Vercel still run locally. - #2473
015452a@pranaygp - Drain consecutively consumable replay events in a single synchronous pass instead of oneprocess.nextTickper event, removing O(N) macrotask hops from replay. - #2768
d0e4191@VaguelySerious - Correct the byte-stream framing capability cutoff so framed byte streams are never written to deployments that cannot decode them - #2522
5a4c6cf@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. - #2511
db8a2c4@VaguelySerious - EmitworkflowNameon per-step events (step_created,step_completed) so Worlds can access it without additional queries - #2471
170ea96@pranaygp - Cache the compiled workflow-bundlevm.Scriptper process so replays reuse the compiled bundle instead of re-parsing it on every iteration. - #2472
0a5e2aa@pranaygp - Memoize hydrated step return values across inline replay iterations, turning the per-invocation step-result decrypt+parse cost from O(N²) to O(N) for sequential workflows. Only primitive results are cached, so deterministic replay is preserved. - #2565
a4dd59b@ijjk - Collapse default workflow build output to a single completion summary and move detailed progress logs behind DEBUG=workflow:build. - #2445
67fcf1a@pranaygp - Treat transient world-vercel transport failures as retryable, surfacing them as aTRANSPORTtypeWorkflowWorldError, to be retried by the queue instead of failing the run.
@workflow/cli@4.3.0
- #2467
3bb5de1@pranaygp - Add a--urlflag toinspect/webthat prints the run's dashboard deep link to stdout and exits (no browser, no server), and fix the Vercel dashboard URL to use the current…/workflows/runs/<id>?environment=<env>route (respecting--env).
@workflow/world@4.2.1
- #2295
f9119d4@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
db8a2c4@VaguelySerious - EmitworkflowNameon per-step events (step_created,step_completed) so Worlds can access it without additional queries - #2580
9fba14e@karthikscale3 - Send optional client-side event occurrence timestamps through world event creation. - #2414
2a688f0@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
6dbe2de@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
87d213c@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.
@workflow/world-local@4.2.1
- #2534
ab24408@NathanColosimo - Updateundicito 7.28.0. - #2295
f9119d4@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. - #2508
b06fa65@karthikscale3 - Add run IDs on world storage telemetry spans. - #2747
6dbe2de@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. - #2667
af6ff4f@VaguelySerious - Scope untagged startup recovery to untagged runs so a dev server no longer re-enqueues tagged runs (e.g. left behind by the vitest harness in a shared data directory), which previously failedrun_startedwith "did not return the run entity".
@workflow/world-postgres@4.3.0
- #2705
50492d7@NathanColosimo - Move Workflow Postgres enum types into the workflow schema. - #2295
f9119d4@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. - #2714
b534da2@NathanColosimo - Fix Postgres step lifecycle event ordering so a late concurrent step_started is no longer logged after step_completed. - #2580
9fba14e@karthikscale3 - Send optional client-side event occurrence timestamps through world event creation. - #2644
3eb7e97@NathanColosimo - Rename the Postgres setup command tobootstrap. - #2657
92ddf7a@NathanColosimo - Defer loopback worker startup
@workflow/world-vercel@4.5.0
- #2414
2a688f0@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. - #2534
ab24408@NathanColosimo - Updateundicito 7.28.0. - #2580
9fba14e@karthikscale3 - Send optional client-side event occurrence timestamps through world event creation. - #2508
b06fa65@karthikscale3 - Add run IDs on world storage telemetry spans. - #2445
67fcf1a@pranaygp - Treat transient world-vercel transport failures as retryable, surfacing them as aTRANSPORTtypeWorkflowWorldError, to be retried by the queue instead of failing the run. - #2414
2a688f0@github-actions - Skip transferring event payload bytes when listing events withresolveData: 'none'using the v4 API.
@workflow/world-testing@4.1.11
- #2462
e377108@pranaygp - Bump thehonodependency to 4.12.25 to resolve CVE-2026-54290 (GHSA-88fw-hqm2-52qc, CORS middleware reflects any origin with credentials when origin defaults to the wildcard).
@workflow/web@4.1.12
@workflow/web-shared@4.1.12
- #2581
7b4998f@karthikscale3 - Show event occurrence timestamps in the trace detail panel when present. - #2619
a0c030a@mitul-s - Extendcnwith custom tailwind-merge class groups for the design-system typography and material utilities, and move it to its ownlib/cnmodule. - #2608
9b972a7@karthikscale3 - Thread workflow event occurrence timestamps into derived observability entity data. - #2328
161431b@mitul-s - Show relative time display card on date hover - #2474
0dd2db8@mitul-s - Yse solid gray for queued trace segment
@workflow/ai@4.2.0
- #2537
a06f425@VaguelySerious -WorkflowChatTransportnow repairs UI message stream part framing, so duplicated or interleaved durable stream writes no longer crash the AI SDK consumer withReceived text-delta for missing text part. - #2440
80ccca0@pranaygp - Re-release@workflow/aion the 4.x stable line. Versions 5.0.0, 6.0.0, and 7.0.0 were published to thelatestdist-tag in error: a changesets peer-dependency misconfiguration force-bumped a full major on everyworkflowminor release, even though@workflow/aihad no breaking changes. Those versions are deprecated —^4remains the correct stable range. - #2730
cfb8f77@NathanColosimo - Continue DurableAgent tool loops whenever a model step contains tool calls, regardless of the reported finish reason. - #2082
280a34a@VaguelySerious -WorkflowChatTransportnow drops orphan UI chunks (deltas/ends with no matching*-startin the resumed window) when reconnecting with aninitialStartIndexnot matching a UI chunk boundary, instead of throwing. - #2699
ef60d31@VaguelySerious - DurableAgent now recovers from invalid tool-call input by returning the validation error to the model instead of aborting the stream. - #2635
cee802d@NathanColosimo - Suppress chat transport console errors for intentional AbortError stream closes.
@workflow/swc-plugin@4.1.2
- #2398
b357137@pranaygp - Fix dead-code elimination stripping module-scope declarations referenced only by a destructuring-default initializer (e.g.const { ttl = TTL } = options;), which caused a runtimeReferenceErrorwhen the default fired.
@workflow/builders@4.1.1
- #2725
c4bc5a1@NathanColosimo - Share framework project root detection across Astro, Next.js, and SvelteKit. - #2546
ba62f57@ijjk - Optimize eager workflow discovery and improve default eager build compatibility. Also fixes NestJS builds pulling SDK build-tooling into the runtime steps bundle, which crashed step handlers at runtime. - #2702
504cf88@NathanColosimo - Fix workflow graph extraction when transformed step proxies include pure annotations. - #2455
578f7e1@TooTallNate - Fix Next.js lazy discovery workflow IDs for monorepo workspace packages by resolving module specifiers relative to the app package instead of the tracing root. - #2594
8bbf331@ijjk - Fix fast workflow discovery for JS files imported through basenames like./hello.step. - #2565
a4dd59b@ijjk - Collapse default workflow build output to a single completion summary and move detailed progress logs behind DEBUG=workflow:build. - #2324
4c49cc8@VaguelySerious - Decode escaped workflowCode template literals before graph extraction so unicode-escape identifiers parse correctly. - #2545
c5d14c8@ijjk - Remove the Next.js lazy discovery/deferred builder path and theworkflows.lazyDiscoveryoption. - #2427
8d1f299@ijjk - Add.swcto the builder's default gitignore handling.
@workflow/next@4.1.0
- #2545
c5d14c8@ijjk - Remove the Next.js lazy discovery/deferred builder path and theworkflows.lazyDiscoveryoption. - #2417
977a4a2@TooTallNate - Clarify that workflow packages removed fromserverExternalPackagesare still compiled during the build. - #2725
c4bc5a1@NathanColosimo - Share framework project root detection across Astro, Next.js, and SvelteKit. - #2546
ba62f57@ijjk - Optimize eager workflow discovery and improve default eager build compatibility. Also fixes NestJS builds pulling SDK build-tooling into the runtime steps bundle, which crashed step handlers at runtime. - #2455
578f7e1@TooTallNate - Fix Next.js lazy discovery workflow IDs for monorepo workspace packages by resolving module specifiers relative to the app package instead of the tracing root. - #2729
01265b7@NathanColosimo - Derive the workflow builder project root from Next.js workspace root configuration. - #2538
aa9919b@NathanColosimo - Prewarm the Workflow SWC plugin cache before Next.js starts parallel loader workers. - #2564
8db7b7f@NathanColosimo - Discover workflows imported by Next.js instrumentation, middleware, and proxy entrypoints.
@workflow/nitro@4.1.2
- #2645
db90c40@NathanColosimo - Route Nitro Vercel workflow HTTP endpoints through generated Vercel functions. - #2722
980933f@NathanColosimo - Pass configured Nitro workflow scan directories through to Workflow builders. - #2572
af08c04@NathanColosimo - Reload rebuilt step bundles during Vite development. - #2713
f927d69@NathanColosimo - Use Nitro's workspace root for workflow module resolution so Nitro and Nuxt monorepo apps can import sibling workspace packages without extra config.
@workflow/nuxt@4.0.12
- #2713
f927d69@NathanColosimo - Use Nitro's workspace root for workflow module resolution so Nitro and Nuxt monorepo apps can import sibling workspace packages without extra config.
@workflow/sveltekit@4.0.11
- #2725
c4bc5a1@NathanColosimo - Share framework project root detection across Astro, Next.js, and SvelteKit.
@workflow/astro@4.0.11
- #2457
c4ed84f@pranaygp - Bump theastrodev dependency to 6.4.6 to resolve CVE-2026-54299 (GHSA-2pvr-wf23-7pc7, host header SSRF in prerendered error page fetch). - #2725
c4bc5a1@NathanColosimo - Share framework project root detection across Astro, Next.js, and SvelteKit.
@workflow/nest@4.0.12
- #2546
ba62f57@ijjk - Optimize eager workflow discovery and improve default eager build compatibility. Also fixes NestJS builds pulling SDK build-tooling into the runtime steps bundle, which crashed step handlers at runtime.
@workflow/vitest@4.0.12
- #2726
4b42249@NathanColosimo - Derive the Workflow Vitest cwd from the resolved Vitest project root. - #2351
2783ae3@VaguelySerious - Bundle project-local imports into the test step bundle instead of externalizing them, fixing module resolution errors when bundles are loaded by Node's native ESM loader