From f7fe0f203e0f349df33819aab239c0aade016f79 Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Sun, 17 May 2026 01:41:17 +0300 Subject: fix: polish terminal-core agent semantics --- src/terminal/state.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/terminal') diff --git a/src/terminal/state.rs b/src/terminal/state.rs index df89b688..f9d5b522 100644 --- a/src/terminal/state.rs +++ b/src/terminal/state.rs @@ -38,6 +38,7 @@ pub struct TerminalState { pub fallback_state: AgentState, pub hook_authority: Option, pub manual_label: Option, + pub agent_name: Option, hook_report_sequences: HashMap, pub state: AgentState, pub revision: u64, @@ -53,6 +54,7 @@ impl TerminalState { fallback_state: AgentState::Unknown, hook_authority: None, manual_label: None, + agent_name: None, hook_report_sequences: HashMap::new(), state: AgentState::Unknown, revision: 0, @@ -231,6 +233,21 @@ impl TerminalState { self.manual_label = None; } + pub fn set_agent_name(&mut self, name: String) { + let name = name.trim().to_string(); + self.agent_name = (!name.is_empty()).then_some(name); + } + + pub fn clear_agent_name(&mut self) { + self.agent_name = None; + } + + pub fn is_agent_terminal(&self) -> bool { + self.agent_name.is_some() + || self.effective_agent_label().is_some() + || self.launch_argv.is_some() + } + pub fn border_label(&self, show_agent_labels: bool) -> Option<&str> { self.manual_label.as_deref().or_else(|| { show_agent_labels -- cgit v1.2.3