From 55cdf2e8f8af2dd3feebb4bb7d44c9cb7e23b384 Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Mon, 11 May 2026 16:13:17 +0300 Subject: fix: stabilize integration agent state reports --- src/app/actions.rs | 19 +++++++++++++++---- src/app/api.rs | 3 +++ 2 files changed, 18 insertions(+), 4 deletions(-) (limited to 'src/app') diff --git a/src/app/actions.rs b/src/app/actions.rs index b8777cdc..317bbff7 100644 --- a/src/app/actions.rs +++ b/src/app/actions.rs @@ -599,23 +599,33 @@ impl AppState { agent_label, state, message, + seq, } => self .update_pane_state(pane_id, |pane| { - pane.set_hook_authority(source, agent_label, state, message) + pane.set_hook_authority(source, agent_label, state, message, seq) }) .into_iter() .collect(), - AppEvent::HookAuthorityCleared { pane_id, source } => self - .update_pane_state(pane_id, |pane| pane.clear_hook_authority(source.as_deref())) + AppEvent::HookAuthorityCleared { + pane_id, + source, + seq, + } => self + .update_pane_state(pane_id, |pane| { + pane.clear_hook_authority(source.as_deref(), seq) + }) .into_iter() .collect(), AppEvent::HookAgentReleased { pane_id, source, agent_label, + seq, .. } => self - .update_pane_state(pane_id, |pane| pane.release_agent(&source, &agent_label)) + .update_pane_state(pane_id, |pane| { + pane.release_agent(&source, &agent_label, seq) + }) .into_iter() .collect(), // Intercepted in App::handle_internal_event before reaching this @@ -1153,6 +1163,7 @@ mod tests { agent_label: "hermes".into(), state: AgentState::Blocked, message: None, + seq: None, }); let toast = state.toast.as_ref().unwrap(); diff --git a/src/app/api.rs b/src/app/api.rs index b23787d2..c675aa6f 100644 --- a/src/app/api.rs +++ b/src/app/api.rs @@ -1019,6 +1019,7 @@ impl App { agent_label, state: detect_state_from_api(params.state), message: params.message, + seq: params.seq, }); SuccessResponse { id: request.id, @@ -1039,6 +1040,7 @@ impl App { self.handle_internal_event(crate::events::AppEvent::HookAuthorityCleared { pane_id, source: params.source, + seq: params.seq, }); SuccessResponse { id: request.id, @@ -1071,6 +1073,7 @@ impl App { source: params.source, known_agent: crate::detect::parse_agent_label(&agent_label), agent_label, + seq: params.seq, }); SuccessResponse { id: request.id, -- cgit v1.2.3