diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-04-16 22:12:44 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-04-16 22:17:09 +0300 |
| commit | 0b831c86274486af9f9f7052c2534374b498bb3a (patch) | |
| tree | 3e8130be85cb387c8c3e57591617c4c7be0a26ec /src/app/mod.rs | |
| parent | 318e6a3033b61082d9c330c79ef584cf37e6c6d0 (diff) | |
feat: allow hook-reported custom agent labels
Diffstat (limited to 'src/app/mod.rs')
| -rw-r--r-- | src/app/mod.rs | 47 |
1 files changed, 9 insertions, 38 deletions
diff --git a/src/app/mod.rs b/src/app/mod.rs index 11a034f9..7f821da2 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -795,8 +795,13 @@ impl App { } } - let released_agent = if let AppEvent::HookAgentReleased { pane_id, agent, .. } = &ev { - Some((*pane_id, *agent)) + let released_agent = if let AppEvent::HookAgentReleased { + pane_id, + known_agent, + .. + } = &ev + { + known_agent.map(|agent| (*pane_id, agent)) } else { None }; @@ -827,13 +832,13 @@ impl App { }; let workspace_id = self.public_workspace_id(update.ws_idx); - if update.previous_agent != update.agent { + if update.previous_agent_label != update.agent_label { self.emit_event(crate::api::schema::EventEnvelope { event: crate::api::schema::EventKind::PaneAgentDetected, data: crate::api::schema::EventData::PaneAgentDetected { pane_id: pane_id.clone(), workspace_id: workspace_id.clone(), - agent: update.agent.map(agent_name), + agent: update.agent_label.clone(), }, }); } @@ -1275,40 +1280,6 @@ fn pane_agent_status( } } -fn parse_agent_name(agent: &str) -> Option<crate::detect::Agent> { - match agent { - "pi" => Some(crate::detect::Agent::Pi), - "claude" => Some(crate::detect::Agent::Claude), - "codex" => Some(crate::detect::Agent::Codex), - "gemini" => Some(crate::detect::Agent::Gemini), - "cursor" => Some(crate::detect::Agent::Cursor), - "cline" => Some(crate::detect::Agent::Cline), - "opencode" => Some(crate::detect::Agent::OpenCode), - "copilot" => Some(crate::detect::Agent::GithubCopilot), - "kimi" => Some(crate::detect::Agent::Kimi), - "droid" => Some(crate::detect::Agent::Droid), - "amp" => Some(crate::detect::Agent::Amp), - _ => None, - } -} - -fn agent_name(agent: crate::detect::Agent) -> String { - match agent { - crate::detect::Agent::Pi => "pi", - crate::detect::Agent::Claude => "claude", - crate::detect::Agent::Codex => "codex", - crate::detect::Agent::Gemini => "gemini", - crate::detect::Agent::Cursor => "cursor", - crate::detect::Agent::Cline => "cline", - crate::detect::Agent::OpenCode => "opencode", - crate::detect::Agent::GithubCopilot => "copilot", - crate::detect::Agent::Kimi => "kimi", - crate::detect::Agent::Droid => "droid", - crate::detect::Agent::Amp => "amp", - } - .to_string() -} - #[cfg(test)] mod tests { use super::*; |
