From 3550a3e08d2c48dbcf8c5c01ad000184665a43fb Mon Sep 17 00:00:00 2001 From: Stefan Amberger <1277330+snamber@users.noreply.github.com> Date: Fri, 20 Mar 2026 20:36:48 +0100 Subject: [PATCH 1/2] Update task release proto for publish changes and deployed timestamp Amp-Thread-ID: https://ampcode.com/threads/T-019d0bd7-fff9-74cc-92a7-9337332a80cb Co-authored-by: Amp --- apis/workflows/v1/task_release.proto | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/apis/workflows/v1/task_release.proto b/apis/workflows/v1/task_release.proto index 9c74577..cab6c16 100644 --- a/apis/workflows/v1/task_release.proto +++ b/apis/workflows/v1/task_release.proto @@ -5,6 +5,7 @@ edition = "2023"; package workflows.v1; import "buf/validate/validate.proto"; +import "google/protobuf/timestamp.proto"; import "tilebox/v1/id.proto"; import "workflows/v1/core.proto"; @@ -32,8 +33,19 @@ message PublishReleaseResponse { tilebox.v1.ID release_id = 1; // True when this call created a new release row. bool created = 2; - // True when this call matched an existing immutable payload exactly. - bool idempotent = 3; + // Explicit payload changes compared to the latest comparable release. + PublishReleaseChanges changes = 4; + reserved 3; +} + +// PublishReleaseChanges captures which release surfaces changed. +message PublishReleaseChanges { + // True when the task set (including versions) changed. + bool tasks = 1; + // True when the artifact content changed. + bool artifact = 2; + // True when the runtime environment changed. + bool environment = 3; } // DeployReleaseRequest updates the cluster deployment pointer for a release. @@ -82,6 +94,8 @@ message DeployedRelease { uint64 change_revision = 7; // Task identifiers included in the deployed release. repeated TaskIdentifier tasks = 8; + // Timestamp when this release pointer was deployed. + google.protobuf.Timestamp deployed_at = 9; } // GetClusterDeploymentManifestResponse returns desired deployment state for a cluster. From fe5ea4a7b0cb3a4fb3d9098a2a5dd4be895b8710 Mon Sep 17 00:00:00 2001 From: Stefan Amberger <1277330+snamber@users.noreply.github.com> Date: Fri, 20 Mar 2026 20:49:50 +0100 Subject: [PATCH 2/2] Reserve idempotent field name in publish release response Amp-Thread-ID: https://ampcode.com/threads/T-019d0bd7-fff9-74cc-92a7-9337332a80cb Co-authored-by: Amp --- apis/workflows/v1/task_release.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/apis/workflows/v1/task_release.proto b/apis/workflows/v1/task_release.proto index cab6c16..e590acb 100644 --- a/apis/workflows/v1/task_release.proto +++ b/apis/workflows/v1/task_release.proto @@ -35,6 +35,7 @@ message PublishReleaseResponse { bool created = 2; // Explicit payload changes compared to the latest comparable release. PublishReleaseChanges changes = 4; + reserved idempotent; reserved 3; }