From bf9cc201244946496b4d950046bf7edcc4892994 Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Thu, 28 May 2026 04:11:56 +0300 Subject: fix: preserve live handoff terminal state --- src/persist/snapshot.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/persist/snapshot.rs') diff --git a/src/persist/snapshot.rs b/src/persist/snapshot.rs index 36df83b1..7cd01a64 100644 --- a/src/persist/snapshot.rs +++ b/src/persist/snapshot.rs @@ -97,6 +97,8 @@ pub struct PaneSnapshot { pub agent_name: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub agent_session: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub launch_argv: Option>, } #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] @@ -314,6 +316,11 @@ fn capture_tab( .get(id) .and_then(|pane| terminals.get(&pane.attached_terminal_id)) .and_then(|terminal| terminal.agent_name.clone()); + let launch_argv = tab + .panes + .get(id) + .and_then(|pane| terminals.get(&pane.attached_terminal_id)) + .and_then(|terminal| terminal.launch_argv.clone()); let agent_session = tab.panes .get(id) @@ -345,6 +352,7 @@ fn capture_tab( label, agent_name, agent_session, + launch_argv, }, ); } @@ -580,6 +588,7 @@ mod tests { label: None, agent_name: None, agent_session: None, + launch_argv: None, }, ); panes.insert( @@ -589,6 +598,7 @@ mod tests { label: Some("website".into()), agent_name: None, agent_session: None, + launch_argv: None, }, ); @@ -1109,6 +1119,7 @@ mod tests { label: None, agent_name: None, agent_session: None, + launch_argv: None, }, ); panes.insert( @@ -1120,6 +1131,7 @@ mod tests { label: None, agent_name: None, agent_session: None, + launch_argv: None, }, ); -- cgit v1.2.3