aboutsummaryrefslogtreecommitdiff
path: root/src/events.rs
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-04-01 19:30:58 +0300
committerCan Celik <ogulcancelik@gmail.com>2026-04-01 19:32:26 +0300
commitca4270b31fe93c180f7321cb4006cb5e7307d889 (patch)
tree72628e311a1b8e5ebf78c74cbc61d990253dc4c4 /src/events.rs
parentfb0c9717cfa961a47d63272e622e9e35a001082a (diff)
feat: add authoritative pi hook integration
Diffstat (limited to 'src/events.rs')
-rw-r--r--src/events.rs21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/events.rs b/src/events.rs
index 58b16863..c1c45a0e 100644
--- a/src/events.rs
+++ b/src/events.rs
@@ -11,12 +11,31 @@ use crate::layout::PaneId;
pub enum AppEvent {
/// A pane's child process exited.
PaneDied { pane_id: PaneId },
- /// Agent state changed in a pane (detected by the PTY reader).
+ /// Fallback detector state changed in a pane.
StateChanged {
pane_id: PaneId,
agent: Option<Agent>,
state: AgentState,
},
+ /// Hook-authoritative agent state was reported for a pane.
+ HookStateReported {
+ pane_id: PaneId,
+ source: String,
+ agent: Agent,
+ state: AgentState,
+ message: Option<String>,
+ },
+ /// Hook authority was explicitly cleared for a pane.
+ HookAuthorityCleared {
+ pane_id: PaneId,
+ source: Option<String>,
+ },
+ /// The current detected agent gracefully released this pane back to the shell.
+ HookAgentReleased {
+ pane_id: PaneId,
+ source: String,
+ agent: Agent,
+ },
/// A new version was downloaded and installed. Restart to use it.
UpdateReady { version: String },
}