aboutsummaryrefslogtreecommitdiff
path: root/src/app
diff options
context:
space:
mode:
Diffstat (limited to 'src/app')
-rw-r--r--src/app/actions.rs19
-rw-r--r--src/app/api.rs3
2 files changed, 18 insertions, 4 deletions
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,