- AWS Lambda worker
configureparameter supports sync, async, and async generator style functions. This callback is invoked on the asyncio event loop.
- AWS Lambda worker
configureparameter has been changed to be invoked per-invocation of the worker instead of only at startup. It is advised that any shared, heavy-weight operations are performed outside of the callback beforerun_workeris invoked.
- Added experimental
temporalio.workflow.signal_with_start_workflow, backed by generated system Nexus bindings forWorkflowService.SignalWithStartWorkflowExecution. - Added OpenAI Agents plugin support for
CustomTooldispatch, including lazy tool discovery throughdefer_loading.
- Client connections now use gzip transport-level gRPC compression by default.
Pass
grpc_compression=GrpcCompression.NONEtoClient.connectorCloudOperationsClient.connectto disable it.
StartWorkflowUpdateWithStartInputnow owns the authoritativerpc_metadataandrpc_timeoutfields forOutboundInterceptor.start_update_with_start_workflow. These fields were removed from the nested update-with-start input objects, so custom interceptors that accessed them there should read or update the top-level fields instead.
- Fixed
breakpoint()andpdb.set_trace()inside workflow code when a worker runs withdebug_mode=TrueorTEMPORAL_DEBUG=1; sandboxed workflows without debug mode now get a clearer error pointing todebug_mode=True. - Fixed
start_update_with_start_workflowinterceptor handling so RPC metadata and timeouts are forwarded to the underlyingexecute_multi_operationcall. - Fixed OpenAI Agents plugin streamed event serialization when pydantic had not yet built deferred schemas, and fixed terminal sandbox errors retrying forever.
- Removed the lazy-connect lock from the per-RPC hot path. It was previously
acquired on every RPC, putting an event-loop-bound primitive on the hot path;
it is now skipped once the client is connected. This reduces the client's
coupling to the event loop it connected on, which can help when reusing a
single long-lived
Clientacross event loops or threads (e.g. the dedicated-loop pattern used with gevent/gunicorn and synchronous services). Note this does not make aClientfully thread- or loop-agnostic; reusing one long-lived loop is still the recommended pattern.