Features
-
💥 Make client gRPC retry more configurable (#879)
BREAKING CHANGE:
GrpcRetryOptions.retryableDecider
now gets theattempt
number as the first argument. This is an advanced/rare option, and the change should be caught at compile time.Also adds
BackoffOptions
anddefaultGrpcRetryOptions
.NOTE: This feature is experimental and its API may change.
-
[
client
] Delete search attributes with empty array values in describe() response (#878)⚠️ This fixes a bug where empty/deleted Custom Search Attributes were returned as
[]
fromworkflowHandle.describe()
. Such attribute properties will no longer be present in theWorkflowExecutionDescription.searchAttributes
object. Note that this behavior is consistent with what you'll see if using a pre-1.4 version of the SDK with Server version 1.18. -
Add support for custom failure converters (#887)
Adds
DataConverter.failureConverterPath
andFailureConverter
, which converts from proto Failure instances to JS Errors and back.We recommended going with the default (i.e. not using the
failureConverterPath
option) in order to maintain cross-language Failure serialization compatibility.NOTE: This feature is experimental and its API may change.
-
[
workflow
] AddworkflowInfo().unsafe.now()
(#882)It returns the current system time in milliseconds. The safe version of time is
new Date()
andDate.now()
, which are set on the first invocation of a Workflow Task and stay constant for the duration of the Task and during replay. -
Upgrade core, add support for OTEL metric temporality (#891)
- Upgraded otel and other deps (temporalio/sdk-core#402)
- Fix incorrect string names for polling methods (temporalio/sdk-core#401)
Miscellaneous Tasks
-
Remove
internal-*
packages (#881)⚠️ Any imports from
@temporalio/internal-*
need to be updated. As noted in their named and READMEs, they're not meant to be used to directly, so we don't imagine this is a common case. However, if you do find instances, they should be changed to importing from:@temporalio/internal-non-workflow-common ➡️ @temporalio/common/lib/internal-non-workflow @temporalio/internal-workflow-common ➡️ @temporalio/common
-
[
common
] Deprecate internal functions that should have never been exported (#893)Some time-related and binary conversion internal helper functions were exported from
@temporalio/common
. They are now deprecated and hidden from the API reference, as they're meant for internal use only. -
[
workflow
] ExportLoggerSinks
from@temporalio/workflow
(#889) -
[
client
] Add max retry interval for client (#883) -
Label grpc-retry API as experimental (#891)
-
Make the failure-converter code symmetric (#891)