Releases: temporalio/sdk-typescript
Releases · temporalio/sdk-typescript
Release list
v1.22.0
What's Changed
Added
- Experimental: Added
TypeInfoandTransferTypeConverterto@temporalio/commonfor converting
application values to and from serialization-friendly transfer types and supplying converter-specific hints. - Workers can now configure the number of activity slots reserved for eager execution per
workflow task withmaxEagerActivityReservationsPerWorkflowTask. Setting it to zero disables
eager activity execution. - UpdateWorkflow-backed Nexus operations. A Temporal Nexus operation can now be backed by a Workflow
Update viaTemporalNexusClient.getWorkflowHandle(...).update(...), in addition to a Workflow run.
The Update request carries the Nexus request ID (for deduplication), the request links, and a
completion callback bearing the operation token, so the Update's completion is delivered back to the
Nexus caller. Only asynchronous,ACCEPTED-stage updates are supported (a callback URL is
required); an update that has already completed is returned synchronously, and a completed-with-error
update (e.g. a validation rejection) surfaces as a failed Nexus operation. Cancellation is
customizable via thecancelWorkflowUpdatehandler option; the default rejects with a
NOT_IMPLEMENTEDhandler error. @temporalio/ai-sdk:listToolsActivity/callToolActivitynow reuse a single MCP client connection
across repeated invocations for the same server instead of creating and closing one on every call.
Configure the idle window via the newmcpConnectionIdleTimeoutoption oncreateActivitiesand
AiSdkPluginOptions(defaults to 5 minutes); passmcpConnectionIdleTimeout: 0to opt out and restore
the original behavior for MCP servers/transports that don't tolerate a reused or concurrent session.
Changed
- Updated Core to
65b25ada(temporal-core0.6.0)
Fixed
- strands: Declare
zodas a peer dependency. - workflow-streams:
WorkflowStream.onPollno longer serves a stale log index for a poll that
was parked across atruncate()call, which could silently skip events. - Workflows no longer retain completion state when a child Workflow fails or is cancelled before starting.
- Local Activity tests now use
makeTestFunctionto manage their test environment.
Security
- Bumped the vendored
quinn-protoin@temporalio/core-bridge'sCargo.lockfrom 0.11.14 to
0.11.15, clearing GHSA-4w2j-m93h-cj5j / RUSTSEC-2026-0185 (unbounded out-of-order stream
reassembly DoS) for downstream image scanners.
New Contributors
- @Bathula-Adiseshu made their first contribution in #2267
- @aayushbaluni made their first contribution in #2036
- @wankhede04 made their first contribution in #2223
- @becho2 made their first contribution in #2293
Full Changelog: v1.21.1...v1.22.0
v1.21.1
What's Changed
- AI-338: drive langsmith workflow tracing from the SDK-provided AsyncLocalStorage by @xumaple in #2217
Fixed
- fix(strands): ignore @aws-sdk/client-s3 in bundler by @brianstrauch in #2254
Full Changelog: v1.21.0...v1.21.1
v1.21.0
What's Changed
Added
- Prerelease, Experimental: You can now configure external storage on your
DataConvertervia the new
externalStorageoption to offload large payloads out of Temporal Server. When set, payloads larger
than the configuredpayloadSizeThresholdare stored via yourStorageDriver(s) and retrieved
transparently, keeping large arguments, return values, and heartbeat details out of the Temporal Server
database.ExternalStorageand theStorageDrivertypes are exported from@temporalio/common. - Prerelease, Experimental: AWS S3 external storage driver: This release introduces a
package which
can be used with external storage to offload large payloads to S3 buckets in AWS instead of inlining them
into workflow history. - Prerelease, Experimental: GCP GCS external storage driver: This release introduces a
package which
can be used with external storage to offload large payloads to GCS buckets in GCP instead of inlining them
into workflow history. ResourceBasedControllercan now be shared by resource-based tuners across multiple Workers in the same process.- Experimental New
@temporalio/strands-agentspackage for building workflows with Strand Agents. - Experimental:
@temporalio/openai-agentsnow supports streaming model events from Workflows.
Breaking Changes 💥
- By default, workers now proactively validate outbound payload/memo sizes before sending: a field
over the warn threshold is logged
([TMPRL1103]atWARN) but still sent, while a task completion over the error limit is failed
retryably ([TMPRL1103]atERROR) instead of sent. Previously these reached the server, which
terminated the workflow or failed the activity non-retryably; failing retryably instead lets a
corrected workflow or activity be redeployed and recover. Tune warn thresholds via
NativeConnectionOptions.payloadLimits. If you use a proxy between the worker and server that
alters the size of payloads (e.g. compression, encryption, external storage), it is advised that
you disable size enforcement by settingdisablePayloadErrorLimit: trueon the worker. @temporalio/ai-sdknow targets Vercel AI SDK v7, requiring Node 22.12.0+.
Changed
- User metadata fields (staticSummary, staticDetails, currentDetails, activity summary, timer
summary) are no longer marked as experimental.
Fixed
- Nexus operation handlers now preserve
nexus.HandlerErrorvalues thrown by payload codecs and converters. temporal_worker_task_slots_usedno longer counts reserved but unused task slots as in use.- When worker heartbeats are enabled, host CPU and memory are sampled at the configured heartbeat interval rather than every 100ms.
Full Changelog: v1.20.0...v1.21.0
v1.20.3
What's Changed
Fixed
- Workflow Bundler: further strengthening of the webpack_module_cache replacement logic, addressing regressions introduced by the fix in 1.20.1.
- @temporalio/langsmith: install Workflow-bundle rewrites via compiler.webpack so they work under non-hoisting node_modules layouts (e.g. pnpm hoist=false).
- @temporalio/langsmith: emit the LangSmith run fire-and-forget rather than awaiting it, removing a yield point that reordered commands under signalWithStart.
Full Changelog: v1.20.2...v1.20.3
v1.20.2
What's Changed
- fix(langsmith): resolve workflow interceptor module by absolute path by @chris-olszewski in #2181
Full Changelog: v1.20.1...v1.20.2
v1.15.1
v1.20.1
v1.20.0
v1.20.0
Added
- New
@temporalio/langsmithpackage for tracing Temporal apps to LangSmith.
It hooks the client, Workflow, and Activity interceptors so a Workflow and the Activities it runs show up
as a single LangSmith run tree.
Changed
- protobufjs bumped to ^7.6.4
- Updated Core to
5df57f6d. Package-visible changes from this update include:NativeConnectioninitialization now retries without gRPC gzip compression if the server
cannot decompress the eagerGetSystemInfocall.- Workflow replay now honors SDK flags already recorded in history even when the server does not
advertise SDK metadata support. - OTLP metric export failures from Core's periodic metric reader are now logged through Core
telemetry.
@temporalio/openai-agents: Query handlers and update validators now derive trace span IDs from the SDK's
replay-safe random source instead of a private seeded PRNG. This removes the old seed-collision workaround
and gives read-only handlers distinct, well-formed span IDs.
Full Changelog: v1.19.0...v1.20.0