Skip to content

Releases: temporalio/sdk-python

1.18.1

30 Sep 15:01
4a70f3d
Compare
Choose a tag to compare

PyPI

Bug fixes

  • Search attributes on child workflows would fail when using a payload codec
  • Looping agent handoffs would try to use the original model outside an activity

Specific Changes

2025-09-24 - 2f04a16 - Fix flaky test: test_workflow_return_is_honored_when_it_precedes_signal_completion_command (#1115)
2025-09-24 - 6dd59dd - Fix flaky test: test_workflow_patch_memoized (#1114)
2025-09-25 - fd51efa - Fix model replacement on looping handoffs (#1122)
2025-09-29 - 02322ad - pytest and pydoctor QOL improvements (#1124)
2025-09-29 - 1afaa44 - Fix flaky test: test_workflow_cancel_activity (#1119)
2025-09-29 - 47781f7 - Fix Flaky Test: test_custom_slot_supplier (#1126)
2025-09-29 - 4e9cbab - Fix search attribute skipping on protos which don't use the SearchAttributes message type (#1131)
2025-09-29 - e92514a - Extend timeout on test_session execution (#1128)
2025-09-29 - ed1f6ca - Expose strict_json_schema in activity_as_tool (#1094)

Full Changelog: 1.18.0...1.18.1

1.18.0

19 Sep 23:41
3fe7e42
Compare
Choose a tag to compare

PyPI

OpenAI Agents Changes

  • Support and new lower bound of version 0.3.0 for openai-agents
  • Workflow failure exceptions will now correctly fail the workflow from inside the Runner
  • Expanded MCP support

Breaking Changes

  • The encode_failure method on PayloadConverter is no longer called in all cases it once was, using encode_payload instead. This only affects custom PayloadConverter implementations which overload encode_failure to work differently from encode_payload
  • The advanced WorkerTuner.create_composite has a new required field: nexus_supplier
  • Only enable native roots if CA override not specified - see temporalio/sdk-core#1007 in sdk-core

Specific Changes

2025-09-02 - 3f7bd33 - Fix build binaries (#1074)
2025-09-03 - 42135f0 - Delete unused helper (#710)
2025-09-03 - 70e5bea - Fix nexus cancellation wait completed test (#1073)
2025-09-03 - a004faa - Python support for activity reset (#1065)
2025-09-03 - a3c5370 - Bump tracing-subscriber from 0.3.19 to 0.3.20 in /temporalio/bridge (#1068)
2025-09-03 - a46a742 - Fix code sample alignment & trim trailing whitespace (#1038)
2025-09-03 - bef76a6 - Even more convenient proto generation (#1039)
2025-09-03 - c643e8a - Tweak .result() doc (#706)
2025-09-03 - c8b0b78 - Reraise workflow failure errors from OpenAI's UserError (#1060)
2025-09-04 - 44412ae - Expose Last Completion Result and Previous Run Failure (#1067)
2025-09-04 - 5e9b2ba - Minor edits and code cleanup (#609)
2025-09-04 - 7be26da - Add a test for output type coercion (#1076)
2025-09-04 - c3426ce - Fix return type of workflow.wait (#650)
2025-09-04 - e92f391 - Add Summary to LocalActivityConfig and apis (#1061)
2025-09-08 - 9372d47 - Fix openai plugin bug (#1083)
2025-09-09 - 30a6b8d - Only set payload converter, fail if already set (#1086)
2025-09-09 - 44f0c42 - Added retry policy to activity info (#1055)
2025-09-10 - 101d89d - Don't set error status on otel spans for benign exceptions (#1085)
2025-09-10 - 634c5ec - 💥 Add generic payload visitor for WorkflowActivation[Completion] (#1075)
2025-09-10 - 706c89b - Changes to adapt to openai version 0.2.11 (#1092)
2025-09-11 - e782160 - uv.lock (#1096)
2025-09-12 - 9d70d44 - Add support for gRPC binary metadata values (#1070)
2025-09-12 - ce8dc4a - Remove validatoriterator workarounds (#1046)
2025-09-13 - 84b184f - Nexus worker concurrency control (#1066)
2025-09-16 - 2a2b83b - Update protobuf (#1082)
2025-09-18 - 0e1fa4f - Make env config TLS disabled field optional (#1105)
2025-09-19 - 7605619 - Rename mcp_servers to mcp_server_providers (#1110)
2025-09-19 - 8c4e2c8 - MCP server support (#1021)

1.17.0

03 Sep 01:29
85c47f7
Compare
Choose a tag to compare

PyPI

Nexus features

  • Nexus operation handlers can now use id_conflict_policy=WorkflowIDConflictPolicy.USE_EXISTING so that multiple callers "attach" to the same workflow.
  • Correct handling of WorkflowAlreadyStartedError

Specific Changes

2025-08-25 - a9c71aa - Support multiple nexus callers attaching to same workflow (#1051)
2025-08-26 - 2affa25 - Python Nexus convert workflow start errors to Nexus errors (#1052)
2025-08-27 - 229fe37 - Fix a few typos in plugin readme (#1062)
2025-08-28 - 7f228d8 - Test workflow outbound nexus interception (#1064)
2025-08-29 - bb90aab - Don't fail on newtype string dict keys (#1059)
2025-09-02 - 251084d - Fix nexus cancellation type test flake (#1057)
2025-09-02 - 85c47f7 - Bump version for release (#1069)
2025-09-02 - 8bb0b80 - Changed openai-agents dependency to <=0.2.9, upgraded uv.lock (#1072)

1.16.0

21 Aug 22:18
607641b
Compare
Choose a tag to compare

PyPI

Task Queue Fairness (Pre-release)

This release adds support for Task Queue Fairness. Fairness is a new feature of Temporal's task queues that allows for more control over the order that tasks are dispatched from a backlog. It's intended to address common situations like multi-tenant applications and reserved capacity bands.

Nexus cancellation types (Pre-release)

A cancellation type can now be set when starting a nexus operation. This determines the behavior of the Nexus operation when the caller workflow initiates cancellation. See the NexusOperationCancellationType enum.

💥 Changes to execute_child_workflow API

In order to align execute_child_workflow with start_child_workflow and make ChildWorkflowConfig usable for both, the summary argument has been replaced with static_summary. See (#1019)

💥 Plugin Changes (Experimental Feature)

The plugin interface has been changed. Implementors now have to implement each method so as to consider whether they need to make any customizations in those areas. In addition, the plugin has new methods which allow customization of a Replayer. See (#1011)

Specific Changes

2025-07-29 - 3244f8b - Fix readme to work with plugins (#1008)
2025-07-29 - 3f93a68 - Update README for OpenAI Agents SDK Integration (#1001)
2025-07-29 - 62604ca - announcement (#1010)
2025-08-04 - 1573433 - make profile optional, necessary for rust core to create fallback profile (#1004)
2025-08-04 - 3777095 - Fix start_activity overloads (#1014)
2025-08-04 - 7e1c725 - 💥 Update activity and workflow config objects. Change execute_child_workflow summary argument to static_summary (#1019)
2025-08-04 - b59c555 - Add plugin to workflowenvironment (#1015)
2025-08-06 - 71ed93c - 💥 Replayer configuration from plugins (#1011)
2025-08-08 - 11c2817 - Nexus: eliminate unused arguments (#1022)
2025-08-12 - e1016bc - Cleanup tests to deduplicate static response construction (#1023)
2025-08-15 - 2cea1a2 - Add first_execution_run_id to workflow info (#1027)
2025-08-15 - e9d8c1a - remove address check (#1030)
2025-08-16 - 49c2400 - Fix circular import: do not import temporalio.client in temporalio.nexus (#973)
2025-08-18 - 916ea3c - Fixes for new metrics interface (#940)
2025-08-18 - e2c0ced - Implement get_task_factory (#1031)
2025-08-19 - 9054679 - Respond to upstream: nexus start sync failure (#1026)
2025-08-19 - a09bb85 - Fairness Keys & Weights (#1036)
2025-08-20 - 2b5de91 - Move model stub creation from RunConfig to Agent (#1029)
2025-08-20 - 3c6fae6 - Bump slab from 0.4.10 to 0.4.11 in /temporalio/bridge (#1034)
2025-08-20 - 5080b68 - Don't add startActivity, etc spans when there is no parent trace in which to nest them (#1037)
2025-08-21 - 55d5d7c - Priority Key None by default (#1044)
2025-08-21 - 826edfd - Extend test timeout to 15 minutes. Macos-intel is running over (#1042)
2025-08-21 - a0147d5 - Nexus cancellation types (#981)
2025-08-21 - eb9097d - Bump version

1.15.0

29 Jul 03:50
20bb869
Compare
Choose a tag to compare

PyPI

  • Plugin support - Plugins are a new way of providing easy configuration of workers and clients
  • Ongoing development of OpenAI Agents Integration

💥 Breaking Changes

  • OpenAI Agents integration is now intended to be used through OpenAIAgentsPlugin, the previous method of configuring with set_open_ai_agent_temporal_overrides is no longer exported.
  • OpenAI Agents integration tracing now uses a separate random generator for uuids. If a workflow was using both workflow.random and OpenAI agents tracing, this could cause an NDE on replay.

Specific Changes

2025-07-10 - 6fcda0f - Convert class to module (#958)
2025-07-10 - e73d6b5 - Support Nexus tool calls in OpenAI Agents integration (#949)
2025-07-11 - 28f43f1 - User saner python version syntax (#959)
2025-07-14 - 2443c50 - Type-checking (#962)
2025-07-14 - 808a5f4 - Install nexusrpc from GitHub (#966)
2025-07-14 - 8a003ec - Update core env vars (#964)
2025-07-14 - f4ca16d - Use links from StartWorkflowExecutionResponse if present (#963)
2025-07-15 - 1fec723 - Add documentation of interceptors to README (#970)
2025-07-16 - 33b4a43 - Remove UwS experimental notices (#975)
2025-07-16 - c37c69f - Support for method activities conversion into tools (#968)
2025-07-16 - e6f6f91 - Provide client in activity context (#740)
2025-07-18 - 4949c1e - Add tests for type-checker false-negatives (#976)
2025-07-18 - 60f67d9 - Fixing OpenAI tracing issues (#974)
2025-07-21 - 126bcd8 - Plugin Support (#952)
2025-07-21 - 7c57a76 - Fix more type errors (#977)
2025-07-22 - 0f3c577 - 💥 OpenAI/plugin (#956)
2025-07-22 - 8b727e5 - Add argument validation for the types of provided tools (#985)
2025-07-22 - 9e7dc7a - Update agents sdk dependency to latest. (#983)
2025-07-22 - fe82b07 - Add exception catching logic to model activity (#982)
2025-07-23 - d863f5c - Add heartbeat test and fix bug (#984)
2025-07-23 - f815886 - Add test for chat completions model (#986)
2025-07-24 - 3d9bfee - Disallow use of sqlite sessions, but pass through others (#993)
2025-07-24 - 79f2900 - Making summary generation more robust (#987)
2025-07-24 - a457184 - Use an iterator instead of a shared global index in openai agent tests (#991)
2025-07-24 - da6616a - Fail if user provides mcp servers (#990)
2025-07-25 - b6b0973 - More builtin OpenAI tool types and test for Lite LLM custom provider (#988)
2025-07-25 - beb9c9d - Use the agent's model name if not present in runconfig (#996)
2025-07-25 - e767013 - Add workaround for case where un-picklable types are passed to Runner (#997)
2025-07-25 - fc564c4 - 💥 Move tracing uuids to use a separate Random from the workflow seed (#992)
2025-07-28 - c8bc329 - Add tests for update-with-start reattach behavior (#1000)
2025-07-28 - 6f1d62b - fix typing when passing loaded config into Client.connect, raise error if 'address' not provided by config (#998)
2025-07-28 - b99782f - Pin nexus version, revert change depending on latest

1.14.1

10 Jul 21:00
5d0e9b1
Compare
Choose a tag to compare

❗UPDATE: Please update to latest release: the nexus-rpc version is not pinned in this release. This could cause errors on future nexus-rpc releases.

PyPI

  • Fixes a bug related to event links in Nexus Pre-release that resulted in 500 errors in web UI (#953)

  • The OpenAI Agents Integration module layout has changed, requiring different import paths in user code. All needed types are available off temporalio.contrib.openai_agents or temporalio.contrib.openai_agents.workflow. Additionally, open_ai_data_converter is fully removed, replaced with pydantic_data_converter. (#947)

The second change mentioned is a breaking change to an experimental feature; the release is numbered as a patch release.

Specific Changes

2025-07-08 - 61af3ea - 💥 Streamline OpenAI module layout (#947)
2025-07-08 - e17146f - Adding encoding of payload headers, currently defaults to existing behavior, not encoding (#939)
2025-07-09 - 3a27fe8 - Remove wrapping function decorator (#948)
2025-07-10 - 31c1c41 - Nexus: evolve link conversion and query param processing (#953)
2025-07-10 - 5d0e9b1 - 1.14.1 (#957)
2025-07-10 - bdddb07 - Pyright diagnostics (#954)

1.14.0

08 Jul 06:03
3be6b80
Compare
Choose a tag to compare

❗UPDATE: Please update to latest release: the nexus-rpc version is not pinned in this release. This could cause errors on future nexus-rpc releases.

PyPI

Highlights

  • Experimental Nexus support (#813)
    The SDK now has experimental support for defining Nexus operations, running a Nexus worker, and calling Nexus operations cross-namespace from a workflow. See README.md#nexus to get started. Please note that all Python Nexus APIs are currently experimental: breaking changes are anticipated.

  • OpenAI Agents SDK integration updates (#923, #942)

💥 Breaking Changes

  • Change to sys.modules behavior inside the workflow sandbox (#936). Use disable_lazy_sys_module_passthrough option in sandbox restriction config to opt-out.

Specific Changes

2025-06-20 - 3e2500c - Do not wrap workflow-failure exceptions from converters in workflows (#882)
2025-06-20 - 8bb5935 - Fix cannot access local variable 'extra' where it is not associated with a value (#900)
2025-06-22 - 1a2aca2 - Evolve sandbox documentation (#907)
2025-06-23 - 4a18f1f - Activity worker: refactoring part 2 (#899)
2025-06-23 - 6bd7256 - Fix a few typos (#910)
2025-06-25 - 40f1624 - Fixing issues with openai integration on python 3.9 (#918)
2025-06-25 - 4cf0697 - Adding named params to openai activity configurations (#917)
2025-06-25 - 56023fa - Update Core (#919)
2025-06-26 - 34bb050 - Environment configuration (#895)
2025-06-26 - dac2eb2 - Fix bridge clippy warnings with new rust version (#924)
2025-06-27 - 29599e5 - Adding an end to end test which uses an openai service account (#922)
2025-06-27 - 95fc1c9 - Bump core (#926)
2025-06-27 - ac7fcc5 - Use the activity info provided during interceptor construction (#903)
2025-06-30 - 5a95f8e - Adding tests for guardrail samples (#929)
2025-06-30 - 61d5072 - Support for more activity tool inputs (#923)
2025-06-30 - 8fc55e7 - Experimental CI entry to run tests with latest dependencies (#920)
2025-07-01 - 47027fc - Adding replay and end to end tests for all existing tests (#930)
2025-07-01 - 83d2ae4 - OpenAI trace fixes (#934)
2025-07-02 - 633b90c - Making raise on cancellation the default (#935)
2025-07-02 - a98d6fd - Move openai e2e tests to normal server (#937)
2025-07-03 - 9d40e86 - 💥 Lazy passthrough for sys.modules and OpenAI converter/sandbox improvements (#936)
2025-07-07 - 6fbc4c5 - Set default model activity timeout to 60s (#941)
2025-07-07 - e2b2337 - Only run openai e2e tests on one matrix entry (#943)
2025-07-07 - ecfb72f - OpenAI tool context (#942)

1.13.0

20 Jun 19:59
84be986
Compare
Choose a tag to compare

PyPI

Highlights

  • Upgrading pyo3 to 0.25 in preparation for python 3.14 support
  • Experimental integration with OpenAI Agents SDK

Specific Changes

2025-06-02 - 520aefd - Swallowed cancellation (#879)
2025-06-05 - 316a528 - Handle case where in_workflow is called in a synchronous activity (#884)
2025-06-05 - 785aca6 - Add handling for datetimes to the default Json Converter (#872)
2025-06-05 - ee6f8d7 - Instantiate interceptors later in workflow instance construction so that more variables are available. Notably, allows signal registration to work (#887)
2025-06-09 - 0e480cc - Update README to not recommend async activities (#876)
2025-06-09 - be4e099 - Use pytest-pretty (#886)
2025-06-10 - 39f8e84 - Adding trace identification numbers (#888)
2025-06-12 - 13b27be - Update pyo3 to 0.25 and convert to pyo3-async-runtimes (#897)
2025-06-17 - 35b1a35 - Fix memo payload metadata memory sharing bug (#901)
2025-06-18 - 53d9ace - OpenAI agents support (#898)
2025-06-18 - 7e4857f - Deprecate VersioningIntent (#902)
2025-06-20 - 7be1ce8 - Add openai-agents to build-binaries (#908)

1.12.0

30 May 19:03
4fe535c
Compare
Choose a tag to compare

PyPI

Highlights

  • Memos can be added and modified inside a workflow by calling upsert_memo method.
  • Executing local activities which do not exist will fail the workflow task instead of the activity
  • Application failures can specify a category to control logging and metrics behavior of activity failures
  • Activities can be paused via temporal activity pause, which will interrupt the activity's execution with a cancel-like exception

💥 Breaking Changes

  • static_details and static_summary properties on WorkflowExecutionDescription are now async methods
  • The worker options max_concurrent_workflow_tasks and max_concurrent_workflow_task_polls (or workflow_task_poller_behavior using SimpleMaximum) must be at least two. Previously this would silently cause issues, now it is a hard error at worker startup time.

Specific Changes

2025-05-12 - 257f143 - Upsert memo support (#858)
2025-05-12 - 2864297 - Add a workflow level check for the existence of a local activity (#857)
2025-05-13 - 80b2ad1 - Add new workflow info field for workflow_start_time (#866)
2025-05-14 - b0aae9b - Fixed serialization of typing.Literal (#867)
2025-05-15 - 51af3e6 - 💥 Breaking Change - Make static_details and static_summary lazy on the workflow description (#869)
2025-05-15 - 8449a35 - Add application category (#853)
2025-05-16 - 5afb131 - Changed test timeout to 60s (#868)
2025-05-16 - b53be98 - Versioning Override support (#871)
2025-05-17 - e9d3b01 - Activity worker refactor (#860)
2025-05-19 - 1b136a0 - Clean up existing code (#861)
2025-05-28 - b24326c - 💥 Breaking change - Update core to fix low wft slots/pollers issue (#877)
2025-05-29 - 27cc67f - Interrupt heartbeating activity on pause (#854)

1.11.1

09 May 17:09
0e08ff8
Compare
Choose a tag to compare

PyPI

This is a patch release fixing a bug that would cause a Worker using the older Build-ID-based versioning APIs to fail to receive tasks.

Specific Changes

2025-05-08 - 820218c - Fix incorrectly set legacy build id options (#859)