Skip to content

Releases: temporalio/sdk-typescript

1.16.0

09 Apr 23:29
54eb0c8

Choose a tag to compare

Notable Changes

  • 💥 The Nexus API has several breaking changes in this release; see items marked 💥 in the sections below. Of particular note: NexusClient has been renamed to NexusServiceClient (#1993), and NexusInboundCallsInterceptor now requires executeStartOperation and executeCancelOperation instead of the old generic execute method (#1979).

Features

  • [worker] Extend bundler to support pre-loading modules into the reusable V8 context via a new preloadModules option on BundleOptions/WorkerOptions.bundleOptions; pre-loaded modules are shared across workflow executions, reducing per-workflow memory and startup overhead (#1999)
  • [nexus] 💥 Add Nexus Inbound Interceptors — NexusInboundCallsInterceptor now exposes executeStartOperation and executeCancelOperation, replacing the previous generic execute interceptor (#1979)
  • [opentelemetry] 💥 Nexus OpenTelemetry support — adds inbound interceptors and distributed trace context propagation across Nexus service boundaries; renames interceptor I/O types from ExecuteNexusOperation* to NexusStartOperation*/NexusCancelOperation*, and adds RunStartNexusOperation and RunCancelNexusOperation span names (#1998)
  • [nexus] 💥 Nexus error serialization now uses Temporal ProtoFailure end-to-end, aligning with other SDKs; also fixes a JS bug where comma-separated case values in gRPC status code mapping silently matched only the last value (#1973)
  • [nexus] 💥 Rename NexusClient to NexusServiceClient in preparation for upcoming Nexus Standalone Operations (#1993)
  • [nexus] Add scheduleToStartTimeout and startToCloseTimeout options to the workflow Nexus client API (#1942)
  • [nexus] Standardize Nexus operation input deserialization error handling: payload codec decode failures are now surfaced as retryable INTERNAL handler errors, while payload converter failures remain non-retryable BAD_REQUEST; ApplicationFailure is passed through directly (#1949)
  • [nexus] Infer workflow result type from WorkflowRunOperationHandlerstartWorkflow now returns WorkflowHandle<WorkflowResultType<T>>, removing the need to explicitly type the handler (#1968)
  • [worker] Allow WorkerDeploymentOptions to omit defaultVersioningBehavior when useWorkerVersioning is false, enabling workers to report a build ID to the Temporal UI without opting into full worker versioning (#1963)
  • [worker] Propagate targetWorkerDeploymentVersionChanged and Continue-As-New suggested reasons for worker deployment versioning trampolining (#1972)

Bug Fixes

  • [client] Suppress spurious unhandled rejection from WithStartWorkflowOperation when executeUpdateWithStart fails before a response is received (#1990)
  • [opentelemetry] Do not mark CompleteAsyncError as a span error (#1989)
  • [opentelemetry] Avoid TypeError when user code throws a non-Error value (#1984)
  • [worker] Tolerate empty rootWorkflowExecution/parentWorkflowExecution objects from pre-v1.24 servers, preventing IllegalStateError on resumed workflows (#1969)
  • [ai] Use activityOptions in callTool proxy (#1954)

Dependencies

  • [core] Update sdk-core (#1959)
  • [deps] Bump vulnerable dependencies (#1957, #1988)
  • [deps] Bump rustls-webpki from 0.103.9 to 0.103.10 (#1978)
  • [deps] Bump quinn-proto from 0.11.13 to 0.11.14 (#1961)
  • [deps] Bump tar (#1976, #1946)

Breaking changes are marked with 💥

Full Changelog: v1.15.0...v1.16.0

1.15.0

18 Feb 18:51
6148da0

Choose a tag to compare

Notable Changes

  • ⚠️ Fixed potential request storms when worker is configured with poller autoscaling, due to missing exponential backoff on ResourceExhausted and other gRPC errors. See PRs temporalio/sdk-core#1110 and temporalio/sdk-core#1111 for more details.
  • 💥 Node.js 18 is no longer supported (#1930)
  • 🧪 Added experimental support for Bun runtime (#1906)

Features

  • [opentelemetry] Expose functionality as plugin (#1884)
  • [worker] Worker Connection Replacement (#1902)
  • [workflow] Nexus Cancellation Types (#1894)
  • [worker] Worker deployment versioning is now GA (#1924)
  • [envconfig] Environment configuration is now GA (#1924)
  • [testing] Add API to setup Nexus endpoint on ephemeral test server (#1897)
  • [nexus] Expose Temporal Nexus operation info to Temporal Nexus operation (#1896)
  • [bun] 🧪 Bun support - experimental (#1906)
  • [runtime] 🧪 Buffered metrics - experimental (#1922)

Bug Fixes

  • [worker] Add exponential backoff on ResourceExhausted and other gRPC errors in Poller autoscaler (#1938 and #1944)
  • [native] Correct native binding type for workerValidate (#1939)
  • [client] Expose operatorService on ConnectionLike interface (#1904)
  • [opentelemetry] Serialize TraceState before exporting to sink (#1891)
  • [opentelemetry] makeWorkflowExporter accepts SpanProcessor (#1886)
  • [ai] Add await to tool execution (#1882)
  • [ai] Description was missing from the derived mcp tools (#1905)
  • [ai] Fix a bug in AI SDK MCP Schema conversion (#1890)
  • [common] Make search attribute type more lenient when parsing (#1943)
  • [workflow] Allow logging queries validators during replay (#1927)
  • [ai] Add missing dependency to ai package (#1878)
  • [worker] Fix wf_task_replay_latency metric recording for non-replay tasks (#1083)
  • [worker] Always send shutdown_worker RPC, fix WorkerStatus state when shutting down worker (#1082)
  • [worker] Fix bug where we count first WFT as sticky cache hit (#1091)

Dependencies

  • 💥 Drop node 18 support (#1930)
  • [api] Update Temporal Protobuf APIs to v1.61.0 (#1100)
  • [deps] Bump vulnerable dependencies (hono, jws, tar, ...) (#1900)
  • [deps] Run cargo update (#1937)
  • [deps] Bump webpack from 5.94.0 to 5.104.1 (#1929)
  • Upgrade eslint (#1933)
  • [deps] Bump bytes from 1.10.1 to 1.11.1 in /packages/core-bridge (#1921)
  • [deps] Bump @modelcontextprotocol/sdk from 1.25.2 to 1.26.0 (#1928)
  • [deps] Bump tar from 7.5.3 to 7.5.7 (#1916)

Breaking changes are marked with 💥
Experimental features are marked with 🧪

Full Changelog: v1.14.1...v1.15.0

1.14.1

08 Jan 21:17
7eb312e

Choose a tag to compare

Minor Features

  • [ai-sdk] Upgrade to AI SDK v6 with embedding model support (#1865, thabnks @ItsWendell)

Bug Fixes

  • [workflow] Automatically cleanup AsyncLocalStorage on workflow context disposal (#1871)
  • [OpenTelemetry] Avoid lazy loading workflow package in interceptors (#1872)
  • Fix Env Config path to match docs (#1870)
  • Fix typos in heartbeat JSDoc (#1863, thanks @daveyarwood)

Security

  • Bump lru from 0.16.1 to 0.16.3 (#1873)

Full Changelog: v1.14.0...v1.14.1

1.14.0

18 Dec 17:07
2fbcbe7

Choose a tag to compare

Noteworthy Features

  • 🧪 [ai] Introduced (experimental) AI SDK Integration (#1792).
  • 💥 [client] TLS is enabled by default if an API key is provided (#1847). To disable TLS in that specific context, explicitly set tls: false.

Minor Features

  • [opentelemetry] Create spans for all interceptor events (#1835)
  • [worker] Enable Worker heartbeating (#1818). Worker heartbeating allows smoother server-side behaviors when a Worker is shut down or somehow become unreachable.

Bug Fixes

  • [worker] The reusable workflow executor now properly runs dispose interceptors (#1834, thanks @mnahkies 🙏).
  • [core-bridge] Include bridge macros rust package in core-bridge npm package to allow building from source (#1852, thanks @stathis-alexander 🙏)

Security

  • [@temporalio/create]: bump glob from 10.3.10 to 10.5.0 (#1828)

SDK-Core update

Commit temporalio/sdk-core@bd02cce -> temporalio/sdk-core@44a6576

Full Changelog: v1.13.2...v1.14.0

1.13.2

11 Nov 00:40

Choose a tag to compare

[1.13.2] - 2025-11-10

Note Worthy Features

  • (experimental) Plugins Implementation (#1794)
    • Plugins are a new way of providing easy configuration of workers and clients
  • (experimental) Introduce envconfig package (#1795)
    • envconfig provides a way to configure clients using TOML files

Minor Features

  • Create RawValue from direct payload using identity payload converter (#1806)
  • Add support for gRPC binary metadata values (#1791)
  • Make address of test server public (#1819)
  • Bump uuid to 11.1.0 (#1789, thanks to @TastyPi 🙏)

Bug Fixes

  • [otel] Mark peer dependencies as optional (#1812)
  • [otel] Remove await from OTEL handleSignal interceptor (#1803)

Security

  • Set explicit permissions for GitHub Actions workflows (#1815)

Notable Changes

  • Remove experimental notices from poller behavior (#1821)
  • Remove experimental notices from worker tuner APIs (#1797)

SDK-Core update

Commit 871b320 -> bd02cce:

1.13.1

08 Oct 20:27
9a67b06

Choose a tag to compare

[1.13.1] - 2025-10-08

Minor features

  • Eager Workflow Start (#1757)
  • Activity reset (#1730)

Bug Fixes

  • Added retry policy to activity info (#1788)
  • Don't set error status on otel spans for benign exceptions (#1786)

Vulnerabilities

  • Bump tracing-subscriber from 0.3.19 to 0.3.20 in /packages/core-bridge (#1780)

1.13.0

27 Aug 21:41
9089bc6

Choose a tag to compare

Note Worthy Features

  • [Experimental] Initial Nexus support (#1708)
  • [Experimental] Fairness Keys & Weights (#1768)
  • [Experimental] Expose Client on Activity Context (#1769)

Bug Fixes

  • Fix worker logs not getting flushed in Core log level set to ERROR (#1777)

New Contributors

Full Changelog: v1.12.3...v1.13.0

1.12.3

19 Aug 23:44
f9c94a5

Choose a tag to compare

[1.12.3] - 2025-08-19

Bug Fixes

  • Fix a recurring "Network error while sending worker heartbeat error due to PermissionDenied" warning messages in worker logs observed by Temporal Cloud users after upgrading to TS SDK 1.12.2 (#1766)
  • Fix "Critical dependency: the request of a dependency is an expression" warning message emitted by workflow bundler since TS SDK 1.12.2 (#1767).
  • Set default workflowExecution.runId to a UUID in MockActivityEnvironment (#1723, thanks @TastyPi).

Minor features

  • [Experimental] Activity pause/unpause (#1729)

Full Changelog: v1.12.2...v1.12.3

1.12.2

13 Aug 21:34
0c58746

Choose a tag to compare

[1.12.2] - 2025-08-13

Bug Fixes

  • fix for pinned versioning behavior on server version >=1.28.0 (#1754)

Minor features

  • Add RawValue support for payloads to bypass custom payload converters (#1664)
  • The __temporal_ prefix is now reserved for internal entities. The __stack_trace and __enhanced_stack_trace are also reserved for internal queries (#1644)

Notable changes

  • Experimental notices for Update with Start have now been removed, it is no longer experimental (#1745)
  • User metadata allows you to attach arbitrary information to workflows and events. This information can be displayed in the Temporal UI, making it easier to identify and understand workflows and their operations. (#1657)

1.12.1

07 Jul 16:48
8d489e3

Choose a tag to compare

[1.12.1] - 2025-07-07

Bug Fixes

  • Bridge's error conversion logic now uses the isPromise node's utility function instead of an instanceof Promise check. The latter may give false negatives in Jest, resulting in not converting errors thrown from the Rust side. This has been causing Jest tests to fail with ShutdownError: Worker has been shutdown errors using TS SDK 1.12.0. (#1737)