diff --git a/crates/goose-cli/src/session/mod.rs b/crates/goose-cli/src/session/mod.rs index a7678327b731..4bee1f987f27 100644 --- a/crates/goose-cli/src/session/mod.rs +++ b/crates/goose-cli/src/session/mod.rs @@ -1302,6 +1302,7 @@ impl CliSession { Ok(messages) => { let start_len = self.messages.len(); let mut valid = true; + let num_messages = messages.len(); for (i, prompt_message) in messages.into_iter().enumerate() { let msg = Message::from(prompt_message); // ensure we get a User - Assistant - User type pattern @@ -1329,6 +1330,17 @@ impl CliSession { } if valid { + if num_messages > 1 { + for i in 0..(num_messages - 1) { + let msg = &self.messages.messages()[start_len + i]; + self.agent + .config + .session_manager + .add_message(&self.session_id, msg) + .await?; + } + } + output::show_thinking(); self.process_agent_response(true, CancellationToken::default()) .await?;