Skip to content

Releases: temporalio/temporal

v1.21.6

29 Mar 23:03
Compare
Choose a tag to compare

Release Highlights

This release mitigates a problem where invalid UTF-8 data could be supplied to the history service, causing a denial of service

Helpful links to get you started with Temporal

Temporal Docs
Server
Docker Compose
Helm Chart

Docker images for this release (use the tag 1.21.6)

Server
Server With Auto Setup (what is Auto-Setup?)
Admin-Tools

Full Changelog: v1.21.5...v1.21.6

v1.20.5

29 Mar 23:02
Compare
Choose a tag to compare

Release Highlights

This release mitigates a problem where invalid UTF-8 data could be supplied to the history service, causing a denial of service

Helpful links to get you started with Temporal

Temporal Docs
Server
Docker Compose
Helm Chart

Docker images for this release (use the tag 1.20.5)

Server
Server With Auto Setup (what is Auto-Setup?)
Admin-Tools

Full Changelog: v1.20.4...v1.20.5

v1.23.0

22 Mar 17:29
Compare
Choose a tag to compare

Release Highlights

Breaking Changes

github.com/gogo/protobuf has been replaced with google.golang.org/protobuf

We've fully replaced the use of gogo/protobuf with the official google protobuf runtime. This has both developmental and operational impacts as prior to Server version v1.23.0 our protobuf code generator allowed invalid UTF-8 data to be stored as proto strings. This isn't allowed by the proto3 spec, so if you're running a custom-built temporal server and think some tenant may store arbitrary binary data in our strings you should set -tags protolegacy when compiling the server. If you use our Makefile this is already done.

If you don't and see an error like grpc: error unmarshalling request: string field contains invalid UTF-8 then you will need to enable this when building the server. If you're unsure then you should specify it anyways as there's no harm in doing so unless you relied on the protobuf compiler to ensure all strings were valid UTF-8.

Developers using our protobuf-generated code will notice that:

  • time.Time in proto structs will now be [timestamppb.Timestamp](https://pkg.go.dev/google.golang.org/protobuf@v1.31.0/types/known/timestamppb#section-documentation)
  • time.Duration will now be [durationpb.Duration](https://pkg.go.dev/google.golang.org/protobuf/types/known/durationpb)
  • V2-generated structs embed locks, so you cannot dereference them.
  • Proto enums will, when formatted to JSON, now be in SCREAMING_SNAKE_CASE rather than PascalCase.
    • If trying to deserialize old JSON with PascalCase to proto use [go.temporal.io/api/temporalproto](https://pkg.go.dev/go.temporal.io/api/temporalproto)
  • google/protobuf objects, or objects embedding these protos, cannot be compared using reflect.DeepEqual or anything that uses it. This includes testify and mock equality testers!
    • If you need reflect.DeepEqual for any reason you can use go.temporal.io/api/temporalproto.DeepEqual instead
    • If you need testify require/assert compatible checkers you can use the go.temporal.io/server/common/testing/protorequire, go.temporal.io/server/common/testing/protoassert packages
    • If you need matchers for gomock we have a helper under go.temporal.io/server/common/testing/protomock

New System Search Attributes

We added two new system search attributes: ParentWorkflowId and ParentRunId. If you have previously created custom search attributes with one of these names, attempts to set them will start to fail. We suggest updating your workflows to not set those search attributes, delete those search attributes and then upgrade Temporal to this version.

Alternatively, you can also set the dynamic config system.supressErrorSetSystemSearchAttribute to true. When this dynamic config is set values for system search attributes will be ignored instead of causing your workflow to fail. Please use this as temporary workaround, because it could hide real issue in users workflows.

Schema changes

Before upgrading your Temporal Cluster to v1.23.0, you must upgrade your core and visibility schemas to the following:

  • Core:
    • MySQL schema v1.11
    • PostgreSQL schema v1.11
    • Cassandra schema v1.9
  • Visibility:
    • Elasticsearch schema v6
    • MySQL schema 1.4
    • PostgreSQL schema v1.4

Please see our upgrade documentation for the necessary steps to upgrade your schemas.

Deprecation Announcements

  • We've replaced all individual metrics describing Commands (e.g. complete_workflow_command, continue_as_new_command etc.) with a single metric called command which has a tag “commandType” describing the specific command type (see #4995)
  • Standard visibility will be deprecated in the next release v1.24.0 along with old config key names, i.e. this is the last minor version to support them. Please refer to v1.20.0 release notes for upgrade instructions, and also refer to v1.21.0 release notes for config key changes.
  • In advanced visibility, the LIKE operator will no longer be supported in v1.24.0. It never did what it was meant to do, and only added confusing behavior when used with Elasticsearch.

Golang version

  • Upgraded golang to 1.21

Batch workflow reset by Build ID

For situations where an operator wants to handle a bad deployment using workflow
reset, the batch reset operation can now reset to before the first workflow task
processed by a specific build id. This is based on reset points that are created
when build id changes between workflow tasks. Note that this also applies across
continue-as-new.

This operation is not currently supported by a released version of the CLI, but
you can use it through the gRPC API directly, e.g. using the Go SDK:

client.WorkflowService().StartBatchOperationRequest(ctx, &workflowservice.StartBatchOperationRequest{
	JobId:           uuid.New(),
	Namespace:       "my-namespace",
	// Select workflows that were touched by a specific build id:
	VisibilityQuery: fmt.Sprintf(`BuildIds = "unversioned:bad-build"`),
	Reason:          "reset bad build",
	Operation: &workflowservice.StartBatchOperationRequest_ResetOperation{
		ResetOperation: &batch.BatchOperationReset{
			Identity: "bad build resetter",
			Options: &commonpb.ResetOptions{
				Target: &commonpb.ResetOptions_BuildId{
					BuildId: "bad-build",
				},
				ResetReapplyType: enumspb.RESET_REAPPLY_TYPE_SIGNAL,
			},
		},
	},
})

History Task DLQ

We've added a DLQ to history service to handle poison pills in transfer / timer queues and other history task queues including visibility and replication queues. You can see our operators guide for more details.

If you want tasks experiencing unexpected errors to go to the DLQ after a certain number of failures you can set the history.TaskDLQUnexpectedErrorAttempts dynamic config.

Approximately FIFO Task Queueing

Once this feature is enabled, our task queues will be roughly FIFO.

This is disabled by default in 1.23, as we continue testing it but expect that it’ll be enabled by default in 1.24. To enable it the following config should be set to a short duration (e.g. 5sec) from its current default value (10yrs): "matching.backlogNegligibleAge"

We've added the following metrics as part of this effort:

  • poll_latency - this is a per-task-queue histogram of the duration between worker poll request and response (with or without task) calculated from the Matching server’s perspective
  • task_dispatch_latency - this is a histogram of schedule_to_start time from Matching's perspective, broken down by task queue and task source (backlog vs history)

Global Persistence Rate Limiting

We've added the ability to specify global (cluster level) rate limiting value for the persistence layer. You can configure by specifying the following dynamic config values:

  • frontend.persistenceGlobalMaxQPS
  • history.persistenceGlobalMaxQPS
  • matching.persistenceGlobalMaxQPS
  • worker.persistenceGlobalMaxQPS

You can also specify this on the per-namespace level using

  • frontend.persistenceGlobalNamespaceMaxQPS
  • history.persistenceGlobalNamespaceMaxQPS
  • matching.persistenceGlobalNamespaceMaxQPS
  • worker.persistenceGlobalNamespaceMaxQPS

Please be aware that this functionality is experimental. This global rate limiting isn’t workload aware but shard-aware; we currently allocate this QPS to each pod based on the number of shards they own rather than the demands of the workload, so pods with many low-workload shards will have a higher allocation of this limit than pods with fewer but more active workloads. If you plan to use this you will want to set the QPS value with some headroom (like 25%) to account for this.

Renamed Deadlock-detector metrics

The metrics exported by the deadlock detector were renamed to use a dd_ prefix to avoid confusion with other lock latency metrics. Affected metrics: dd_cluster_metadata_lock_latency, dd_cluster_metadata_callback_lock_latency, dd_shard_controller_lock_latency, dd_shard_lock_latency, dd_namespace_registry_lock_latency.

Visibility Prefix Search

Visibility API now supports prefix search by using the keyword STARTS_WITH. Eg: WorkflowType STARTS_WITH 'hello_world'. Check the Visibility documentation for additional information on supported operators.

Helpful links to get you started with Temporal

Temporal Docs
Server
Docker Compose
Helm Chart

Docker images for this release (use tag v1.23.0)

Server
Server With Auto Setup (what is Auto-Setup?)
Admin-Tools

New Contributors

Read more

v1.22.6

06 Mar 17:16
Compare
Choose a tag to compare

Release Highlights

This release mitigates a rollback problem introduced into one of our v1.23.0 release candidates. This has no impact on OSS users using official releases.

All Changes

2024-02-29 - 2899920 - Bump Server version to 1.22.6
2024-02-29 - 1eba091 - Update Go SDK to handle SDKPriorityUpdateHandling flag (#5468)

Helpful links to get you started with Temporal

Temporal Docs
Server
Docker Compose
Helm Chart

Docker images for this release (use the tag 1.22.6)

Server
Server With Auto Setup (what is Auto-Setup?)
Admin-Tools

v1.22.5

22 Feb 01:47
Compare
Choose a tag to compare

All Changes

2024-02-22 - 2787da3 - Bump Server version to 1.22.5
2024-02-22 - 760ea9c - Bump Server version to 1.22.5-rc2
2024-02-21 - 2ea05b3 - Ensure PollActivityTaskQueueResponse.ScheduleToCloseTimeout is not nil (#5444)
2024-02-02 - d4f38c2 - Bump Server version to 1.22.5-rc1
2024-02-01 - 64fe53c - Backport code to drop internal errors encountered during task processing (#5385)
2024-01-31 - 2647b36 - Fix scheduled task rescheduling on failover (#5377)

Helpful links to get you started with Temporal

Temporal Docs
Server
Docker Compose
Helm Chart

Docker images for this release (use the tag 1.22.5)

Server
Server With Auto Setup (what is Auto-Setup?)
Admin-Tools

v1.22.4

12 Jan 21:01
Compare
Choose a tag to compare

All Changes

2024-01-12 - fb61704 - Bump Server version to 1.22.4
2024-01-12 - f2659e7 - Change auth order (#5294)
2024-01-12 - 4489f17 - Fix buildkite cassandra setup (#5263)
2024-01-08 - 6dcab73 - Update GHA setup-go to pull version from go.mod file (#5207)

Helpful links to get you started with Temporal

Temporal Docs
Server
Docker Compose
Helm Chart

Docker images for this release (use the tag 1.22.4)

Server
Server With Auto Setup (what is Auto-Setup?)
Admin-Tools

v1.22.3

07 Dec 21:51
Compare
Choose a tag to compare

Important

The dependency golang.org/x/net was updated to address CVE-2023-39325, CVE-2023-3978, CVE-2023-44487.

All Changes

2023-12-07 - 4eca060 - Bump Server version to 1.22.3
2023-11-30 - 407ff8a - Fix nil panic (#5153)
2023-11-30 - db10079 - Activate changes in #4990 and #5034 (#5035)
2023-11-30 - 20a4829 - Always set RPS on dynamic rate limiter refresh (#5180)
2023-11-30 - 79bacb9 - Fix default persistence request priority (#5177)
2023-11-30 - b4b6581 - Update force replication with low priority context (#5010)
2023-11-27 - 294e8a3 - 1.22.3 build fix for cherry pick build error (#5163)
2023-11-22 - 38f0eb2 - Fix set up search attributes in secondary SQL visibility (#5143)
2023-11-20 - 1f04629 - Add more logging message to monitor branch token update (#5058)
2023-11-20 - 6ba388c - Handle branch token update with long poll API (#4943)
2023-11-20 - 98b5700 - golang.org/x/net: update to address CVE-2023-39325, CVE-2023-3978, CV… (#5011)

Helpful links to get you started with Temporal

Temporal Docs
Server
Docker Compose
Helm Chart

Docker images for this release (use the tag 1.22.3)

Server
Server With Auto Setup (what is Auto-Setup?)
Admin-Tools

v1.22.2

13 Nov 18:40
Compare
Choose a tag to compare

All Changes

2023-11-13 - db23e86 - Add action metrics for schedule and updates (#5101)
2023-11-03 - 37da275 - Allow list of keywords in dual visibility setting (#5065)
2023-11-01 - 26114d7 - Hopefully avoid panic in DescribeWorkflowExecution (#5057)
2023-10-31 - ddf9799 - Bump server version to 1.22.2 (#5056)
2023-10-31 - ef3b92b - Fix schedule workflow unit test (#5052)
2023-10-30 - 2320fc1 - Add force-continue-as-new signal to schedule workflow (#5034)
2023-10-30 - b8163ce - Use ContinueAsNewSuggested in scheduler workflow (#4990)
2023-10-30 - 88f8f11 - Update Go SDK to v1.25.1 (#4955)
2023-10-30 - cba2ce7 - Improve scheduler workflow unit test (#4962)
2023-10-30 - 53a4979 - Expose buffer size and # dropped actions in ScheduleInfo (#4839)
2023-10-30 - 0fc50f8 - Adjust action metrics (#5043)
2023-10-30 - 91425ba - Emit action metrics for batch of markers (#4905)
2023-10-30 - f442eb7 - Validate search attributes values in queries to ES (#5036)
2023-10-30 - 19ba0ce - Disable eager activities for incompatible versioned activities (#5030)
2023-10-30 - cd14e15 - Add refresh task for close workflow (#4999)
2023-10-30 - e022877 - Refresh upsert visibility task only for running workflows (#4909)
2023-10-30 - f99bd88 - Lock get current execution for API requests (#4970)
2023-10-30 - 8dc833c - Fix GenerateMigrationTasks behavior (#4987)
2023-10-30 - 1a30833 - Return InvalidArgument error when we get HTTP 400 from elasticsearch (#4900)
2023-10-30 - b6c9868 - Reuse cached RemoteAdminClient in VerifyReplicationTasks (#4997) (#5050)

v1.22.1

20 Oct 16:10
7173522
Compare
Choose a tag to compare

Important

There was a security issue in the Temporal Docker image that could expose your DB password in the shell logs. The issue is fixed in temporalio/docker-builds#147, and new Docker image builds packing this version or later will contain the fix. Note that this issue is not related in any way to the Temporal Server itself. It only affects a script in the Docker image to launch your Temporal Server.

All Changes

2023-10-13 - 7173522 - Ensure latest Go version in GH workflows (#4974)
2023-10-12 - b154bcd - Bump base-ci-builder image (#4969)
2023-10-06 - 759b608 - Refactor TaskPoller.PollAndProcessWorkflowTask (#4903)
2023-10-06 - 4a70d62 - Don't track overlapping scheduled workflows (#4911)
2023-10-06 - 1f01c72 - Use RateBurst in RateLimitInterceptorProvider (#4933)
2023-10-06 - 9abaafd - Take history length into account when rate limiting generate replication task (#4929)
2023-10-06 - ba63918 - Improve XDC logging (#4932)
2023-10-06 - 8cadb94 - Handle XDC replication task retry error / not found error correctly (#4924)
2023-10-06 - 8d1e43a - Make rate multi min and max dynamic (#4920)
2023-10-06 - b4df682 - Add metric for dynamic rate limit multiplier (#4921)
2023-10-06 - 6860495 - Improve XDC Logging (#4917)
2023-10-06 - b5f7319 - Simplify DescribeSchedule (#4810)
2023-10-06 - 1af21c4 - Build id scavenger shouldn't look at recent build ids (#4846)
2023-10-06 - 9547e82 - Exit build id scavenger on rate limiter error (#4841)
2023-10-06 - e998571 - Fix QueryWorkflow forwarding on versioned queue (#4847)
2023-10-06 - 277e97d - Make versioning data limits configurable by namespace (#4843)

v1.22.0

05 Sep 22:31
Compare
Choose a tag to compare

Release Highlights

Streaming for replication (WIP)

This version of server added gRPC streaming API for replications between clusters. This feature is still working in progress, is currently disabled by default. It will be enabled in future release.

Count workflow by ExecutionStatus

The Count API feature allows the user to count the number of workflow matching the given query. For example, the command temporal workflow count -q "WorkflowType='foo'" returns the number of workflows that matches WorkflowType='foo'.

Now, you can send queries to the Count API to group by a given search attribute. Eg: -q "WorkflowType='foo' GROUP BY ExecutionStatus returns the number of workflows that matches WorkflowType='foo' grouped by ExecutionStatus.

The GROUP BY clause is only supported in the Count API, and, at this moment, we only support grouping by ExecutionStatus. We plan to support group by any search attribute in a future release.

EDIT: Note: The Count API returns approximate counts.

Default authorizer changes

The default authorizer now allows OperatorService.ListSearchAttributes as a namespace-level read-only API. Additionally, the implementation was changed: if you have custom authorizer code based on the default authorizer, you may want to examine the new implementation.

Schedules improvements

Schedules that are “idle”, meaning they are only configured to run for a fixed number of times (either with “limited actions” or with a spec that doesn’t match any times in the future), will now automatically be deleted after one week since their last action. This applies to existing schedules, however existing schedules that are already idle won’t be deleted unless they’re woken up by a signal.

Jitter is now calculated correctly so that jitter across separate schedules is not correlated. This automatically applies to existing schedules.

HTTP API

The frontend workflow service API can now exposed via HTTP in addition to the existing gRPC exposed form. The port is set on services.frontend.rpc.httpPort and is disabled if unset or 0. The default Docker template enables the HTTP API on port 7243. See the HTTP annotations on the workflow service API proto file for more information about which operations are available at which URL paths.

All changes

2023-09-05 - 9b877fa - increase max allowed shard linger limit (#4790)
2023-09-05 - c73430b - Mark QueryWorkflow as read-only in api metadata (#4834)
2023-09-05 - 86d8839 - Add method metadata and use for default authorizer (#4794)
2023-08-28 - bba21ca - Always persist guessed set id on unknown build id (#4800)
2023-08-28 - c13afdc - Fix mutable state change not persisted bug (#4813)
2023-08-21 - df2167e - Update API to v1.24.0 (#4785)
2023-08-21 - f6755a5 - Return NonRetryableApplicationError if Namespace is not found on remote cluster during verify (#4786)
2023-08-21 - f42d19e - Split sync workflow state logic to dedicated file (#4784)
2023-08-18 - c784796 - HTTP API support (#4543)
2023-08-17 - 8309152 - Update some task refresh logic (#4779)
2023-08-17 - 0080bd2 - Simplify XDC logic (#4546)
2023-08-14 - 84b1e8b - Generate txn id for each event (#4774)
2023-08-14 - aa5c3db - Add api to Eager retrieve the unknown namespace from remote cluster (#4769)
2023-08-14 - 9f9db3f - Increaes RecordHeartbeat frequency in VerifyReplicationTask (#4771)
2023-08-11 - 815c8a3 - Skip verifying workflow which has already passed retention time (#4770)
2023-08-11 - 0ce1234 - Rename leftover master to main (#4768)
2023-08-11 - 7982f81 - Fix delete search attributes in mutable state (#4767)
2023-08-11 - 545c963 - Count group by status capability (#4750)
2023-08-11 - 88f8c1c - Load task queue managers for demoted version set ids (#4762)
2023-08-11 - 2b3d52e - Improve otel gauge memory usage (#4722)
2023-08-10 - 673d563 - Add corruption protection to ms (#4564)
2023-08-11 - e4ce970 - Turn ErrWorkflowClosing into a retryable error (#4765)
2023-08-10 - 3a9e344 - Use raw history/matching client in task executor (#4710)
2023-08-10 - 97f15fc - Fix SQLite FTS query expression with dashes (#4755)
2023-08-10 - 2da4743 - Remove debug logger from visibility manager (#4751)
2023-08-10 - 2eb9609 - Make client code generation safer (#4747)
2023-08-10 - 274de98 - Make cassandra schema update idempotent (#4761)
2023-08-10 - 5ced7bf - Improve task range completion prerequisite check (#4754)
2023-08-10 - 7a11f91 - Move getTaskQueueManager call into redirect methods (#4759)
2023-08-10 - 97dbe09 - Fix retry policy max attempts (#4752)
2023-08-10 - 31eada0 - Reduce frontend handler retry max attempts (#4753)
2023-08-09 - 6d4a76b - Adjust API priorities (#4756)
2023-08-09 - cfad693 - Clean up some matching errors (#4758)
2023-08-09 - 0737a8b - Avoid potential double close on userDataChanged (#4757)
2023-08-09 - 63cd051 - Do not load sticky queue if not loaded (#4694)
2023-08-09 - d87acbd - Add frontend.globalNamespaceCount (#4743)
2023-08-09 - 039de3d - Add descriptions for task processing metrics (#4746)
2023-08-08 - e7dd2ff - Clean task queue name from matching before writing to WorkflowTaskScheduledEvent (#4565)
2023-08-08 - b1804c2 - eager namespace refresher POC (#4725)
2023-08-08 - 881b923 - APS limit error handling (#4739)
2023-08-08 - a608721 - remove the event cache initial size and refactor putInternal (#4698)
2023-08-07 - a3a4ac5 - Add descriptions for schedule metrics (#4728)
2023-08-07 - 58e731a - Enable new schedule workflow logic (#4741)
2023-08-07 - 60f733a - Fix bug causing duplicates when listing s3-archived workflows (#4712)
2023-08-07 - 5889f1c - Continue replication verification by skipping workflow which should be or soon to be deleted (#4734)
2023-08-07 - c861c7e - Update main branch in Makefile (#4740)
2023-08-07 - c49bdc6 - Change schedule jitter to depend on schedule + namespace ids (#4685)
2023-08-07 - 3bece5f - Collapse duplicate visibility tasks (#4727)
2023-08-07 - 0541c81 - Send versioned tasks to dlq when user data disabled (#4668)
2023-08-07 - bd909c9 - Return errors from task executors when processing actions (#4719)
2023-08-07 - df262d6 - Remove debug logging from Cassandra schema update tool (#4738)
2023-08-04 - 23aac05 - Speed up passive task validation (#4700)
2023-08-04 - 10a6f6e - Return ResourceExhaustedError for consistent query buffer full (#4731)
2023-08-04 - ecb625a - Update timer task error handling (#4718)
2023-08-03 - dcccbf0 - Log actual error for get history data loss events (#4726)
2023-08-03 - 5285b80 - Update running server locally README (#4723)
2023-08-03 - ccd23cb - Bump UI version to 2.17.1 (#4720)
2023-08-03 - db49117 - Add worker versioning calls to read-only namespace APIs for authorizer (#4721)
2023-08-03 - 9de9ccf - Add ActivityType to ActivityInfo for mutable state (#4717)
2023-08-02 - 4928b73 - Reduce the heartbeat size of VerifyReplicationTasks activity (#4705)
2023-08-02 - 1eb3217 - Add replay tests for scheduler workflow (#4701)
2023-08-02 - 4efda3c - Add more errors to targeted fault injector (#4711)
2023-08-01 - f4ca57f - Special some handle history client generation (#4708)
2023-08-01 - fb1d507 - Provide a shard ownership-based rate limit quota scaler from the history/shard package (#4704)
2023-08-01 - ac1d174 - Simplify newTaskQueueManager arguments (#4691)
2023-07-31 - 2832918 - Support injecting additional interceptors in history and matching (#4680)
2023-07-31 - 82fec84 - Inject custom task executor wrapper (#4697)
2023-07-28 - c595eb8 - Finish idle schedule when a timer fires (#4602)
2023-07-28 - 4fb4dd9 - move IsValid to ControllableContext (#4699)
2023-07-27 - 9269507 - Add versioned tag to loaded task queue gauge (#4672)
2023-07-27 - 83a3a45 - Persist unknown build ids (#4667)
2023-07-27 - 0281243 - enable shard linger with time limit config (#4696)
2023-07-28 - a13efee - Add quotas.DelayedRateLimiter (#4688)
2023-07-27 - 48b80c0 - Add shard.OwnershipScaledRateBurst (#4687)
2023-07-27 - 851e26b - Support count group by in visibility with SQL (#4666)
2023-07-27 - f9b2db5 - Support count group by in visibility with Elasticsearch (#4619)
2023-07-27 - a3b5911 - Matching service task GC (#4418)
2023-07-27 - 5690107 - Put user data replication tasks in DLQ (#4609)
2023-07-27 - 922cc27 - Convert version history bad request to internal error (#4690)
2023-07-27 - fbd0de7 - Fix Go version string goreleaser.yml (#4689)
2023-07-27 - 541dee3 - Add back generated mocks (#4671)
2023-07-26 - 4cd4f7e - Refactor CalculateEffectiveResourceLimit and NamespaceCountLimitInterceptor (#4665)
2023-07-26 - 3be986c - support delaying shard close for membership change (#4659)
2023-07-25 - 8753b8e - Adjust CLI page size (#4682)
2023-07-25 - 157bf67 - Fix tdbg unable to dump all workflow raw history issue (#4681)
2023-07-25 - c3fa088 - Return nil instead of task discarded error if namespace is invalid locally (#4678)
2023-07-25 - e7bd028 - add configurable ownership caching to history client (#4652)
2023-07-24 - fa1597b - Assign fx pass in raw task converter (#4679)
2023-07-24 - 5008255 - Add more replication error logs (#4677)
2023-07-24 - 386a651 - Minor fixes in force replication verification (#4675)
2023-07-24 - 48d3107 - Restore defaultListWorkflowsPageSize back to 1000 (from 100) (#4674)
2023-07-22 - ce3f42e - Add clock.TimeSource.AfterFunc (#4611)
2023-07-21 - c57f587 - Add XDC replication cache (#4379)
2023-07-21 - e10f213 - Fix flaky TestForceReplicationWorkflow_VerifyReplicationTaskNonRetryableError (#4669)
2023-07-21 - f708c81 - Move redirect logic into taskQueueManager (#4657)
2023-07-21 - baa964e - ...

Read more