diff --git a/crates/goose-cli/src/cli.rs b/crates/goose-cli/src/cli.rs index ad5cc9835e90..5c644bf6eb1b 100644 --- a/crates/goose-cli/src/cli.rs +++ b/crates/goose-cli/src/cli.rs @@ -75,7 +75,7 @@ async fn get_session_id(identifier: Identifier) -> Result { sessions .into_iter() - .find(|s| s.description == name) + .find(|s| s.id == name || s.description.contains(&name)) .map(|s| s.id) .ok_or_else(|| anyhow::anyhow!("No session found with name '{}'", name)) } else if let Some(path) = identifier.path { diff --git a/crates/goose-cli/src/session/mod.rs b/crates/goose-cli/src/session/mod.rs index 61bb06d7ac8a..aadcdd5f0f08 100644 --- a/crates/goose-cli/src/session/mod.rs +++ b/crates/goose-cli/src/session/mod.rs @@ -758,6 +758,11 @@ impl CliSession { } } } + + if let Some(id) = &self.session_id { + println!("Closing session. Session ID: {}", console::style(id).cyan()); + } + Ok(()) } diff --git a/crates/goose-cli/src/session/output.rs b/crates/goose-cli/src/session/output.rs index 9027426ca1d9..639d7da96157 100644 --- a/crates/goose-cli/src/session/output.rs +++ b/crates/goose-cli/src/session/output.rs @@ -743,6 +743,14 @@ pub fn display_session_info( ); } + if let Some(id) = session_id { + println!( + " {} {}", + style("session id:").dim(), + style(id).cyan().dim() + ); + } + println!( " {} {}", style("working directory:").dim(),