Skip to content

Releases: temporalio/sdk-typescript

v1.22.0

Choose a tag to compare

@chris-olszewski chris-olszewski released this 05 Aug 14:42
55287d2

What's Changed

Added

  • Experimental: Added TypeInfo and TransferTypeConverter to @temporalio/common for 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 with maxEagerActivityReservationsPerWorkflowTask. Setting it to zero disables
    eager activity execution.
  • UpdateWorkflow-backed Nexus operations. A Temporal Nexus operation can now be backed by a Workflow
    Update via TemporalNexusClient.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 the cancelWorkflowUpdate handler option; the default rejects with a
    NOT_IMPLEMENTED handler error.
  • @temporalio/ai-sdk: listToolsActivity/callToolActivity now 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 new mcpConnectionIdleTimeout option on createActivities and
    AiSdkPluginOptions (defaults to 5 minutes); pass mcpConnectionIdleTimeout: 0 to 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-core 0.6.0)

Fixed

  • strands: Declare zod as a peer dependency.
  • workflow-streams: WorkflowStream.onPoll no longer serves a stale log index for a poll that
    was parked across a truncate() 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 makeTestFunction to manage their test environment.

Security

  • Bumped the vendored quinn-proto in @temporalio/core-bridge's Cargo.lock from 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

Full Changelog: v1.21.1...v1.22.0

v1.21.1

Choose a tag to compare

@THardy98 THardy98 released this 24 Jul 14:32
2503d4b

What's Changed

  • AI-338: drive langsmith workflow tracing from the SDK-provided AsyncLocalStorage by @xumaple in #2217

Fixed

Full Changelog: v1.21.0...v1.21.1

v1.21.0

Choose a tag to compare

@chris-olszewski chris-olszewski released this 23 Jul 16:00
2fd61e9

What's Changed

Added

  • Prerelease, Experimental: You can now configure external storage on your DataConverter via the new
    externalStorage option to offload large payloads out of Temporal Server. When set, payloads larger
    than the configured payloadSizeThreshold are stored via your StorageDriver(s) and retrieved
    transparently, keeping large arguments, return values, and heartbeat details out of the Temporal Server
    database. ExternalStorage and the StorageDriver types 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.
  • ResourceBasedController can now be shared by resource-based tuners across multiple Workers in the same process.
  • Experimental New @temporalio/strands-agents package for building workflows with Strand Agents.
  • Experimental: @temporalio/openai-agents now 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] at WARN) but still sent, while a task completion over the error limit is failed
    retryably ([TMPRL1103] at ERROR) 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 setting disablePayloadErrorLimit: true on the worker.
  • @temporalio/ai-sdk now 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.HandlerError values thrown by payload codecs and converters.
  • temporal_worker_task_slots_used no 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

Choose a tag to compare

@chris-olszewski chris-olszewski released this 15 Jul 19:20
ae823d7

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

Choose a tag to compare

@chris-olszewski chris-olszewski released this 08 Jul 16:16
6269d75

What's Changed

Full Changelog: v1.20.1...v1.20.2

v1.15.1

Choose a tag to compare

@THardy98 THardy98 released this 08 Jul 00:13

Backport #2169 to address #2170

v1.20.1

Choose a tag to compare

@chris-olszewski chris-olszewski released this 07 Jul 23:33

Backport #2169 to address #2170

v1.20.0

Choose a tag to compare

@chris-olszewski chris-olszewski released this 07 Jul 15:56
6397952

v1.20.0

Added

  • New @temporalio/langsmith package 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:
    • NativeConnection initialization now retries without gRPC gzip compression if the server
      cannot decompress the eager GetSystemInfo call.
    • 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

v1.19.1

Choose a tag to compare

@THardy98 THardy98 released this 07 Jul 23:21

Backport #2169 to address #2170

v1.18.2

Choose a tag to compare

@chris-olszewski chris-olszewski released this 07 Jul 23:20

Bug fixes

Backport #2169 to address #2170