Skip to content

1.31.0

Latest

Choose a tag to compare

@github-actions github-actions released this 29 Jul 17:58
84b519e

Notable Changes

Added

  • Added the Worker max_eager_activity_reservations_per_workflow_task option for configuring
    the number of activity slots reserved for eager execution per workflow task. Configured values
    must be positive; use disable_eager_activity_execution to disable eager activity execution.

  • Added experimental SDK payload converter support for values and type hints
    decorated with @transfer_type_convertible(...) using a TransferTypeConverter class.
    This lets types with transfer type converters delegate their wire representation to the
    configured payload converter, preserving SDK behavior such as serialization
    contexts.

  • Added TLSConfig.verification_server_name to verify the server certificate against a fixed name
    instead of the connection's server name. Unlike domain, it does not change the TLS SNI or
    HTTP/2 authority values, which keep following the connected host, so it can be used when the
    server's certificate does not carry the dialed name but on-path infrastructure (e.g. an
    SNI-inspecting egress proxy) needs the SNI to remain resolvable. Requires
    server_root_ca_cert.

  • Added the experimental Worker patch_activation_callback option, allowing workers
    to decide whether a first non-replay workflow.patched call should activate a patch
    during rolling deployments.

Changed

  • Prepared replay-safe workflow activation scheduling that prevents cancellation
    from being lost when another event becomes ready in the same workflow task. The
    behavior is guarded by internal workflow logic flag 2 and remains disabled by
    default during its compatibility rollout.
    Maintainer reminder: keep flag 2 default-disabled for the first two published
    SDK releases that recognize it; enable it in the third release, remove the explicit
    overrides for this flag from tests/worker/test_workflow.py, and replace this rollout
    note with a Fixed entry announcing the behavior change.

💥 Breaking Changes

  • Custom workflow runners that construct WorkflowInstanceDetails must now pass
    payload_converter_factory instead of payload_converter_class. The factory
    returns the already wrapped payload converter that workflow instances should
    use.
  • System Nexus payload converter helpers added for generated bindings are now
    private implementation details, and the remaining public temporalio.nexus.system
    APIs are marked experimental and subject to change.
  • Payload size limits have moved from DataConverter to Client.connect. Pass
    payload_limits=PayloadLimitsConfig(...) (now exported from
    temporalio.client) instead of setting payload_limits on DataConverter.
    Config fields were renamed to payloads_warn_size and memo_warn_size, and
    the deprecated PayloadSizeWarning was removed.

Fixed

  • Marked system Nexus envelope payloads so nested payloads can be detected and
    visited after the envelope is already stored as a payload.

SDK Core

  • db902171 cleanup changelog (#1374)
  • 353fd3b8 chore: limit wasm test concurrency (#1375)
  • 5df57f6d fix(otel): install subscriber on PeriodicReader thread (#1378)
  • 467e871a Update api upstream (#1367)
  • d96b1eb4 feat(sdk): switch to rich search attributes from all getters (#1373)
  • 9b9325cd fix(client): correctly handle Node gRPC style unimplemented method message (#1379)
  • 8e21d5bc chore(ci): use mise for installing protoc (#1382)
  • afb5251f feat(schedules): provide typed accessor to schedule action (#1372)
  • 2cf2c103 Test Cloud gzip support for GetSystemInfo and HealthCheck (#1362)
  • 03a6d123 chore(sdk): reject #[workflow(name=...)] for overriding workflow name (#1390)
  • 95e97686 fix: use worker hearbeat interval for heartbeat system info poller (#1393)
  • 6f75de52 Fix workflow executor cooperative budget livelock (#1396)
  • 6a0a5bc3 docs: update contributing guide (#1397)
  • 208ca8bc chore: add dev tools to mise.toml, remove redundant CI installs (#1386)
  • 207194c9 Fix task slots used metric (#1391)
  • 16452094 feat(sdk): remove remaining raw protos in APIs (#1398)
  • e72c031f feat(sdk): provide typed accessor for workflow count group (#1410)
  • 1b6e4e38 Allow resource controllers to be shared across tuners (#1407)
  • 3dac9013 feat: payload limit enforcement (#1363)
  • 846ac2c5 chore: extract composite action for CI setup, add selective mise installs (#1387)
  • 47d3a40e chore(ci): use github backend for temporal cli (#1414)
  • a9bdead4 Add patch activation callback (#1394)
  • 5f94631d Replace unmaintained backoff crate with backon (#1411)
  • aeb102ef Only set worker control task queue field in polls when appropriate (#1418)
  • 71f46055 feat(sdk): add random and uuid4 in workflow context (#1412)
  • 52aa5ed7 fix(sdk): respect forced failure over completion in same poll (#1417)
  • 19123894 chore(sdk): rename start_activity to execute_activity (#1416)
  • 25de75e1 don't use versioning for internal nexus poller (#1420)
  • eb004c78 Integrate Temporal API 1.63.4 (#1423)
  • d2769368 Make eager activity reservation limit configurable (#1424)

What's Changed

New Contributors

Full Changelog: 1.30.0...1.31.0