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
- New Integration with the Google ADK for running ADK agents in Temporal Workflows. https://github.com/temporalio/sdk-python/tree/main/temporalio/contrib/google_adk_agents
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.
- If the PayloadCodec fails to decode the payload, the error is wrapped in a retryable HandlerError with type
What's Changed
- Add test utility to create Nexus endpoint by @Quinn-With-Two-Ns in #1279
- Add support for more timeouts to Nexus operations by @Quinn-With-Two-Ns in #1276
- [fix] Make
workflow_id: strfor workflow serialization context by @THardy98 in #1340 - Populate Request Deadline in Nexus Operation Contexts by @VegetarianOrc in #1277
- Fix ActivityAlreadyStartedError message by @dandavison in #1348
- Fix RetryPolicy.from_proto() pickle error with non_retryable_error_types by @tconley1428 in #1354
- Cancel Temporal timer when workflow.sleep() task is cancelled by @carlosa54 in #1352
- Stop skipping some Nexus tests on time skipping test server by @Quinn-With-Two-Ns in #1338
- Fix worker client updates not propagating to activity and Nexus workers by @tconley1428 in #1355
- Bump quinn-proto from 0.11.12 to 0.11.14 in /temporalio/bridge by @dependabot[bot] in #1357
- chore: bump core by @chris-olszewski in #1360
- Upgrade on CAN by @THardy98 in #1311
- Add Google ADK Agents integration for Temporal workflows by @tconley1428 in #1353
- Add experimental notices to ADK top level objects by @tconley1428 in #1363
- Split converter.py into submodules by @jmaeagle99 in #1365
- Validate deployment config and test worker with versioning off and custom build ID by @mjameswh in #1361
- Remove Unused HTTP Port From Tests by @VegetarianOrc in #1368
- Experimental: External Payload Storage by @jmaeagle99 in #1341
- ADK: Allow overriding summary for Agents without overriding the start to close timeout by @drewhoskins-temporal in #1370
- Update python version to 1.24.0 by @tconley1428 in #1377
- Fix wheel tests by @tconley1428 in #1379
- Remove experimental notices for Nexus by @Quinn-With-Two-Ns in #1381
- Misc ci fixes by @tconley1428 in #1380
- Remove experimental notices from openai agents except otel integration by @tconley1428 in #1382
Core SDK Updates
2026-02-18 - c781a610 - Rust SDK Prerelease ([https://github.com/temporalio/sdk-core/pull/1101])
2026-02-18 - f16f160d - Nexus error types ([https://github.com/temporalio/sdk-core/pull/1109])
2026-02-19 - 2014f31c - chore: prepare for initial publish ([https://github.com/temporalio/sdk-core/pull/1120])
2026-02-19 - 21e03c28 - Fix encoding problems in heavy tests ([https://github.com/temporalio/sdk-core/pull/1119])
2026-02-19 - a0caec42 - chore: exclude github workflows and uml from published crates ([https://github.com/temporalio/sdk-core/pull/1121])
2026-02-19 - dc127f55 - Fix wait_condition to wake registered wakers on state_mut ([https://github.com/temporalio/sdk-core/pull/1118])
2026-02-23 - 37d8c1a5 - chore: add test to verify wait_condition futures wake on state_mut ([https://github.com/temporalio/sdk-core/pull/1128])
2026-02-23 - 7161ed3b - fix(sdk): provide default worker identity ([https://github.com/temporalio/sdk-core/pull/1123])
2026-02-23 - 78a94de2 - Expose continue_as_new_suggested on WorkflowContext ([https://github.com/temporalio/sdk-core/pull/1126])
2026-02-23 - 9d678b96 - no longer cancel pending polls on shutdown ([https://github.com/temporalio/sdk-core/pull/1122])
2026-02-23 - f52b48bd - chore: fix flake in list workflows test ([https://github.com/temporalio/sdk-core/pull/1124])
2026-02-25 - 8f01a380 - chore: add crates.io links to readme ([https://github.com/temporalio/sdk-core/pull/1125])
2026-02-26 - c09a2901 - feat(sdk): add workflow_id and run_id to workflow context ([https://github.com/temporalio/sdk-core/pull/1131])
2026-03-09 - 4d756127 - fix: disable default features for prometheus dependency ([https://github.com/temporalio/sdk-core/pull/1134])
2026-03-09 - b5297e69 - Add wrappers for futures helpers ([https://github.com/temporalio/sdk-core/pull/1133])
2026-03-10 - 05077672 - Return ClientWorkerSet from Connection ([https://github.com/temporalio/sdk-core/pull/1147])
2026-03-11 - 5f79ef28 - Ingest API PR #709: Add target_worker_deployment_version_changed field ([https://github.com/temporalio/sdk-core/pull/1148])
New Contributors
- @Quinn-With-Two-Ns made their first contribution in #1279
- @carlosa54 made their first contribution in #1352
- @chris-olszewski made their first contribution in #1360
- @drewhoskins-temporal made their first contribution in #1370
Full Changelog: 1.23.0...1.24.0