From 03618a4b59a12806ad11833cfbf2da320331aafa Mon Sep 17 00:00:00 2001 From: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 Date: Wed, 10 Jun 2026 12:36:39 -0400 Subject: [PATCH] fix(desktop): check relay accepted flag on engram publish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit publish_agent_event now parses the response body as SubmitEventResponse and verifies accepted == true. The relay can return HTTP 200 with accepted: false on duplicate events or policy rejections — previously this was treated as success. Matches the pattern in submit_event (relay.rs:394). Co-authored-by: Will Pfleger Signed-off-by: Will Pfleger --- desktop/src-tauri/src/managed_agents/fleet_update.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/desktop/src-tauri/src/managed_agents/fleet_update.rs b/desktop/src-tauri/src/managed_agents/fleet_update.rs index e770ac157..863fa9fd9 100644 --- a/desktop/src-tauri/src/managed_agents/fleet_update.rs +++ b/desktop/src-tauri/src/managed_agents/fleet_update.rs @@ -246,6 +246,16 @@ async fn publish_agent_event( if !response.status().is_success() { return Err(relay::relay_error_message(response).await); } + + let result: relay::SubmitEventResponse = response + .json() + .await + .map_err(|e| format!("failed to parse publish response: {e}"))?; + + if !result.accepted { + return Err(format!("relay rejected engram: {}", result.message)); + } + Ok(()) }