-
Notifications
You must be signed in to change notification settings - Fork 157
Releases: temporalio/sdk-python
1.23.0
645ad32 💥 Breaking Changes
💥 Experimental standalone activity support in #1307
activity.Infomodified to makeworkflow_id,workflow_namespace,workflow_run_id, andworkflow_typeoptional- 💥 SLIGHT BREAKING CHANGE for those manually expecting non-None fields or manually creating the info for tests
converter.BaseWorkflowSerializationContextintermediate base class removed- 💥 SLIGHT BREAKING CHANGE for those that may have counted on this newly created class, though most should use specific types
- Updated
converter.ActivitySerializationContextto makeworkflow_idandworkflow_typeoptional, updatedactivity_typeandactivity_task_queueto be optional and deprecated, and added optionalactivity_id- 💥 SLIGHT BREAKING CHANGE for those that may have expected these to always be present during serialization, though they'll continue to be present unless you use standalone activities
💥 Payload limit configuration and validation by @jmaeagle99 in #1288
Update worker to get memo and payload error limits from Temporal server and enforce those limits by default. The SDK will now eagerly fail a task that has too large payloads instead of uploading them to the server and having the server fail the workflow. If the server doesn't report error limits, error limits are not enforced in the worker.
Other Changes
- Nexus Worker Shutdown Notification and Tests by @VegetarianOrc in #1318
- Expose default activity info via static method by @cretz in #1308
- Bump protobuf from 6.33.0 to 6.33.5 by @dependabot[bot] in #1313
- Bump bytes from 1.10.1 to 1.11.1 in /temporalio/bridge by @dependabot[bot] in #1317
- Add random seed access and callback methods to temporalio.workflow by @tconley1428 in #1320
- Add workflow context to signal deserialization error log by @cretz in #1325
- Add OpenTelemetry v2 integration with enhanced features and comprehensive testing by @tconley1428 in #1314
Full Changelog: 1.22.0...1.23.0
Notable Core Fix
2026年02月17日 - 20a68176 - Poller autoscaler: further refinement of backoff on grpc errors #1111
- Prevents potential retry storm on
GPRC_RESOURCE_EXHAUSTEDwhen using poller autoscaling.
Core SDK Updates
2026年01月29日 - f837d73e - Add CAN versioning and suggested reasons to core protos #1104
2026年02月03日 - 5045af35 - Plumb initial versioning behavior #1107
2026年02月03日 - cd92f915 - Fix TemporalPatchVersion search attribute type to use KeywordList format #1106
2026年02月04日 - 231e21ca - Fix incorrect metric kind repported in Buffered Metrics #1108
2026年02月12日 - 7ecb7c05 - Poller autoscaler: add backoff on ResourceExhausted errors #1110
2026年02月13日 - fb14d9c3 - Fix recording workflow termination metrics before receiving server response #1112
2026年02月17日 - 12c656f7 - Remove extra license file from macros. Causing build failures in Python features tests #1116
2026年02月17日 - 20a68176 - Poller autoscaler: further refinement of backoff on grpc errors #1111
Contributors
Assets 2
1.22.0
f36ceb4 Highlights
- Deployment-based Worker Versioning APIs are in General Availability.
- Environment Configuration is in General Availability.
What's Changed
- Adds basedpyright support to
poe lintby @tconley1428 in #1240 - Remove stdlib_module_names test that is no longer relevant by @VegetarianOrc in #1259
- Update sdk-core to incorporate 1.60.0 api release by @jmaeagle99 in #1271
- Add is_replaying_history_events to allow logging in queries and validators by @cretz in #1274
- Nexus todo triage by @VegetarianOrc in #1269
- Add a way to disable sandboxing on workflow logger by @tconley1428 in #1264
- Remove logger handlers in tests by @jmaeagle99 in #1293
- test(dev-server): support UI port by @Lujeni in #1273
- Update sdk-core submodule to latest by @jmaeagle99 in #1299
- Move payload codec, encode, and decode calls to DataConverter helper methods by @jmaeagle99 in #1305
- fix(README): replace relative imports with absolute imports in quicks... by @Lujeni in #1272
- Add header tests for Nexus operations by @VegetarianOrc in #1291
- Add test for missing @workflow_run_operation decorator by @VegetarianOrc in #1290
- Add Workflow Caller test for Nexus Operations with Async and Non-Async Cancel Methods by @VegetarianOrc in #1281
- Remove experimental warnings for worker versioning and envconfig by @THardy98 in #1315
Bug Fixes
- Fix handoff closure bug and add multiple handoffs test by @tconley1428 in #1310
Dependency Updates
- Bump aiohttp from 3.13.0 to 3.13.3 by @dependabot[bot] in #1298
- Bump mcp from 1.17.0 to 1.23.0 by @dependabot[bot] in #1304
- Bump starlette from 0.48.0 to 0.49.1 by @dependabot[bot] in #1303
- Bump python-multipart from 0.0.20 to 0.0.22 by @dependabot[bot] in #1306
- Bump urllib3 from 2.5.0 to 2.6.3 by @dependabot[bot] in #1296
- Bump filelock from 3.20.0 to 3.20.3 by @dependabot[bot] in #1297
- Bump lru from 0.16.0 to 0.16.3 in /temporalio/bridge by @dependabot[bot] in #1266
sdk-core changes
2025年12月18日 - 12bc359b - Fix wf_task_replay_latency metric recording for non-replay tasks (temporalio/sdk-core#1083)
2026年01月06日 - 66ddab4b - Downgrade worker heartbeat log (temporalio/sdk-core#1088)
2026年01月08日 - cc1ed609 - Clarifying comment for worker heartbeating's use of latency metric (temporalio/sdk-core#1089)
2026年01月09日 - d8a2bf19 - Always send shutdown_worker RPC, fix WorkerStatus state when shutting down worker (temporalio/sdk-core#1082)
2026年01月12日 - 372b2708 - Fix bug where we count first WFT as sticky cache hit (temporalio/sdk-core#1091)
2026年01月13日 - d104a77d - Update api_upstream to v1.60.0 (temporalio/sdk-core#1090)
2026年01月15日 - 5c9bcd10 - Add Request Deadline as timestamp to NexusTask (temporalio/sdk-core#1094)
2026年01月23日 - 22cd04bc - Update upstream_api to v1.61.0 (temporalio/sdk-core#1100)
2026年01月23日 - 9dedad11 - Update Worker validate to allow SDKs to get namespace limit information (temporalio/sdk-core#1102)
New Contributors
- @jmaeagle99 made their first contribution in #1271
- @Lujeni made their first contribution in #1273
Full Changelog: 1.21.1...1.22.0
Contributors
Assets 2
1.21.1
f0bd341 Bug Fixes
- Dynamic handlers now support
typing.Sequenceandcollections.abc.Sequencefor their third argument. - Add compatibility with OpenAI Agents SDK 0.6.4.
Specific Changes
2025年12月19日 - 772050e - Add backward compatibility for dynamic handler signatures (#1258) 2025年12月19日 - f0bd341 - OpenAI - Fix generics is instance (#1261)
Assets 2
1.21.0
44770ff TLS Automatically Enabled When API Key Provided
When creating a Client, specifying the api_key option will now automatically enable TLS. Users that wish to use an API Key without TLS enabled must explicitly pass tls=False when creating their client. See Client.connect for a detailed description of configuration options and behavior.
Highlights
- Core was upgraded from 45b1d7e to b5a473d.
- Advanced users may specify the environment variable
TEMPORAL_POLL_SHUTDOWN_INTERRUPT_WAIT_MSto specify a wait time before interrupting polls during shutdown. - Loosened dependency ceiling for OpenAI Agents SDK to <= 0.7
Bug Fixes
Client.config()andWorker.config()now properly return a copy of the config passed during creation instead of the "active" config that may have been modified. Users that wish to get a copy of the config currently in use may passactive_config=Trueto both methods.
Breaking changes
- TLS will automatically be enabled when
api_keyis specified. - The type for
nexus_task_exectuoroption forWorkerwas narrowed fromconcurrent.futures.Executortoconcurrent.futures.ThreadPoolExecutor. - The unused arguments
static_summaryandstatic_detailsoptions inClient.create_schedulehave been removed. - Dynamic Handlers now use
collections.abc.Sequenceinstead oftyping.Sequencefor their third argument. - Types that were deprecated as of Python 3.9 have been updated to use the recommended alternative for Python 3.10+.
Specific Changes
2025年12月02日 - 27096aa - Store initial configuration and provide it in config() by default (#1226)
2025年12月02日 - cc19379 - 💥 Enable TLS if api key provided (#1229)
2025年12月03日 - 90dda94 - Add retrying of workflow validation errors only on python 3.10 (#1223)
2025年12月03日 - a48cece - Support RequestIdReference in Nexus Links (#1228)
2025年12月04日 - 3400d8c - Remove file exclusions for pyright (#1235)
2025年12月04日 - 96e2dab - Doc fixes (#1241)
2025年12月08日 - 4439675 - Update for 3.10 best practices (#1236)
2025年12月08日 - 6a3385b - upload nightly tps metrics to s3 (#1242)
2025年12月08日 - 89fb17f - 💥 Nexus MetricMeter Support (#1233)
2025年12月09日 - fd17cdf - 💥 Remove unused metadata from client.create_schedule. Ensure WorkflowHistoryEventAsyncIterator.fetch_next_page uses the provided page_size override when called (#1247)
2025年12月10日 - 8ac0a9e - Install built wheel directly in build-binaries (#1245)
2025年12月10日 - b0adaae - Nexus interceptors (#1218)
2025年12月16日 - 7cfc65b - Update core (#1253)
2025年12月17日 - c5eb6e2 - Replace WorkflowIdReusePolicy.TerminateExisting by WorkflowIdConflictPolicy (#1243)
2025年12月18日 - 1f9e315 - Update dependency ceiling for OpenAI agents (#1256)
Assets 2
1.20.0
dbcbc08 Worker Heartbeating (Public Preview)
This release adds a new feature called Worker Heartbeating. This feature spins up a single nexus-only worker per Client/Namespace/Task Queue in the background and periodically sends some basic metrics over to server for all of the workers registered on the same Client/Namespace/Task Queue.
Server version 1.29.1 and newer supports this feature. This feature will be enabled by default, although this currently requires a server dynamic config flag, --dynamic-config-value frontend.WorkerHeartbeatsEnabled=true to enable. Currently, the only way to interact with this new data is to also enable the flag --dynamic-config-value frontend.ListWorkersEnabled=true, then use CLI commands temporal worker list and temporal worker describe to query the data. If heartbeating is enabled with a server version older or with the config flag off, a single warning log Worker heartbeating configured for runtime, but server version does not support it. on worker startup will emit.
Highlights
- Core was upgraded from 682d441 to 45b1d7e.
Runtimeuse across forks now eagerly fails, making it fail in a more obvious way. Specifically, using aRuntimefrom a different process ID will now eagerly fail.
Breaking changes
- Core crate names have changed, see temporalio/sdk-core#1034 for more details. If users are directly referencing these crate names, like for setting log levels, they will need to be updated to the new names.
Specific Changes
2025年11月17日 - 5d1630d - Nexus task cancellation (#1204)
2025年11月17日 - ceb7058 - Prevent Runtime use over forks (#1208)
2025年11月21日 - 3fd1c7e - Fix up plugin readme (#1211)
2025年11月24日 - 6d2924b - Add Summary to Nexus operations (#1219)
2025年11月24日 - 77f2346 - use sys.stdlib_module_names in restrictions. Move dynamic import warning to only apply to non-passed through modules (#1222)
2025年11月25日 - b5001f9 - Update Core, configure worker types, send plugin names to Core (#1157)
Assets 2
1.19.0
11e8650 Sandbox Importing Changes
Modules imported after workflows have been loaded into the sandbox now produce a warning message by default. See the Import Notification Policy docs for more info and customization options.
OpenAI Agents Changes
- Add new upper bound of version
0.5.0foropenai-agents
Breaking Changes
- Python 3.9 support has been removed now that it has reached end of life status.
Plugininterfaces have been updated to use invocation provided callables instead of initializers.MCPServerProvidersnow require anameargument.TestModelandTestModelProviderhave been moved fromtemporalio.contrib.openai_agentstotemporalio.contrib.openai_agents.test
Specific Changes
2025年09月30日 - 4a70f3d - Update version to 1.18.1 (#1135)
2025年10月01日 - a31886d - Serialization context (#1102)
2025年10月02日 - 4f08626 - Use type in start/execute activity/workflow to address Pyright Strict mode error (#1137)
2025年10月06日 - 26e2e61 - Generate RPC calls in Bridge Client (#1123)
2025年10月06日 - 5ca4861 - Provide option to disable activity registration (#1140)
2025年10月07日 - 42fe382 - Flaky session test (#1141)
2025年10月07日 - 5e93e63 - 💥 Plugin Overhaul (#1139)
2025年10月07日 - d27bb11 - Move visitor, bridge client generation, and formatting to poe tasks (#1142)
2025年10月07日 - e4df5e7 - Add googleapis-common-protos to fix tests in build-binaries workflow (#1143)
2025年10月09日 - cde3427 - Use macOS 15 intel runners (#1148)
2025年10月14日 - 162cff7 - 💥 Allow arguments to be provided to MCP Server creation (#1147)
2025年10月14日 - 70deb94 - Replace Proto modules with the python path (#1156)
2025年10月14日 - 788d391 - Remove experimental notices for worker tuners (#1152)
2025年10月16日 - 2ad41ab - Replace tctl references with Temporal CLI (#1165)
2025年10月16日 - 2efd9a7 - Add start_update_with_start_workflow to Otel Interceptor (#1150)
2025年10月20日 - 4fe685a - Allow h2 error message (#1170)
2025年10月20日 - 778fc9a - Support python 3.14 and deprecate python 3.9 (#885)
2025年10月20日 - f03ddc2 - Add programming language classifiers to fix badge on next publish (#1151)
2025年10月22日 - 5994a45 - Avoid token detaching from different context (#1153)
2025年10月22日 - c8cbfe0 - Modify code comment for Worker build_id field #1160 (#1163)
2025年10月24日 - 7f794d0 - Update license in pyproject.toml (#1175)
2025年10月24日 - 988b12c - Allow openai 0.4, update lock to use it (#1182)
2025年10月25日 - 27903f7 - Add nightly throughput stress (#1173)
2025年10月27日 - 231cc67 - Adds proper failure decoding in workflow activation (#1192)
2025年10月27日 - 630a031 - Match openai logic to retry on >= 500 not == 500 (#1181)
2025年10月27日 - 8f754b4 - Opentelemetry baggage propagation fix (#1174)
2025年10月27日 - ba3d50f - Add a test for split worker scenario (#1193)
2025年10月27日 - e39e8f2 - Add option to run models as local activities (#1183)
2025年10月28日 - 0eb96eb - Sandbox importing (#1187)
2025年10月28日 - c3448cc - Skip flaky test on versions with importer bug (#1195)
2025年10月29日 - 1b70f07 - Tps nightly small improvements (#1200)
2025年10月30日 - 35347b9 - Fix: Resolve TypeError in value_to_type on Python 3.13 (issue #1188) (#1189)
2025年10月30日 - 5f24792 - 💥 Expose agent testing utils (#1164)
2025年10月30日 - 660ac2b - VLN-492: Set explicit permissions for GitHub Actions workflows (#1199)
2025年10月30日 - a08250a - refactor: use classmethod in factory methods (#1179)
2025年11月06日 - 4156856 - fix: typo in time sandboxed utilities (#1205)
2025年11月06日 - e543e8a - fix: typed search contains should work for falsy values (#1206)
Assets 2
1.18.2
Bug fixes
- Ensure
causefields ofFailureprotos are encoded with user codecs.
Specific Changes
2025年10月27日 - e4969c0 - Adds proper failure decoding in workflow activation (#1192)
Full Changelog: 1.18.1...1.18.2
Assets 2
1.14.2
Bug fixes
- Pin
nexus-rpcversion to prevent accidental upgrade to a breaking version.
Specific Changes
2025年10月23日 - 988ad10 - Lock nexus-rpc to 1.1.0
Full Changelog: 1.14.1...1.14.2
Assets 2
1.18.1
4a70f3d 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
Assets 2
1.18.0
3fe7e42 OpenAI Agents Changes
- Support and new lower bound of version
0.3.0foropenai-agents - Workflow failure exceptions will now correctly fail the workflow from inside the
Runner - Expanded MCP support
Breaking Changes
- The
encode_failuremethod onPayloadConverteris no longer called in all cases it once was, usingencode_payloadinstead. This only affects customPayloadConverterimplementations which overloadencode_failureto work differently fromencode_payload - The advanced
WorkerTuner.create_compositehas 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)