From 275e0663e421a9ccd2f3477750203bf6483c2283 Mon Sep 17 00:00:00 2001 From: Feiyang Xie Date: Sun, 23 Aug 2026 11:58:17 -0700 Subject: [PATCH 1/3] add ts to schedulers --- openapi/openapiv2.json | 8 ++++++++ openapi/openapiv3.yaml | 13 +++++++++++++ temporal/api/schedule/v1/message.proto | 4 ++++ .../api/workflowservice/v1/request_response.proto | 5 +++++ 4 files changed, 30 insertions(+) diff --git a/openapi/openapiv2.json b/openapi/openapiv2.json index 1391f113a..8daabeb1d 100644 --- a/openapi/openapiv2.json +++ b/openapi/openapiv2.json @@ -12846,6 +12846,10 @@ "timeSkippingConfig": { "$ref": "#/definitions/v1TimeSkippingConfig", "description": "Time-skipping configuration. If not set, time skipping is disabled." + }, + "timeSkippingStatePropagation": { + "$ref": "#/definitions/v1TimeSkippingStatePropagation", + "description": "Time-skipping state propagated by the execution that started this workflow.\nThis field is intended for use by the Temporal server, for example when a schedule\nstarts a workflow, and is not intended to be set by external clients." } } }, @@ -19150,6 +19154,10 @@ }, "state": { "$ref": "#/definitions/v1ScheduleState" + }, + "timeSkippingConfig": { + "$ref": "#/definitions/v1TimeSkippingConfig", + "description": "Time-skipping configuration for this schedule.\nIf not set, time skipping is disabled for triggered workflow executions." } } }, diff --git a/openapi/openapiv3.yaml b/openapi/openapiv3.yaml index ab3e297e5..ea4c73740 100644 --- a/openapi/openapiv3.yaml +++ b/openapi/openapiv3.yaml @@ -16044,6 +16044,12 @@ components: $ref: '#/components/schemas/SchedulePolicies' state: $ref: '#/components/schemas/ScheduleState' + timeSkippingConfig: + allOf: + - $ref: '#/components/schemas/TimeSkippingConfig' + description: |- + Time-skipping configuration for this schedule. + If not set, time skipping is disabled for triggered workflow executions. ScheduleAction: type: object properties: @@ -17472,6 +17478,13 @@ components: allOf: - $ref: '#/components/schemas/TimeSkippingConfig' description: Time-skipping configuration. If not set, time skipping is disabled. + timeSkippingStatePropagation: + allOf: + - $ref: '#/components/schemas/TimeSkippingStatePropagation' + description: |- + Time-skipping state propagated by the execution that started this workflow. + This field is intended for use by the Temporal server, for example when a schedule + starts a workflow, and is not intended to be set by external clients. StartWorkflowExecutionResponse: type: object properties: diff --git a/temporal/api/schedule/v1/message.proto b/temporal/api/schedule/v1/message.proto index 3a0a9344c..0a918ba78 100644 --- a/temporal/api/schedule/v1/message.proto +++ b/temporal/api/schedule/v1/message.proto @@ -359,6 +359,10 @@ message Schedule { ScheduleAction action = 2; SchedulePolicies policies = 3; ScheduleState state = 4; + + // Time-skipping configuration for this schedule. + // If not set, time skipping is disabled for triggered workflow executions. + temporal.api.common.v1.TimeSkippingConfig time_skipping_config = 5; } // ScheduleListInfo is an abbreviated set of values from Schedule and ScheduleInfo diff --git a/temporal/api/workflowservice/v1/request_response.proto b/temporal/api/workflowservice/v1/request_response.proto index c3dd95769..2133bbe2a 100644 --- a/temporal/api/workflowservice/v1/request_response.proto +++ b/temporal/api/workflowservice/v1/request_response.proto @@ -218,6 +218,11 @@ message StartWorkflowExecutionRequest { // Time-skipping configuration. If not set, time skipping is disabled. temporal.api.common.v1.TimeSkippingConfig time_skipping_config = 29; + + // Time-skipping state propagated by the execution that started this workflow. + // This field is intended for use by the Temporal server, for example when a schedule + // starts a workflow, and is not intended to be set by external clients. + temporal.api.common.v1.TimeSkippingStatePropagation time_skipping_state_propagation = 30; } message StartWorkflowExecutionResponse { From 35c6527f83f6d1906c4a18a3054f11a3e8a8c2f3 Mon Sep 17 00:00:00 2001 From: Feiyang Xie Date: Sun, 23 Aug 2026 13:11:55 -0700 Subject: [PATCH 2/3] Add time skipping info to DescribeSchedule --- openapi/openapiv2.json | 4 ++++ openapi/openapiv3.yaml | 6 ++++++ temporal/api/workflowservice/v1/request_response.proto | 4 ++++ 3 files changed, 14 insertions(+) diff --git a/openapi/openapiv2.json b/openapi/openapiv2.json index 8daabeb1d..ede50acb9 100644 --- a/openapi/openapiv2.json +++ b/openapi/openapiv2.json @@ -15649,6 +15649,10 @@ "type": "string", "format": "byte", "description": "This value can be passed back to UpdateSchedule to ensure that the\nschedule was not modified between a Describe and an Update, which could\nlead to lost updates and other confusion." + }, + "timeSkippingInfo": { + "$ref": "#/definitions/v1TimeSkippingInfo", + "description": "Information about time skipping for this schedule.\nIf the schedule has never enabled time skipping, this will be unset." } } }, diff --git a/openapi/openapiv3.yaml b/openapi/openapiv3.yaml index ea4c73740..b7592674f 100644 --- a/openapi/openapiv3.yaml +++ b/openapi/openapiv3.yaml @@ -11908,6 +11908,12 @@ components: schedule was not modified between a Describe and an Update, which could lead to lost updates and other confusion. format: bytes + timeSkippingInfo: + allOf: + - $ref: '#/components/schemas/TimeSkippingInfo' + description: |- + Information about time skipping for this schedule. + If the schedule has never enabled time skipping, this will be unset. DescribeTaskQueueResponse: type: object properties: diff --git a/temporal/api/workflowservice/v1/request_response.proto b/temporal/api/workflowservice/v1/request_response.proto index 2133bbe2a..632058f8b 100644 --- a/temporal/api/workflowservice/v1/request_response.proto +++ b/temporal/api/workflowservice/v1/request_response.proto @@ -1457,6 +1457,10 @@ message DescribeScheduleResponse { // schedule was not modified between a Describe and an Update, which could // lead to lost updates and other confusion. bytes conflict_token = 5; + + // Information about time skipping for this schedule. + // If the schedule has never enabled time skipping, this will be unset. + temporal.api.common.v1.TimeSkippingInfo time_skipping_info = 6; } message UpdateScheduleRequest { From 319a4eb0cafe516746dc0e723b0a0c6246ef7a8d Mon Sep 17 00:00:00 2001 From: Feiyang Xie Date: Sun, 23 Aug 2026 13:21:31 -0700 Subject: [PATCH 3/3] Move time skipping info into ScheduleInfo --- openapi/openapiv2.json | 8 ++++---- openapi/openapiv3.yaml | 12 ++++++------ temporal/api/schedule/v1/message.proto | 4 ++++ .../api/workflowservice/v1/request_response.proto | 4 ---- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/openapi/openapiv2.json b/openapi/openapiv2.json index ede50acb9..0b84ce12d 100644 --- a/openapi/openapiv2.json +++ b/openapi/openapiv2.json @@ -15649,10 +15649,6 @@ "type": "string", "format": "byte", "description": "This value can be passed back to UpdateSchedule to ensure that the\nschedule was not modified between a Describe and an Update, which could\nlead to lost updates and other confusion." - }, - "timeSkippingInfo": { - "$ref": "#/definitions/v1TimeSkippingInfo", - "description": "Information about time skipping for this schedule.\nIf the schedule has never enabled time skipping, this will be unset." } } }, @@ -19266,6 +19262,10 @@ "type": "string", "format": "int64", "description": "Size of the schedule's internal state (including payloads) in bytes." + }, + "timeSkippingInfo": { + "$ref": "#/definitions/v1TimeSkippingInfo", + "description": "Information about time skipping for this schedule.\nIf the schedule has never enabled time skipping, this will be unset." } } }, diff --git a/openapi/openapiv3.yaml b/openapi/openapiv3.yaml index b7592674f..8f4393bb3 100644 --- a/openapi/openapiv3.yaml +++ b/openapi/openapiv3.yaml @@ -11908,12 +11908,6 @@ components: schedule was not modified between a Describe and an Update, which could lead to lost updates and other confusion. format: bytes - timeSkippingInfo: - allOf: - - $ref: '#/components/schemas/TimeSkippingInfo' - description: |- - Information about time skipping for this schedule. - If the schedule has never enabled time skipping, this will be unset. DescribeTaskQueueResponse: type: object properties: @@ -16154,6 +16148,12 @@ components: stateSizeBytes: type: string description: Size of the schedule's internal state (including payloads) in bytes. + timeSkippingInfo: + allOf: + - $ref: '#/components/schemas/TimeSkippingInfo' + description: |- + Information about time skipping for this schedule. + If the schedule has never enabled time skipping, this will be unset. ScheduleListEntry: type: object properties: diff --git a/temporal/api/schedule/v1/message.proto b/temporal/api/schedule/v1/message.proto index 0a918ba78..5190a0b54 100644 --- a/temporal/api/schedule/v1/message.proto +++ b/temporal/api/schedule/v1/message.proto @@ -352,6 +352,10 @@ message ScheduleInfo { // Size of the schedule's internal state (including payloads) in bytes. int64 state_size_bytes = 12; + + // Information about time skipping for this schedule. + // If the schedule has never enabled time skipping, this will be unset. + temporal.api.common.v1.TimeSkippingInfo time_skipping_info = 13; } message Schedule { diff --git a/temporal/api/workflowservice/v1/request_response.proto b/temporal/api/workflowservice/v1/request_response.proto index 632058f8b..2133bbe2a 100644 --- a/temporal/api/workflowservice/v1/request_response.proto +++ b/temporal/api/workflowservice/v1/request_response.proto @@ -1457,10 +1457,6 @@ message DescribeScheduleResponse { // schedule was not modified between a Describe and an Update, which could // lead to lost updates and other confusion. bytes conflict_token = 5; - - // Information about time skipping for this schedule. - // If the schedule has never enabled time skipping, this will be unset. - temporal.api.common.v1.TimeSkippingInfo time_skipping_info = 6; } message UpdateScheduleRequest {