From 64aa486e48ae7e800bcb37b3d0ff7c3bf211d60b Mon Sep 17 00:00:00 2001 From: Oliver Kieselbach Date: Fri, 3 Apr 2026 17:51:26 +0200 Subject: [PATCH] fix missing LatestAgentSha256/Version mapping in AdminConfiguration table entity MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The CI/CD pipeline correctly writes these fields via REST Merge, but ConvertFromAdminTableEntity never read them back — causing the agent to always skip the post-config binary integrity check. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../DataAccess/TableStorage/TableConfigRepository.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Backend/AutopilotMonitor.Functions/DataAccess/TableStorage/TableConfigRepository.cs b/src/Backend/AutopilotMonitor.Functions/DataAccess/TableStorage/TableConfigRepository.cs index 44e4e426..d5851848 100644 --- a/src/Backend/AutopilotMonitor.Functions/DataAccess/TableStorage/TableConfigRepository.cs +++ b/src/Backend/AutopilotMonitor.Functions/DataAccess/TableStorage/TableConfigRepository.cs @@ -524,7 +524,10 @@ namespace AutopilotMonitor.Functions.DataAccess.TableStorage { "OpsAlertTeamsEnabled", config.OpsAlertTeamsEnabled }, { "OpsAlertTeamsWebhookUrl", config.OpsAlertTeamsWebhookUrl ?? string.Empty }, { "OpsAlertSlackEnabled", config.OpsAlertSlackEnabled }, - { "OpsAlertSlackWebhookUrl", config.OpsAlertSlackWebhookUrl ?? string.Empty } + { "OpsAlertSlackWebhookUrl", config.OpsAlertSlackWebhookUrl ?? string.Empty }, + // Agent binary integrity (written by CI/CD pipeline via Merge, but must be round-trippable) + { "LatestAgentVersion", config.LatestAgentVersion ?? string.Empty }, + { "LatestAgentSha256", config.LatestAgentSha256 ?? string.Empty } }; return entity; @@ -557,7 +560,10 @@ namespace AutopilotMonitor.Functions.DataAccess.TableStorage OpsAlertTeamsEnabled = entity.GetBoolean("OpsAlertTeamsEnabled") ?? false, OpsAlertTeamsWebhookUrl = entity.GetString("OpsAlertTeamsWebhookUrl"), OpsAlertSlackEnabled = entity.GetBoolean("OpsAlertSlackEnabled") ?? false, - OpsAlertSlackWebhookUrl = entity.GetString("OpsAlertSlackWebhookUrl") + OpsAlertSlackWebhookUrl = entity.GetString("OpsAlertSlackWebhookUrl"), + // Agent binary integrity (written by CI/CD pipeline) + LatestAgentVersion = entity.GetString("LatestAgentVersion") ?? string.Empty, + LatestAgentSha256 = entity.GetString("LatestAgentSha256") ?? string.Empty }; }