Experimental Releases
Strands Agents Plugin
This release adds a new Temporal Plugin for running Strands Agents inside Temporal Workflows. Model invocations, tool calls, and MCP tool calls are routed through Temporal Activities, so your agents get durable execution, retries, and timeouts for free.
Workflow Streams support for LangGraph
The LangGraph plugin can now durably stream node output to external consumers. Values written with langgraph.config.get_stream_writer() are published to a Workflow Streams topic.
Standalone Nexus Operations
Standalone Nexus Operations is experimental and currently only supported on pre-release versions of the dev server.
Added support for Standalone Nexus Operations, allowing clients to start and manage Nexus operations directly outside of a Workflow. Documentation, Samples, and instructions to request enablement in Temporal Cloud will be linked here when available.
⚠️ Possible Local Activity Behavioral Difference
This release includes a bugfix in the Core library that changes incorrect behavior that may have unintentionally worked previously. Specifically, local activities that start running, and continue running while their associated workflow was evicted from the cache, could possibly be "re-attached" to the workflow if it was recreated before they finished. This behavior was unsound. Now, any running local activities are invalidated when a workflow is evicted. This change was really only likely to be encountered if you were running with the workflow cache disabled, which we never recommend doing.
What's Changed
- Bump ruff to 0.15 and reformat by @brianstrauch in #1507
- Format LangSmith tracing env override test by @tconley1428 in #1531
- Fix swallowed CancelledError in start_child_workflow and Nexus operations (Issue #1445) by @yegorske50 in #1472
- Use LangSmith runtime override API instead of monkey-patching aio_to_thread by @xumaple in #1477
- (CI) Disable caching cargo binaries by @maciejdudko in #1537
- Refactor client module into package by @tconley1428 in #1530
- Remove exclude-newer-package option by @brianstrauch in #1529
- Refactor
workflow.pyinto package by @tconley1428 in #1488 - Fix documentation link for Workflow Streams by @brianstrauch in #1536
- Integration test for Standalone Activities delayed-start by @eamsden in #1520
- Update banner url by @Sushisource in #1542
- Address Flake in test_workflow_history_info by @VegetarianOrc in #1545
- remove stale nightly tps omes test by @THardy98 in #1544
- Implement Standalone Nexus Operations by @VegetarianOrc in #1461
- Drop macos-intel from CI by @eamsden in #1553
- ci: key Rust cache on resolved Python version by @brianstrauch in #1554
- Enabled frontend.enableCancelWorkerPollsOnShutdown in tests by @tconley1428 in #1555
- Narrow overloads on the SANO client by @VegetarianOrc in #1552
- VLN-1341: remediate missing-dependency-cooldown by @picatz in #1551
- LangGraph streaming with workflow streams by @brianstrauch in #1500
- fix: call task.uncancel() after catching CancelledError in shield loops (Python 3.11+) by @brucearctor in #1523
- Expose JSON type converter unhandled sentinel type by @Lingavasan in #1556
- remove unused omes job by @THardy98 in #1559
- Tolerate OpenAI model schema drift in the agents payload converter by @brianstrauch in #1563
- Add Temporal Operation Handler by @VegetarianOrc in #1503
- Bump langsmith from 0.7.38 to 0.8.0 by @dependabot[bot] in #1521
- Add Strands Agents plugin (contrib) by @brianstrauch in #1539
- Update Core by @Sushisource in #1564
- Swap from TemporalNexus prefix to Temporal by @VegetarianOrc in #1569
- Passthrough
_pydevd_bundleto sandbox when debug mode is enabled by @VegetarianOrc in #1249 - contrib/strands: add cache_tools toggle to TemporalMCPClient by @brianstrauch in #1571
- Add workflow cancellation reason by @Sushisource in #1574
- Bump litellm to 1.85.0 and openai-agents to 0.17.3 by @dependabot[bot] in #1478
- Add trusted publishing release workflow by @tconley1428 in #1575
- Include nexus-operation-token in Nexus callback headers by @VegetarianOrc in #1576
- Bump version to 1.28.0 by @tconley1428 in #1577
New Contributors
- @yegorske50 made their first contribution in #1472
- @brucearctor made their first contribution in #1523
- @Lingavasan made their first contribution in #1556
Core Changes
2026-04-28 - 0f2f1b4c - chore: feature cleanup (temporalio/sdk-rust#1236)
2026-04-28 - 6f7e7536 - Move Core-specific test utilities out of the Common crate (temporalio/sdk-rust#1237)
2026-04-29 - 21263fa1 - 💥 feat(sdk): failure converter + rich error types (temporalio/sdk-rust#1226)
2026-04-29 - 9747e978 - Update cloud-api protos to v0.14.0 (temporalio/sdk-rust#1240)
2026-04-29 - a9481aae - bump versions 0.4.0 (temporalio/sdk-rust#1241)
2026-04-30 - 87162f50 - chore: upgrade doc code to no_run (temporalio/sdk-rust#1242)
2026-05-01 - 3a6efc35 - Fix flaky shutdown test (temporalio/sdk-rust#1243)
2026-05-01 - 9d1bdf90 - fix(macros): drop anyhow dependency from workflow_methods expansion (temporalio/sdk-rust#1246)
2026-05-05 - a22517e4 - chore: remove unnecessary anyhow wrapping (temporalio/sdk-rust#1247)
2026-05-12 - c57f825f - Add grpc-status trailers to fake gRPC responses (temporalio/sdk-rust#1257)
2026-05-13 - 99d6b402 - chore: update readme to mention public preview (temporalio/sdk-rust#1262)
2026-05-14 - 2ed11c8e - Enforce minimum DNS resolution interval (temporalio/sdk-rust#1272)
2026-05-14 - 68665e50 - Bump windows test leg to 20 minutes (temporalio/sdk-rust#1270)
2026-05-14 - a0ad8769 - feat(dns): add DNS load balancer settings to C bridge (temporalio/sdk-rust#1267)
2026-05-14 - eac03fbc - Upgrade cloud-api to v0.15.0 (temporalio/sdk-rust#1253)
2026-05-15 - 3e6ca9ff - VLN-1346: fix missing-dependency-cooldown (temporalio/sdk-rust#1275)
2026-05-15 - 6d2045dd - Make TLS backend feature-selectable in sdk-core and client (temporalio/sdk-rust#1274)
2026-05-18 - 56a4737e - fix: retry transport-sourced Cancelled errors and count them in metrics (temporalio/sdk-rust#1269)
2026-05-18 - 72374ca1 - (CI) Disable caching cargo binaries (temporalio/sdk-rust#1278)
2026-05-18 - de25e0c8 - fix(sdk): no longer error on cancelling fired timer (temporalio/sdk-rust#1268)
2026-05-19 - 179d7608 - refactor(examples): extract saga compensation into a reusable Saga pattern (temporalio/sdk-rust#1279)
2026-05-19 - 68a9661f - build(deps): update ringbuf requirement from 0.4 to 0.5 (temporalio/sdk-rust#1285)
2026-05-19 - 6c4011d1 - Update README & add banner (temporalio/sdk-rust#1280)
2026-05-19 - d6cfb9c7 - build(deps): update lru requirement from 0.16 to 0.18 (temporalio/sdk-rust#1276)
2026-05-21 - 96e0be0f - Add uds support in channel creation (temporalio/sdk-rust#1288)
2026-05-21 - d58edd2d - Add activity execution interceptors (temporalio/sdk-rust#1277)
2026-05-26 - 3839fa94 - feat(client): support custom ServerCertVerifier in TlsOptions (temporalio/sdk-rust#1271)
2026-05-26 - 5aaabd10 - 💥 WASM Workflows (temporalio/sdk-rust#1239)
2026-05-26 - 5d9faa8d - chore(sdk): rename child_workflow -> start_child_workflow (temporalio/sdk-rust#1263)
2026-05-26 - 866419a7 - docs: update sdk arch docs to include nexus. (temporalio/sdk-rust#1258)
2026-05-26 - bbad3db9 - Upgrade cloud-api to v0.16.0 (temporalio/sdk-rust#1295)
2026-05-26 - bfb47e33 - fix(shutdown): increase shutdown timeout (temporalio/sdk-rust#1290)
2026-05-27 - 4e6dff34 - fix(sdk): no longer treat unrecognized activity as worker fatal error (temporalio/sdk-rust#1296)
2026-05-27 - a3660f40 - Add activity cancels from nexus (temporalio/sdk-rust#1160)
2026-05-28 - 3e39597b - Caret-bump tonic and related packages to 0.14.6 (temporalio/sdk-rust#1303)
2026-05-28 - df5ca0a9 - fix(metrics): emit workflow_type attribute on temporal_workflow_task_execution_failed (temporalio/sdk-rust#1301)
2026-05-29 - 6a8355ac - 💥 Fix possible panic due to LA completing after an eviction (temporalio/sdk-rust#1304)
2026-05-29 - fae4e5b0 - Fix start-to-close timeout failure caused by short heatbeat timeout (temporalio/sdk-rust#1300)
Full Changelog: 1.27.2...1.28.0