Releases: temporalio/sdk-typescript
Releases · temporalio/sdk-typescript
v1.17.0
Notable Changes
- [
lamba-worker, pre-release] New @temporalio/lambda-worker package (#1995) that wraps the full per-invocation lifecycle for running
Temporal workers inside AWS Lambda (connect, create worker, poll, graceful shutdown). Now in pre-release! - [
client, pre-release] 💥 Standalone Activities support (#2029). Activities can now be started directly from a Temporal Client, independent of any workflow. See https://docs.temporal.io/standalone-activity for documentation. Standalone Activity as a server feature is in Public Preview, but TS implementation is still pre-release.
Features
- [
worker] feat(metrics): add UpDownCounter to Buffered Metrics and RuntimeMetricMeter (#2007). First contribution from @gibbonjj! Thank you!
Bug Fixes
- [
workflow] fix(workflow): do not import @temporalio/proto from workflow code (#2010) - [
worker] fix(worker): 'occured' -> 'occurred' in error log message (#2013). First contribution from @SAY-5! Thank you!
Chores / Cleanup
- chore: prune pnpm deps overrides (#2012)
- chore: enforce type only imports (#2015)
- [
ci]: Update and pin all GHA actions (#2016) - [
core]: update submodule to sdk-rust (#2026)
Dependencies
New Contributors
Full Changelog: v1.16.0...v1.17.0
1.16.1
Bug Fixes
- [
workflow] Fix NDE when multiple patches in a single WFT exceed SA's 2048-byte limit (Core SDK #1225)
Full Changelog: v1.16.0...v1.16.1
1.16.0
Notable Changes
- 💥 The Nexus API has several breaking changes in this release; see items marked 💥 in the sections below. Of particular note:
NexusClienthas been renamed toNexusServiceClient(#1993), andNexusInboundCallsInterceptornow requiresexecuteStartOperationandexecuteCancelOperationinstead of the old genericexecutemethod (#1979).
Features
- [
worker] Extend bundler to support pre-loading modules into the reusable V8 context via a newpreloadModulesoption onBundleOptions/WorkerOptions.bundleOptions; pre-loaded modules are shared across workflow executions, reducing per-workflow memory and startup overhead (#1999) - [
nexus] 💥 Add Nexus Inbound Interceptors —NexusInboundCallsInterceptornow exposesexecuteStartOperationandexecuteCancelOperation, replacing the previous genericexecuteinterceptor (#1979) - [
opentelemetry] 💥 Nexus OpenTelemetry support — adds inbound interceptors and distributed trace context propagation across Nexus service boundaries; renames interceptor I/O types fromExecuteNexusOperation*toNexusStartOperation*/NexusCancelOperation*, and addsRunStartNexusOperationandRunCancelNexusOperationspan names (#1998) - [
nexus] 💥 Nexus error serialization now uses TemporalProtoFailureend-to-end, aligning with other SDKs; also fixes a JS bug where comma-separatedcasevalues in gRPC status code mapping silently matched only the last value (#1973) - [
nexus] 💥 RenameNexusClienttoNexusServiceClientin preparation for upcoming Nexus Standalone Operations (#1993) - [
nexus] AddscheduleToStartTimeoutandstartToCloseTimeoutoptions to the workflow Nexus client API (#1942) - [
nexus] Standardize Nexus operation input deserialization error handling: payload codec decode failures are now surfaced as retryableINTERNALhandler errors, while payload converter failures remain non-retryableBAD_REQUEST;ApplicationFailureis passed through directly (#1949) - [
nexus] Infer workflow result type fromWorkflowRunOperationHandler—startWorkflownow returnsWorkflowHandle<WorkflowResultType<T>>, removing the need to explicitly type the handler (#1968) - [
worker] AllowWorkerDeploymentOptionsto omitdefaultVersioningBehaviorwhenuseWorkerVersioningisfalse, enabling workers to report a build ID to the Temporal UI without opting into full worker versioning (#1963) - [
worker] PropagatetargetWorkerDeploymentVersionChangedand Continue-As-New suggested reasons for worker deployment versioning trampolining (#1972)
Bug Fixes
- [
client] Suppress spurious unhandled rejection fromWithStartWorkflowOperationwhenexecuteUpdateWithStartfails before a response is received (#1990) - [
opentelemetry] Do not markCompleteAsyncErroras a span error (#1989) - [
opentelemetry] AvoidTypeErrorwhen user code throws a non-Errorvalue (#1984) - [
worker] Tolerate emptyrootWorkflowExecution/parentWorkflowExecutionobjects from pre-v1.24 servers, preventingIllegalStateErroron resumed workflows (#1969) - [
ai] UseactivityOptionsincallToolproxy (#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
Notable Changes
⚠️ Fixed potential request storms when worker is configured with poller autoscaling, due to missing exponential backoff onResourceExhaustedand other gRPC errors. See PRs temporalio/sdk-rust#1110 and temporalio/sdk-rust#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 onResourceExhaustedand other gRPC errors in Poller autoscaler (#1938 and #1944) - [
native] Correct native binding type for workerValidate (#1939) - [
client] ExposeoperatorServiceonConnectionLikeinterface (#1904) - [
opentelemetry] Serialize TraceState before exporting to sink (#1891) - [
opentelemetry]makeWorkflowExporteraccepts SpanProcessor (#1886) - [
ai] Addawaitto 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
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
heartbeatJSDoc (#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
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 settls: 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-rust@bd02cce -> temporalio/sdk-rust@44a6576
- RealSysInfo uses cgroup CPU usage if available (temporalio/sdk-rust#1029)
- Worker Heartbeating (temporalio/sdk-rust#1038)
- Add
temporalprefix to resource tuner metrics (temporalio/sdk-rust#1043) - Avoid spamming gRPC message too large task failures (temporalio/sdk-rust#1050)
- No longer retry worker shutdown RPC (temporalio/sdk-rust#1054)
- Add explicit worker type configuration (temporalio/sdk-rust#1059)
- Emit GrpcMessageTooLarge as failure_reason for workflow tasks (temporalio/sdk-rust#1069)
Full Changelog: v1.13.2...v1.14.0
1.13.2
[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
envconfigpackage (#1795)envconfigprovides a way to configure clients using TOML files
Minor Features
- Create
RawValuefrom 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
- Support user metadata in local activity (temporalio/sdk-rust#974)
- Support for Unix sockets in HTTP connect proxy (temporalio/sdk-rust#984)
- Enable slot supplier for nexus pollers (temporalio/sdk-rust#994)
- [BREAKING] Use normal task queue name for sticky task queue client metrics (temporalio/sdk-rust#1039)
- Set worker version on eager start requests (temporalio/sdk-rust#1033)
1.13.1
1.13.0
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
- @conor-temporal made their first contribution in #1774
Full Changelog: v1.12.3...v1.13.0
1.12.3
[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.runIdto a UUID inMockActivityEnvironment(#1723, thanks @TastyPi).
Minor features
- [Experimental] Activity pause/unpause (#1729)
Full Changelog: v1.12.2...v1.12.3