npm @temporalio/workflow 1.16.0

10 hours ago

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

Don't miss a new workflow release

NewReleases is sending notifications on new releases.