releases.shpreview

v1.45.0

Highlights

Workflow Behavior Fixes Enabled by Default

SDKFlagBlockedSelectorSignalReceive and SDKFlagWorkflowNewChannelLostMessages are now enabled by default for new workflow executions. These flags previously gated fixes for selector/signal receive behavior and workflow channel message handling.

Client Transport Compression

gRPC gzip compression is now enabled by default for Temporal client connections, reducing wire size for requests and allowing gzip-compressed responses. Applications that need the previous behavior can disable request compression with client.GrpcCompressionNone.

Workflow Streams Contrib Package

A new experimental contrib/workflowstreams package provides a durable publish/subscribe log hosted inside a Temporal workflow. It supports publishing messages to named topics, long-polling subscription updates, continue-as-new survival, batching, deduplication, truncation, paging, and interoperability with the Python and TypeScript workflow streams packages.

Breaking Changes

💥 Filter nil values from SearchAttributes for Workflow start, Signal with start, and continue as new

Workflow start, signal-with-start, and continue-as-new request construction now omits unset Search Attributes encoded as binary/null. This prevents removed Search Attributes from being carried into new runs, including continue-as-new.

Poller Autoscaling refactored

Workers using poller autoscaling now create poll goroutines dynamically per poll RPC instead of starting the maximum number of pollers up front, matching all core based SDKs. 💥 As part of this refactor, the PollerStartCounter metric is no longer emitted for autoscaling pollers.

What's Changed

New Contributors

Full Changelog: https://github.com/temporalio/sdk-go/compare/v1.44.1...v1.45.0

Fetched June 18, 2026