aboutsummaryrefslogtreecommitdiff
path: root/src/terminal
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-05-29 21:01:03 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-05-29 21:01:03 +0300
commit1f2b0f71b54467a9749b0d3b6945b5322d0aa42a (patch)
tree2695c3f992f6aad89839a3e90fdfce2741092844 /src/terminal
parent9e302984ccb13a65e3e504fa7692b223f546ff84 (diff)
fix: keep restored agent panes after exit
Diffstat (limited to 'src/terminal')
-rw-r--r--src/terminal/state.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/terminal/state.rs b/src/terminal/state.rs
index f061e318..c1d17db5 100644
--- a/src/terminal/state.rs
+++ b/src/terminal/state.rs
@@ -641,6 +641,22 @@ impl TerminalState {
self.agent_name = None;
}
+ pub fn clear_agent_runtime_identity_after_respawn(&mut self) {
+ self.detected_agent = None;
+ self.fallback_state = AgentState::Unknown;
+ self.fallback_visible_blocker = false;
+ self.fallback_visible_idle = false;
+ self.fallback_visible_working = false;
+ self.fallback_observed_at = None;
+ self.stale_hook_idle_since = None;
+ self.hook_authority = None;
+ self.persisted_agent_session = None;
+ self.agent_metadata.clear();
+ self.launch_argv = None;
+ self.respawn_shell_on_exit = false;
+ self.clear_agent_name();
+ }
+
pub fn is_agent_terminal(&self) -> bool {
self.agent_name.is_some()
|| self.effective_agent_label().is_some()