From 6ef78a62a873233c972186023551743323d4d263 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 0b643ceb7..b9f4f4d73 100644 --- a/openapi/openapiv2.json +++ b/openapi/openapiv2.json @@ -12903,6 +12903,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." } } }, @@ -19312,6 +19316,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 2aa7c45bf..7bc7aff36 100644 --- a/openapi/openapiv3.yaml +++ b/openapi/openapiv3.yaml @@ -16154,6 +16154,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: @@ -17601,6 +17607,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 1aae988d8..9c65436b8 100644 --- a/temporal/api/workflowservice/v1/request_response.proto +++ b/temporal/api/workflowservice/v1/request_response.proto @@ -219,6 +219,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 9430dea2413c3f985beda01baeabb9b0572bcc64 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 b9f4f4d73..460116533 100644 --- a/openapi/openapiv2.json +++ b/openapi/openapiv2.json @@ -15784,6 +15784,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 7bc7aff36..a22dd637b 100644 --- a/openapi/openapiv3.yaml +++ b/openapi/openapiv3.yaml @@ -11976,6 +11976,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 9c65436b8..5bae58047 100644 --- a/temporal/api/workflowservice/v1/request_response.proto +++ b/temporal/api/workflowservice/v1/request_response.proto @@ -1463,6 +1463,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 b616bd7ed0ebf0d30b6e6486e1c9b8e5c9f6a407 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 460116533..191149ac3 100644 --- a/openapi/openapiv2.json +++ b/openapi/openapiv2.json @@ -15784,10 +15784,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." } } }, @@ -19428,6 +19424,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 a22dd637b..12bdffdd4 100644 --- a/openapi/openapiv3.yaml +++ b/openapi/openapiv3.yaml @@ -11976,12 +11976,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: @@ -16264,6 +16258,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 5bae58047..9c65436b8 100644 --- a/temporal/api/workflowservice/v1/request_response.proto +++ b/temporal/api/workflowservice/v1/request_response.proto @@ -1463,10 +1463,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 {