From c9c34d4e0de37756eeaa7d28b4f43dab3ea72faf Mon Sep 17 00:00:00 2001 From: Fred Tzeng Date: Tue, 16 Jun 2026 16:25:45 -0700 Subject: [PATCH 1/3] Add requested_start_time and actual_start_time to activity execution info --- openapi/openapiv2.json | 20 ++++++++++++++++++++ openapi/openapiv3.yaml | 26 ++++++++++++++++++++++++++ temporal/api/activity/v1/message.proto | 18 ++++++++++++++++++ 3 files changed, 64 insertions(+) diff --git a/openapi/openapiv2.json b/openapi/openapiv2.json index b10dd36bb..9bb4cac05 100644 --- a/openapi/openapiv2.json +++ b/openapi/openapiv2.json @@ -13500,6 +13500,16 @@ "startDelay": { "type": "string", "description": "Time to wait before making the first activity task available for dispatch. This delay is not applied to retry attempts." + }, + "requestedStartTime": { + "type": "string", + "format": "date-time", + "description": "The time at which the activity is requested to start, computed as `schedule_time + start_delay`.\nSame as `schedule_time` if `start_delay` is not set." + }, + "actualStartTime": { + "type": "string", + "format": "date-time", + "description": "The time at which the activity was first dispatched to a worker (i.e. when a worker first picked\nup the task from matching). Not set until a worker picks up the first attempt. Not updated on\nsubsequent retry attempts." } }, "description": "Information about a standalone activity." @@ -13554,6 +13564,16 @@ "executionDuration": { "type": "string", "description": "The difference between close time and scheduled time.\nThis field is only populated if the activity is closed." + }, + "requestedStartTime": { + "type": "string", + "format": "date-time", + "description": "The time at which the activity is requested to start, computed as `schedule_time + start_delay`.\nSame as `schedule_time` if `start_delay` is not set." + }, + "actualStartTime": { + "type": "string", + "format": "date-time", + "description": "The time at which the activity was first dispatched to a worker (i.e. when a worker first picked\nup the task from matching). Not set until a worker picks up the first attempt. Not updated on\nsubsequent retry attempts." } }, "description": "Limited activity information returned in the list response.\nWhen adding fields here, ensure that it is also present in ActivityExecutionInfo (note that it\nmay already be present in ActivityExecutionInfo but not at the top-level)." diff --git a/openapi/openapiv3.yaml b/openapi/openapiv3.yaml index 15e3d9f8e..cc4732a64 100644 --- a/openapi/openapiv3.yaml +++ b/openapi/openapiv3.yaml @@ -9852,6 +9852,19 @@ components: pattern: ^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$ type: string description: Time to wait before making the first activity task available for dispatch. This delay is not applied to retry attempts. + requestedStartTime: + type: string + description: |- + The time at which the activity is requested to start, computed as `schedule_time + start_delay`. + Same as `schedule_time` if `start_delay` is not set. + format: date-time + actualStartTime: + type: string + description: |- + The time at which the activity was first dispatched to a worker (i.e. when a worker first picked + up the task from matching). Not set until a worker picks up the first attempt. Not updated on + subsequent retry attempts. + format: date-time description: Information about a standalone activity. ActivityExecutionListInfo: type: object @@ -9907,6 +9920,19 @@ components: description: |- The difference between close time and scheduled time. This field is only populated if the activity is closed. + requestedStartTime: + type: string + description: |- + The time at which the activity is requested to start, computed as `schedule_time + start_delay`. + Same as `schedule_time` if `start_delay` is not set. + format: date-time + actualStartTime: + type: string + description: |- + The time at which the activity was first dispatched to a worker (i.e. when a worker first picked + up the task from matching). Not set until a worker picks up the first attempt. Not updated on + subsequent retry attempts. + format: date-time description: |- Limited activity information returned in the list response. When adding fields here, ensure that it is also present in ActivityExecutionInfo (note that it diff --git a/temporal/api/activity/v1/message.proto b/temporal/api/activity/v1/message.proto index 6aa787203..a0eff242c 100644 --- a/temporal/api/activity/v1/message.proto +++ b/temporal/api/activity/v1/message.proto @@ -186,6 +186,15 @@ message ActivityExecutionInfo { // Time to wait before making the first activity task available for dispatch. This delay is not applied to retry attempts. google.protobuf.Duration start_delay = 37; + + // The time at which the activity is requested to start, computed as `schedule_time + start_delay`. + // Same as `schedule_time` if `start_delay` is not set. + google.protobuf.Timestamp requested_start_time = 38; + + // The time at which the activity was first dispatched to a worker (i.e. when a worker first picked + // up the task from matching). Not set until a worker picks up the first attempt. Not updated on + // subsequent retry attempts. + google.protobuf.Timestamp actual_start_time = 39; } // Limited activity information returned in the list response. @@ -219,6 +228,15 @@ message ActivityExecutionListInfo { // The difference between close time and scheduled time. // This field is only populated if the activity is closed. google.protobuf.Duration execution_duration = 11; + + // The time at which the activity is requested to start, computed as `schedule_time + start_delay`. + // Same as `schedule_time` if `start_delay` is not set. + google.protobuf.Timestamp requested_start_time = 12; + + // The time at which the activity was first dispatched to a worker (i.e. when a worker first picked + // up the task from matching). Not set until a worker picks up the first attempt. Not updated on + // subsequent retry attempts. + google.protobuf.Timestamp actual_start_time = 13; } // CallbackInfo contains the state of an attached activity callback. From 70269c0cc490b6080023baa9ad0be465147d03fe Mon Sep 17 00:00:00 2001 From: Fred Tzeng Date: Wed, 17 Jun 2026 15:00:02 -0700 Subject: [PATCH 2/3] Remove fields from ActivityExecutionListInfo --- openapi/openapiv2.json | 10 ---------- openapi/openapiv3.yaml | 13 ------------- temporal/api/activity/v1/message.proto | 9 --------- 3 files changed, 32 deletions(-) diff --git a/openapi/openapiv2.json b/openapi/openapiv2.json index 9bb4cac05..5988c5a53 100644 --- a/openapi/openapiv2.json +++ b/openapi/openapiv2.json @@ -13564,16 +13564,6 @@ "executionDuration": { "type": "string", "description": "The difference between close time and scheduled time.\nThis field is only populated if the activity is closed." - }, - "requestedStartTime": { - "type": "string", - "format": "date-time", - "description": "The time at which the activity is requested to start, computed as `schedule_time + start_delay`.\nSame as `schedule_time` if `start_delay` is not set." - }, - "actualStartTime": { - "type": "string", - "format": "date-time", - "description": "The time at which the activity was first dispatched to a worker (i.e. when a worker first picked\nup the task from matching). Not set until a worker picks up the first attempt. Not updated on\nsubsequent retry attempts." } }, "description": "Limited activity information returned in the list response.\nWhen adding fields here, ensure that it is also present in ActivityExecutionInfo (note that it\nmay already be present in ActivityExecutionInfo but not at the top-level)." diff --git a/openapi/openapiv3.yaml b/openapi/openapiv3.yaml index cc4732a64..42255082a 100644 --- a/openapi/openapiv3.yaml +++ b/openapi/openapiv3.yaml @@ -9920,19 +9920,6 @@ components: description: |- The difference between close time and scheduled time. This field is only populated if the activity is closed. - requestedStartTime: - type: string - description: |- - The time at which the activity is requested to start, computed as `schedule_time + start_delay`. - Same as `schedule_time` if `start_delay` is not set. - format: date-time - actualStartTime: - type: string - description: |- - The time at which the activity was first dispatched to a worker (i.e. when a worker first picked - up the task from matching). Not set until a worker picks up the first attempt. Not updated on - subsequent retry attempts. - format: date-time description: |- Limited activity information returned in the list response. When adding fields here, ensure that it is also present in ActivityExecutionInfo (note that it diff --git a/temporal/api/activity/v1/message.proto b/temporal/api/activity/v1/message.proto index a0eff242c..af2b97690 100644 --- a/temporal/api/activity/v1/message.proto +++ b/temporal/api/activity/v1/message.proto @@ -228,15 +228,6 @@ message ActivityExecutionListInfo { // The difference between close time and scheduled time. // This field is only populated if the activity is closed. google.protobuf.Duration execution_duration = 11; - - // The time at which the activity is requested to start, computed as `schedule_time + start_delay`. - // Same as `schedule_time` if `start_delay` is not set. - google.protobuf.Timestamp requested_start_time = 12; - - // The time at which the activity was first dispatched to a worker (i.e. when a worker first picked - // up the task from matching). Not set until a worker picks up the first attempt. Not updated on - // subsequent retry attempts. - google.protobuf.Timestamp actual_start_time = 13; } // CallbackInfo contains the state of an attached activity callback. From 390d4afd14564a2ab169a1535b76e9b1b4cfcce8 Mon Sep 17 00:00:00 2001 From: Fred Tzeng Date: Wed, 1 Jul 2026 10:39:46 -0700 Subject: [PATCH 3/3] address pr comments --- openapi/openapiv2.json | 9 ++------- openapi/openapiv3.yaml | 13 +++---------- temporal/api/activity/v1/message.proto | 11 +++-------- 3 files changed, 8 insertions(+), 25 deletions(-) diff --git a/openapi/openapiv2.json b/openapi/openapiv2.json index 5988c5a53..a34f866b5 100644 --- a/openapi/openapiv2.json +++ b/openapi/openapiv2.json @@ -13501,15 +13501,10 @@ "type": "string", "description": "Time to wait before making the first activity task available for dispatch. This delay is not applied to retry attempts." }, - "requestedStartTime": { - "type": "string", - "format": "date-time", - "description": "The time at which the activity is requested to start, computed as `schedule_time + start_delay`.\nSame as `schedule_time` if `start_delay` is not set." - }, - "actualStartTime": { + "executionTime": { "type": "string", "format": "date-time", - "description": "The time at which the activity was first dispatched to a worker (i.e. when a worker first picked\nup the task from matching). Not set until a worker picks up the first attempt. Not updated on\nsubsequent retry attempts." + "description": "The time at which the first activity task is made available for dispatch, computed as\n`schedule_time + start_delay`. Same as `schedule_time` if `start_delay` is not set." } }, "description": "Information about a standalone activity." diff --git a/openapi/openapiv3.yaml b/openapi/openapiv3.yaml index 42255082a..52f8dd853 100644 --- a/openapi/openapiv3.yaml +++ b/openapi/openapiv3.yaml @@ -9852,18 +9852,11 @@ components: pattern: ^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$ type: string description: Time to wait before making the first activity task available for dispatch. This delay is not applied to retry attempts. - requestedStartTime: - type: string - description: |- - The time at which the activity is requested to start, computed as `schedule_time + start_delay`. - Same as `schedule_time` if `start_delay` is not set. - format: date-time - actualStartTime: + executionTime: type: string description: |- - The time at which the activity was first dispatched to a worker (i.e. when a worker first picked - up the task from matching). Not set until a worker picks up the first attempt. Not updated on - subsequent retry attempts. + The time at which the first activity task is made available for dispatch, computed as + `schedule_time + start_delay`. Same as `schedule_time` if `start_delay` is not set. format: date-time description: Information about a standalone activity. ActivityExecutionListInfo: diff --git a/temporal/api/activity/v1/message.proto b/temporal/api/activity/v1/message.proto index af2b97690..db134d301 100644 --- a/temporal/api/activity/v1/message.proto +++ b/temporal/api/activity/v1/message.proto @@ -187,14 +187,9 @@ message ActivityExecutionInfo { // Time to wait before making the first activity task available for dispatch. This delay is not applied to retry attempts. google.protobuf.Duration start_delay = 37; - // The time at which the activity is requested to start, computed as `schedule_time + start_delay`. - // Same as `schedule_time` if `start_delay` is not set. - google.protobuf.Timestamp requested_start_time = 38; - - // The time at which the activity was first dispatched to a worker (i.e. when a worker first picked - // up the task from matching). Not set until a worker picks up the first attempt. Not updated on - // subsequent retry attempts. - google.protobuf.Timestamp actual_start_time = 39; + // The time at which the first activity task is made available for dispatch, computed as + // `schedule_time + start_delay`. Same as `schedule_time` if `start_delay` is not set. + google.protobuf.Timestamp execution_time = 38; } // Limited activity information returned in the list response.