Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 51 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,34 @@ to docs, or any other relevant information.

## [Unreleased]

## [v1.6.0] - 2026-07-16

### Added

- Exposed `Temporalio::Workflow::ContinueAsNewError#backoff_start_interval`, to allow the new workflow to start after a delay.
- Added the experimental `Temporalio::Worker` `patch_activation_callback:` option, allowing workers to decide whether a first non-replay `Temporalio::Workflow.patched` call should activate a patch during rolling deployments.

#### Experimental FIPS builds

The native extension can now be built with `TEMPORALIO_FIPS=1` to use the FIPS-mode
`aws-lc-rs` TLS backend for gRPC and OTLP metrics. This is opt-in, source-build only.
FIPS builds use SHA-256 rather than MD5 for the default worker build ID and warn when
the Ruby OpenSSL runtime is not itself in FIPS mode.

#### Experimental RBS and RBI signatures are included in the gem

Released gems now contain the SDK's maintained RBS signatures in `sig/` and Sorbet RBI
signatures in `rbi/`, including generated types for Temporal API messages and services.
These type signatures are subject to change in future releases as we move towards a stronger typing story.

### Changed

#### gRPC transport compression defaults to gzip

Client connections now use gzip transport compression by default. Pass
`grpc_compression: Temporalio::Client::Connection::GrpcCompressionOptions::None.new` to
`Client.connect` or `Client::Connection.new` to opt out.

### Fixed

#### `Workflow.suggest_continue_as_new_reasons` returns workflow enum values
Expand All @@ -32,10 +55,37 @@ Workflow activations containing continue-as-new suggestion reasons previously fa
worker tried to call `to_i` on bridge enum symbols. Continue-as-new suggestion reasons are now
converted from bridge enum symbols to `Temporalio::SuggestContinueAsNewReason` integer enum values before being exposed to workflows.

### Removed shutdown race in `replay_workflow`
#### Deadlock errors from workflow futures fail the current workflow task

A workflow deadlock raised inside `Temporalio::Workflow::Future` is no longer deferred until the
future is awaited. The worker fails the current workflow task immediately, preventing commands
created before the deadlock from being recorded as a successful partial command batch.

#### Scheduler waits for the Protobuf object-cache mutex

The workflow scheduler no longer yields while a workflow fiber is blocked on the
`google-protobuf` object-cache mutex. This prevents a workflow task from completing with only part
of a command batch when Protobuf serialization blocks.

#### `replay_workflow` shutdown after nondeterminism

Fixed a race in `replay_workflow` where if a NDE was hit, worker shutdown could panic if it happens before async activation completion completes.

#### Core updates

- Retried transport-originated gRPC `CANCELLED` errors, such as a connection closure or GOAWAY,
using the normal RPC retry policy while continuing not to retry application-initiated
cancellations.
- Resource sampling interval for worker heartbeating now matches heartbeat interval rather than every 100ms
- Activities with a heartbeat timeout shorter than their start-to-close timeout now still enforce
the start-to-close timeout while heartbeats succeed.
- Local activity completion after workflow eviction no longer risks a Core panic or dispatching a
stale local activity.
- Corrected the `worker_task_slots_used` gauge so it does not count a slot that is currently being
released.
- OTLP metric export failures are now emitted through Core telemetry, making them visible through
the SDK logger.

## [v1.5.0] - 2026-06-11

### Breaking Changes
Expand Down
4 changes: 2 additions & 2 deletions temporalio/Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
temporalio (1.5.0)
temporalio (1.6.0)
google-protobuf (>= 3.25.0)
logger

Expand Down Expand Up @@ -284,7 +284,7 @@ CHECKSUMS
steep (1.10.0) sha256=1b295b55f9aaff1b8d3ee42453ee55bc2a1078fda0268f288edb2dc014f4d7d1
stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1
strscan (3.1.8) sha256=aae2db611a225559f21ffbb71765c9a4e60fd262534a9ea84f4f11c7f32f679e
temporalio (1.5.0)
temporalio (1.6.0)
terminal-table (4.0.0) sha256=f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2
timeout (0.6.1) sha256=78f57368a7e7bbadec56971f78a3f5ecbcfb59b7fcbb0a3ed6ddc08a5094accb
traces (0.18.2) sha256=80f1649cb4daace1d7174b81f3b3b7427af0b93047759ba349960cb8f315e214
Expand Down
2 changes: 1 addition & 1 deletion temporalio/lib/temporalio/version.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# frozen_string_literal: true

module Temporalio
VERSION = '1.5.0'
VERSION = '1.6.0'
end
Loading