From f0f721be2323ac844af91fd58c04bdba280e709b Mon Sep 17 00:00:00 2001 From: Stephan Behnke Date: Fri, 8 May 2026 11:19:27 -0700 Subject: [PATCH 1/3] Add standalone Nexus operation namespace capability --- go.mod | 2 +- go.sum | 2 ++ service/frontend/namespace_handler.go | 1 + service/frontend/namespace_handler_test.go | 4 ++++ service/frontend/service.go | 2 ++ 5 files changed, 10 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index dbe232a6248..486237e4c87 100644 --- a/go.mod +++ b/go.mod @@ -63,7 +63,7 @@ require ( go.opentelemetry.io/otel/sdk v1.43.0 go.opentelemetry.io/otel/sdk/metric v1.43.0 go.opentelemetry.io/otel/trace v1.43.0 - go.temporal.io/api v1.62.12-0.20260430203359-15c391664683 + go.temporal.io/api v1.62.12-0.20260508181755-1c6dffa3e1af go.temporal.io/auto-scaled-workers v0.0.0-20260407181057-edd947d743d2 go.temporal.io/sdk v1.41.1 go.uber.org/fx v1.24.0 diff --git a/go.sum b/go.sum index 957bed1529f..a096b7788f0 100644 --- a/go.sum +++ b/go.sum @@ -471,6 +471,8 @@ go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.3.0 h1:CQvJSldHRUN go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.3.0/go.mod h1:xSQ+mEfJe/GjK1LXEyVOoSI1N9JV9ZI923X5kup43W4= go.temporal.io/api v1.62.12-0.20260430203359-15c391664683 h1:GtwQjX9hN0pRjuneBpl/xvcu9Xl9llAt4GjKrlpP0sg= go.temporal.io/api v1.62.12-0.20260430203359-15c391664683/go.mod h1:iaxoP/9OXMJcQkETTECfwYq4cw/bj4nwov8b3ZLVnXM= +go.temporal.io/api v1.62.12-0.20260508181755-1c6dffa3e1af h1:Fr/CZuzKUa021axZWvKCfUKg40CLjgxSwVl0OE/+GP0= +go.temporal.io/api v1.62.12-0.20260508181755-1c6dffa3e1af/go.mod h1:iaxoP/9OXMJcQkETTECfwYq4cw/bj4nwov8b3ZLVnXM= go.temporal.io/auto-scaled-workers v0.0.0-20260407181057-edd947d743d2 h1:1hKeH3GyR6YD6LKMHGCZ76t6h1Sgha0hXVQBxWi3dlQ= go.temporal.io/auto-scaled-workers v0.0.0-20260407181057-edd947d743d2/go.mod h1:T8dnzVPeO+gaUTj9eDgm/lT2lZH4+JXNvrGaQGyVi50= go.temporal.io/sdk v1.41.1 h1:yOpvsHyDD1lNuwlGBv/SUodCPhjv9nDeC9lLHW/fJUA= diff --git a/service/frontend/namespace_handler.go b/service/frontend/namespace_handler.go index 6ea50afa5b2..3590781fe77 100644 --- a/service/frontend/namespace_handler.go +++ b/service/frontend/namespace_handler.go @@ -903,6 +903,7 @@ func (d *namespaceHandler) createResponse( WorkerHeartbeats: d.config.WorkerHeartbeatsEnabled(info.Name), WorkflowPause: d.config.WorkflowPauseEnabled(info.Name), StandaloneActivities: d.config.Activity.Enabled(info.Name), + StandaloneNexusOperation: d.config.EnableChasm(info.Name) && d.config.NexusOperationsEnabled(info.Name), WorkerPollCompleteOnShutdown: d.config.EnableCancelWorkerPollsOnShutdown(info.Name), WorkerCommands: d.config.WorkerCommandsEnabled(info.Name), PollerAutoscaling: true, diff --git a/service/frontend/namespace_handler_test.go b/service/frontend/namespace_handler_test.go index 8d504de04f8..ebe506a84b1 100644 --- a/service/frontend/namespace_handler_test.go +++ b/service/frontend/namespace_handler_test.go @@ -388,6 +388,7 @@ func (s *namespaceHandlerCommonSuite) TestCapabilitiesAndLimits() { s.True(resp.NamespaceInfo.Capabilities.WorkerHeartbeats) s.False(resp.NamespaceInfo.Capabilities.WorkflowPause) s.False(resp.NamespaceInfo.Capabilities.StandaloneActivities) + s.False(resp.NamespaceInfo.Capabilities.StandaloneNexusOperation) s.False(resp.NamespaceInfo.Capabilities.WorkerPollCompleteOnShutdown) s.False(resp.NamespaceInfo.Capabilities.WorkerCommands) s.True(resp.NamespaceInfo.Capabilities.PollerAutoscaling) @@ -402,6 +403,8 @@ func (s *namespaceHandlerCommonSuite) TestCapabilitiesAndLimits() { s.config.WorkerHeartbeatsEnabled = dc.GetBoolPropertyFnFilteredByNamespace(false) s.config.WorkflowPauseEnabled = dc.GetBoolPropertyFnFilteredByNamespace(true) s.config.Activity.Enabled = dc.GetBoolPropertyFnFilteredByNamespace(true) + s.config.EnableChasm = dc.GetBoolPropertyFnFilteredByNamespace(true) + s.config.NexusOperationsEnabled = dc.GetBoolPropertyFnFilteredByNamespace(true) s.config.BlobSizeLimitError = dc.GetIntPropertyFnFilteredByNamespace(1024) s.config.MemoSizeLimitError = dc.GetIntPropertyFnFilteredByNamespace(512) s.config.EnableCancelWorkerPollsOnShutdown = dc.GetBoolPropertyFnFilteredByNamespace(true) @@ -418,6 +421,7 @@ func (s *namespaceHandlerCommonSuite) TestCapabilitiesAndLimits() { s.False(resp.NamespaceInfo.Capabilities.WorkerHeartbeats) s.True(resp.NamespaceInfo.Capabilities.WorkflowPause) s.True(resp.NamespaceInfo.Capabilities.StandaloneActivities) + s.True(resp.NamespaceInfo.Capabilities.StandaloneNexusOperation) s.True(resp.NamespaceInfo.Capabilities.WorkerPollCompleteOnShutdown) s.True(resp.NamespaceInfo.Capabilities.WorkerCommands) s.Equal(int64(1024), resp.NamespaceInfo.Limits.BlobSizeLimitError) diff --git a/service/frontend/service.go b/service/frontend/service.go index ac561bec1a1..ce1d4039edf 100644 --- a/service/frontend/service.go +++ b/service/frontend/service.go @@ -231,6 +231,7 @@ type Config struct { WorkerCommandsEnabled dynamicconfig.BoolPropertyFnWithNamespaceFilter WorkflowPauseEnabled dynamicconfig.BoolPropertyFnWithNamespaceFilter TimeSkippingEnabled dynamicconfig.BoolPropertyFnWithNamespaceFilter + NexusOperationsEnabled dynamicconfig.BoolPropertyFnWithNamespaceFilter HTTPAllowedHosts dynamicconfig.TypedPropertyFn[*regexp.Regexp] AllowedExperiments dynamicconfig.TypedPropertyFnWithNamespaceFilter[[]string] @@ -400,6 +401,7 @@ func NewConfig( WorkerCommandsEnabled: dynamicconfig.WorkerCommandsEnabled.Get(dc), WorkflowPauseEnabled: dynamicconfig.WorkflowPauseEnabled.Get(dc), TimeSkippingEnabled: dynamicconfig.TimeSkippingEnabled.Get(dc), + NexusOperationsEnabled: chasmnexus.Enabled.Get(dc), HTTPAllowedHosts: dynamicconfig.FrontendHTTPAllowedHosts.Get(dc), AllowedExperiments: dynamicconfig.FrontendAllowedExperiments.Get(dc), From ce96a96c941909723ae5f3d42940af32ec811ef5 Mon Sep 17 00:00:00 2001 From: Stephan Behnke Date: Fri, 8 May 2026 14:19:42 -0700 Subject: [PATCH 2/3] rename --- service/frontend/namespace_handler.go | 2 +- service/frontend/namespace_handler_test.go | 2 +- service/frontend/service.go | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/service/frontend/namespace_handler.go b/service/frontend/namespace_handler.go index 3590781fe77..087bc5f7de9 100644 --- a/service/frontend/namespace_handler.go +++ b/service/frontend/namespace_handler.go @@ -903,7 +903,7 @@ func (d *namespaceHandler) createResponse( WorkerHeartbeats: d.config.WorkerHeartbeatsEnabled(info.Name), WorkflowPause: d.config.WorkflowPauseEnabled(info.Name), StandaloneActivities: d.config.Activity.Enabled(info.Name), - StandaloneNexusOperation: d.config.EnableChasm(info.Name) && d.config.NexusOperationsEnabled(info.Name), + StandaloneNexusOperation: d.config.EnableChasm(info.Name) && d.config.StandaloneNexusOperationsEnabled(info.Name), WorkerPollCompleteOnShutdown: d.config.EnableCancelWorkerPollsOnShutdown(info.Name), WorkerCommands: d.config.WorkerCommandsEnabled(info.Name), PollerAutoscaling: true, diff --git a/service/frontend/namespace_handler_test.go b/service/frontend/namespace_handler_test.go index ebe506a84b1..c08e458f58b 100644 --- a/service/frontend/namespace_handler_test.go +++ b/service/frontend/namespace_handler_test.go @@ -404,7 +404,7 @@ func (s *namespaceHandlerCommonSuite) TestCapabilitiesAndLimits() { s.config.WorkflowPauseEnabled = dc.GetBoolPropertyFnFilteredByNamespace(true) s.config.Activity.Enabled = dc.GetBoolPropertyFnFilteredByNamespace(true) s.config.EnableChasm = dc.GetBoolPropertyFnFilteredByNamespace(true) - s.config.NexusOperationsEnabled = dc.GetBoolPropertyFnFilteredByNamespace(true) + s.config.StandaloneNexusOperationsEnabled = dc.GetBoolPropertyFnFilteredByNamespace(true) s.config.BlobSizeLimitError = dc.GetIntPropertyFnFilteredByNamespace(1024) s.config.MemoSizeLimitError = dc.GetIntPropertyFnFilteredByNamespace(512) s.config.EnableCancelWorkerPollsOnShutdown = dc.GetBoolPropertyFnFilteredByNamespace(true) diff --git a/service/frontend/service.go b/service/frontend/service.go index ce1d4039edf..07635c7ce17 100644 --- a/service/frontend/service.go +++ b/service/frontend/service.go @@ -231,7 +231,7 @@ type Config struct { WorkerCommandsEnabled dynamicconfig.BoolPropertyFnWithNamespaceFilter WorkflowPauseEnabled dynamicconfig.BoolPropertyFnWithNamespaceFilter TimeSkippingEnabled dynamicconfig.BoolPropertyFnWithNamespaceFilter - NexusOperationsEnabled dynamicconfig.BoolPropertyFnWithNamespaceFilter + StandaloneNexusOperationsEnabled dynamicconfig.BoolPropertyFnWithNamespaceFilter HTTPAllowedHosts dynamicconfig.TypedPropertyFn[*regexp.Regexp] AllowedExperiments dynamicconfig.TypedPropertyFnWithNamespaceFilter[[]string] @@ -401,7 +401,7 @@ func NewConfig( WorkerCommandsEnabled: dynamicconfig.WorkerCommandsEnabled.Get(dc), WorkflowPauseEnabled: dynamicconfig.WorkflowPauseEnabled.Get(dc), TimeSkippingEnabled: dynamicconfig.TimeSkippingEnabled.Get(dc), - NexusOperationsEnabled: chasmnexus.Enabled.Get(dc), + StandaloneNexusOperationsEnabled: chasmnexus.Enabled.Get(dc), HTTPAllowedHosts: dynamicconfig.FrontendHTTPAllowedHosts.Get(dc), AllowedExperiments: dynamicconfig.FrontendAllowedExperiments.Get(dc), From 238137d2c4a1f3b81700fad3a35f5b0ba3c1aa82 Mon Sep 17 00:00:00 2001 From: Stephan Behnke Date: Mon, 11 May 2026 16:35:31 -0700 Subject: [PATCH 3/3] bump api-go --- go.mod | 2 +- go.sum | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 486237e4c87..6612146055b 100644 --- a/go.mod +++ b/go.mod @@ -63,7 +63,7 @@ require ( go.opentelemetry.io/otel/sdk v1.43.0 go.opentelemetry.io/otel/sdk/metric v1.43.0 go.opentelemetry.io/otel/trace v1.43.0 - go.temporal.io/api v1.62.12-0.20260508181755-1c6dffa3e1af + go.temporal.io/api v1.62.12-0.20260511225354-0a978d4fd72c go.temporal.io/auto-scaled-workers v0.0.0-20260407181057-edd947d743d2 go.temporal.io/sdk v1.41.1 go.uber.org/fx v1.24.0 diff --git a/go.sum b/go.sum index a096b7788f0..6a6dba82142 100644 --- a/go.sum +++ b/go.sum @@ -469,10 +469,8 @@ go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.3.0 h1:R go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.3.0/go.mod h1:I89cynRj8y+383o7tEQVg2SVA6SRgDVIouWPUVXjx0U= go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.3.0 h1:CQvJSldHRUN6Z8jsUeYv8J0lXRvygALXIzsmAeCcZE0= go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.3.0/go.mod h1:xSQ+mEfJe/GjK1LXEyVOoSI1N9JV9ZI923X5kup43W4= -go.temporal.io/api v1.62.12-0.20260430203359-15c391664683 h1:GtwQjX9hN0pRjuneBpl/xvcu9Xl9llAt4GjKrlpP0sg= -go.temporal.io/api v1.62.12-0.20260430203359-15c391664683/go.mod h1:iaxoP/9OXMJcQkETTECfwYq4cw/bj4nwov8b3ZLVnXM= -go.temporal.io/api v1.62.12-0.20260508181755-1c6dffa3e1af h1:Fr/CZuzKUa021axZWvKCfUKg40CLjgxSwVl0OE/+GP0= -go.temporal.io/api v1.62.12-0.20260508181755-1c6dffa3e1af/go.mod h1:iaxoP/9OXMJcQkETTECfwYq4cw/bj4nwov8b3ZLVnXM= +go.temporal.io/api v1.62.12-0.20260511225354-0a978d4fd72c h1:ADDxNS26VTfDWmW55zYgAFkG6WEU83RHv0HwrarHXtk= +go.temporal.io/api v1.62.12-0.20260511225354-0a978d4fd72c/go.mod h1:iaxoP/9OXMJcQkETTECfwYq4cw/bj4nwov8b3ZLVnXM= go.temporal.io/auto-scaled-workers v0.0.0-20260407181057-edd947d743d2 h1:1hKeH3GyR6YD6LKMHGCZ76t6h1Sgha0hXVQBxWi3dlQ= go.temporal.io/auto-scaled-workers v0.0.0-20260407181057-edd947d743d2/go.mod h1:T8dnzVPeO+gaUTj9eDgm/lT2lZH4+JXNvrGaQGyVi50= go.temporal.io/sdk v1.41.1 h1:yOpvsHyDD1lNuwlGBv/SUodCPhjv9nDeC9lLHW/fJUA=