Skip to content

Releases: temporalio/sdk-python

1.26.1

18 May 16:55
f2350cb

Choose a tag to compare

Fix for worker shutdown ordering

There was an issue with worker shutdown when the frontend.enableCancelWorkerPollsOnShutdown dynamic config flag is enabled on server. The issue was causing shutdown to stall until the full 30s worker shutdown timeout was hit, as server was waiting for a message that the SDK was not sending. This fixes the SDK to send the proper message, allowing shutdown to occur normally.

What's Changed

  • [backport 1.26.1] Update core to pickup shutdown fix by @yuandrew in #1527

Full Changelog: 1.26.0...1.26.1

1.25.1

18 May 16:10
72e0390

Choose a tag to compare

Fix for worker shutdown ordering

There was an issue with worker shutdown when the frontend.enableCancelWorkerPollsOnShutdown dynamic config flag is enabled on server. The issue was causing shutdown to stall until the full 30s worker shutdown timeout was hit, as server was waiting for a message that the SDK was not sending. This fixes the SDK to send the proper message, allowing shutdown to occur normally.

What's Changed

  • [backport 1.25.1] Update core to pickup shutdown fix by @yuandrew in #1526

Full Changelog: 1.25.0...1.25.1

1.24.2

15 May 19:17
6ee7066

Choose a tag to compare

Bug Fixes

  • Removed upper bound constraint on types-protobuf dependency (#1525). The previous ceiling (<5.29.1) could cause dependency conflicts for users on newer types-protobuf versions. The constraint now matches the protobuf range (>=3.20,<7.0.0).

What's Changed

Full Changelog: 1.24.1...1.24.2

1.27.2

14 May 02:19
c9e2873

Choose a tag to compare

DNS Resolver Load Balancing Configuration

A new load balancing feature was added in temporalio/sdk-rust#1212 which has caused networking issues in certain networking setups. This is now disabled by default via the change listed below.

What's Changed

1.27.1

13 May 16:22
ddc2b29

Choose a tag to compare

DNS Resolver Load Balancing Configuration

A new load balancing feature was added in temporalio/sdk-rust#1212 which has caused networking issues in certain networking setups. That can now be disabled via DnsLoadBalancingConfig.

What's Changed

  • Fix flaky pause_and_assert helper by @brianstrauch in #1493
  • Fix flaky LangGraph timeout tests by @DABH in #1495
  • feat(otel): remove span creation for saa operations that do not currently propagate tracing headers. by @cconstable in #1492
  • CaN USE_RAMPING_VERSION versioning behaviour by @THardy98 in #1499
  • Say 'client_region' in S3 diagnostics for clarity by @drewhoskins-temporal in #1494
  • contrib/openai_agents: stream model events via Workflow Streams by @jssmith in #1497
  • contrib/google_adk_agents: stream LlmResponse chunks via Workflow Streams by @jssmith in #1498
  • Fix CI, bump openinference-instrumentation-google-adk to 0.1.11 by @brianstrauch in #1508
  • AI-183: Respect LANGSMITH_TRACING env var in LangSmith plugin by @xumaple in #1509
  • Fix minor API break from latest OpenAI Agents version by @tconley1428 in #1511
  • Plumb through option for configuring DNS resolver by @Sushisource in #1501

Core Changes

None!

1.24.1

13 May 21:48
2994717

Choose a tag to compare

Fix for worker shutdown ordering

There was an issue with worker shutdown when the frontend.enableCancelWorkerPollsOnShutdown dynamic config flag is enabled on server. The issue was causing shutdown to stall until the full 30s worker shutdown timeout was hit, as server was waiting for a message that the SDK was not sending. This fixes the SDK to send the proper message, allowing shutdown to occur normally.

What's Changed

Full Changelog: 1.24.0...1.24.1

1.27.0

30 Apr 22:43
19aa13e

Choose a tag to compare

💥 External Storage Reference Format Change (Experimental)

External storage reference event history format has been incompatibly changed from prerelease. New storage references are emitted in the new format starting with release. Support for the ability to retrieve references in the old format has been preserved. The prerelease format is deprecated and will be removed in a future release.

Workflow Streams

This release adds Workflow Streams, a public preview contrib library that gives a workflow a durable, offset-addressed event channel for keeping outside observers updated on workflow and activity progress. It's built on Temporal's existing signals, updates, and queries, with batching, exactly-once deduplication, topic filtering, and continue-as-new helpers layered on top. Intended uses are streaming UIs for long-running AI agents, status for in-flight payment or order processing, and progress for data pipelines. It is not for not ultra-low-latency cases like real-time voice.

What's Changed

Core Changes

2026-04-10 - 08adc4a4 - feat(sdk): add typed continue as new (temporalio/sdk-rust#1209)
2026-04-14 - 00d3888a - feat(client): ergonomic workflow description (temporalio/sdk-rust#1215)
2026-04-14 - c78bfb67 - Support static_summary, static_details and current_details` in the Rust sdk (temporalio/sdk-rust#1208)
2026-04-14 - d24a6f77 - chore(ci): bump macos-intel timeout (temporalio/sdk-rust#1214)
2026-04-15 - d7ebff81 - Add DNS load balancing (temporalio/sdk-rust#1212)
2026-04-16 - 33b86805 - fix(sdk): normalize how user metadata is encoded (temporalio/sdk-rust#1216)
2026-04-16 - 33c6c5e2 - Optimize dependencies (temporalio/sdk-rust#1219)
2026-04-16 - 72d8c5d3 - Fix test broken on windows by fake server binding to ipv6 (temporalio/sdk-rust#1220)
2026-04-16 - 904f4793 - Remove unused parking lot send guard feature (temporalio/sdk-rust#1218)
2026-04-17 - 1e67b234 - chore: Update and pin all GHA actions (temporalio/sdk-rust#1222)
2026-04-20 - 9171aca4 - 💥 feat(sdk): enforce some activity to close timeout is set (temporalio/sdk-rust#1221)
2026-04-21 - 703fe6b2 - Fix NDE when multiple patches in a single WFT exceed SA's 2048-byte limit (temporalio/sdk-rust#1225)
2026-04-22 - 984da134 - Set WFT Failed cause on grpc message too large incidents (temporalio/sdk-rust#1229)
2026-04-23 - 64cb6ed2 - Shutdown rpc initiate shutdown (temporalio/sdk-rust#1224)
2026-04-24 - 6dd29f2d - chore: rename master -> main in docs/crates/workflows (temporalio/sdk-rust#1233)
2026-04-25 - 30c4a313 - bump versions to 0.3.0 (temporalio/sdk-rust#1235)
2026-04-26 - 2872b536 - Update upstream api to latest (temporalio/sdk-rust#1234)

New Contributors

Full Changelog: 1.26.0...1.27.0

1.26.0

15 Apr 23:47
447472e

Choose a tag to compare

OpenAI Agents SDK Sandbox Support

This release adds support for the OpenAI Agents SDK's SandboxAgent in Temporal workflows. All sandbox lifecycle and I/O operations (create, exec, read, write, PTY, etc.) are automatically routed through Temporal activities, making them durable and replayable. If an agent fails mid-execution, Temporal ensures it picks up right where it left off in its sandbox. To use it, pass sandbox clients (e.g. DaytonaSandboxClient) to OpenAIAgentsPlugin(sandbox_clients=...). This release also updates compatibility with the latest OpenAI Agents SDK.

Breaking Changes

2026-04-09 - 4f05fc58 - 💥 Record task latency even for WFT failures that were dropped (temporalio/sdk-rust#1207) - The temporal_workflow_task_execution_latency metric is slightly more inclusive than it was in the past, and it can now include some WFT failures that may previously have been omitted

What's Changed

Core Changes

2026-04-06 - a4fc7933 - feat(sdk): env config (temporalio/sdk-rust#1195)
2026-04-06 - ef57d63f - Correctly convert default_versioning_behavior in C bridge (temporalio/sdk-rust#1199)
2026-04-08 - 1f6cfb6c - fix(core): add in scheme port if none present (temporalio/sdk-rust#1205)
2026-04-08 - 723c2836 - feat(sdk): add samples (temporalio/sdk-rust#1190)
2026-04-08 - d96a8d2f - Move CODEOWNERS under .github/ (temporalio/sdk-rust#1198)
2026-04-09 - 630e7795 - Make sure legacy queries are failed if gRPC message too large (temporalio/sdk-rust#1206)
2026-04-10 - b544f95d - Expose Nexus Endpoint in a Nexus Operation Handler (temporalio/sdk-rust#1211)

New Contributors

Full Changelog: 1.25.0...1.26.0

1.25.0

08 Apr 18:55
4f3e320

Choose a tag to compare

Pre-release Features

Serverless Lambda Workers

This release introduces a package which can be used together with upcoming changes to the Temporal server & cloud which allow you to run your worker in an AWS Lambda function which the server will invoke as-needed to process Workflow, Activity, and Nexus tasks - allowing you to do away with some of the operational burden of running a fleet of workers. Additional documentation on how to use this feature will be linked here when available.

External Storage

This release includes the external storage feature, which allows offloading payloads to an external storage system (such as Amazon S3) and passes a small reference token into Event History. This allows your workflows to avoid large payload errors and to avoid growing workflow history size too rapidly.

Amazon S3 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. See Store and retrieve large payloads with Amazon S3 for more details and how to enable using this driver with external storage.

What's Changed

Core Changes

2026-03-13 - a7611dd8 - Remove system.enableNexus dynamic config flag (temporalio/sdk-rust#1151)
2026-03-13 - cf7fcec5 - fix(client): retry WorkflowUpdateHandle::get_result poll (temporalio/sdk-rust#1150)
2026-03-16 - 7a6a53f7 - chore(ci): avoid caching rust on PR (temporalio/sdk-rust#1159)
2026-03-16 - a039b2d6 - feat(sdk): add schedule handle (temporalio/sdk-rust#1132)
2026-03-16 - c6b601de - Fix temporal metrics in C bridge to have temporal_ prefix (temporalio/sdk-rust#1156)
2026-03-17 - 2f9d6c8b - fix(core): avoid panic if workflow stream still up during eviction (temporalio/sdk-rust#1158)
2026-03-17 - f188eb53 - Add external storage drivers to worker heartbeat (temporalio/sdk-rust#1130)
2026-03-18 - db65dd9a - build: make otel opt-in in sdk-core (temporalio/sdk-rust#1154)
2026-03-18 - f00f7337 - Allow poller scale-down on timeout when server supports autoscaling (temporalio/sdk-rust#1164)
2026-03-18 - f384eeb5 - Fix possible NDE in valid child workflow cancel transition (temporalio/sdk-rust#1162)
2026-03-19 - a5e8f7f1 - Update cloud-api protos to v0.12.0 (temporalio/sdk-rust#1172)
2026-03-19 - ba203c64 - fix(sdk): re-poll update futures after workflow state changes (temporalio/sdk-rust#1153)
2026-03-19 - e49359b2 - chore: bump version to 0.2.0 (temporalio/sdk-rust#1169)
2026-03-23 - 4b0d7ed1 - feat(sdk): 💥 add HasWorkflowDefinition trait (temporalio/sdk-rust#1173)
2026-03-24 - 31798a48 - rust-toolchain.toml and MSRV checks in CI (temporalio/sdk-rust#1175)
2026-03-25 - 18615a7a - fix(sdk): serialize unit as no payloads or null payload (temporalio/sdk-rust#1181)
2026-03-25 - acec0e60 - Gate test-only worker telemetry helper (temporalio/sdk-rust#1176)
2026-03-26 - 21b65b87 - feat(sdk): 💥 add typed child workflow handle (temporalio/sdk-rust#1182)
2026-03-26 - 42e44a75 - feat(metrics): add UpDownCounter metric instrument type (temporalio/sdk-rust#1180)
2026-03-27 - 4508ae7d - Update deps & remove unused ones (temporalio/sdk-rust#1183)
2026-03-31 - 76f5c9e1 - fix(sdk): implement FusedFuture for wait_condition (temporalio/sdk-rust#1192)
2026-03-31 - d03d2ae2 - feat(sdk): external workflow handle (temporalio/sdk-rust#1187)
2026-04-01 - 24703da6 - Add standalone activity run id to bridge (temporalio/sdk-rust#1189)
2026-04-01 - 5e6b836c - chore(test): add eventually to latency metrics test (temporalio/sdk-rust#1193)
2026-04-02 - 71a5caa5 - Fix - provide default (empty) client config when default user config dir does not exist. Create an inner function to inject the default config path easily (temporalio/sdk-rust#1194)
2026-04-02 - b3d53ab7 - Validate deployment options and test worker with versioning off and custom build ID (temporalio/sdk-rust#1163)
2026-04-02 - ef6e73b8 - Custom async executor for workflows (temporalio/sdk-rust#1185)

New Contributors

Full Changelog: 1.24.0...1.25.0

1.24.0

23 Mar 15:37
8f003b4

Choose a tag to compare

General Availability

  • Nexus is now generally available and no longer experimental
  • OpenAI Agents SDK Integration is now generally available and no longer experimental

Pre-release

Breaking Changes

💥 Add OpenTelemetry integration for OpenAI AgentsOpenAI/otel in #1286

Span/trace id generation changes in this PR, which means that AgentsSDK workflows which run on both the old version and the new version of the code may have broken span parentage.

💥 Use Temporal Failures for Nexus Error Serialization in #1336

  • Nexus HandlerErrors are now serialized as Temporal Failures.
  • Nexus OperationErrors are now converted to CancelledError or ApplicationError as indicated by the OperationErrorState.
  • Nexus input deserialization failures now have different default retry behavior depending on what step the failure occurred on.
    • If the PayloadCodec fails to decode the payload, the error is wrapped in a retryable HandlerError with type INTERNAL.
    • If the PayloadConverter fails to convert the payload into the correct input type, the error is wrapped in a non-retryable HandlerError with type BAD_REQUEST.

What's Changed

Core SDK Updates

2026-02-18 - c781a610 - Rust SDK Prerelease ([https://github.com/temporalio/sdk-rust/pull/1101])
2026-02-18 - f16f160d - Nexus error types ([https://github.com/temporalio/sdk-rust/pull/1109])
2026-02-19 - 2014f31c - chore: prepare for initial publish ([https://github.com/temporalio/sdk-rust/pull/1120])
2026-02-19 - 21e03c28 - Fix encoding problems in heavy tests ([https://github.com/temporalio/sdk-rust/pull/1119])
2026-02-19 - a0caec42 - chore: exclude github workflows and uml from published crates ([https://github.com/temporalio/sdk-rust/pull/1121])
2026-02-19 - dc127f55 - Fix wait_condition to wake registered wakers on state_mut ([https://github.com/temporalio/sdk-rust/pull/1118])
2026-02-23 - 37d8c1a5 - chore: add test to verify wait_condition futures wake on state_mut ([https://github.com/temporalio/sdk-rust/pull/1128])
2026-02-23 - 7161ed3b - fix(sdk): provide default worker identity ([https://github.com/temporalio/sdk-rust/pull/1123])
2026-02-23 - 78a94de2 - Expose continue_as_new_suggested on WorkflowContext ([https://github.com/temporalio/sdk-rust/pull/1126])
2026-02-23 - 9d678b96 - no longer cancel pending polls on shutdown ([https://github.com/temporalio/sdk-rust/pull/1122])
2026-02-23 - f52b48bd - chore: fix flake in list workflows test ([https://github.com/temporalio/sdk-rust/pull/1124])
2026-02-25 - 8f01a380 - chore: add crates.io links to readme ([https://github.com/temporalio/sdk-rust/pull/1125])
2026-02-26 - c09a2901 - feat(sdk): add workflow_id and run_id to workflow context ([https://github.com/temporalio/sdk-rust/pull/1131])
2026-03-09 - 4d756127 - fix: disable default features for prometheus dependency ([https://github.com/temporalio/sdk-rust/pull/1134])
2026-03-09 - b5297e69 - Add wrappers for futures helpers ([https://github.com/temporalio/sdk-rust/pull/1133])
2026-03-10 - 05077672 - Return ClientWorkerSet from Connection ([https://github.com/temporalio/sdk-rust/pull/1147])
2026-03-11 - 5f79ef28 - Ingest API PR #709: Add target_worker_deployment_version_changed field ([https://github.com/temporalio/sdk-rust/pull/1148])

New Contributors

Full Changelog: 1.23.0...1.24.0