From d5785a3671f90d1a7467d60980c8ec9e00e9d4eb Mon Sep 17 00:00:00 2001 From: Anthony <101225832+AnthonyRonning@users.noreply.github.com> Date: Wed, 22 Jul 2026 20:35:45 -0700 Subject: [PATCH] fix(session): use configured session manager for tool summaries (#10628) --- crates/goose/src/agents/agent.rs | 2 +- crates/goose/src/session/session_manager.rs | 5 ++--- crates/goose/tests/agent.rs | 17 +++++++++++++---- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/crates/goose/src/agents/agent.rs b/crates/goose/src/agents/agent.rs index 832d77812..a4cc147b4 100644 --- a/crates/goose/src/agents/agent.rs +++ b/crates/goose/src/agents/agent.rs @@ -2841,7 +2841,7 @@ impl Agent { if matching_ids.len() == 2 { for id in &matching_ids { - SessionManager::update_message_metadata(&session_config.id, id, |metadata| { + session_manager.update_message_metadata(&session_config.id, id, |metadata| { metadata.with_agent_invisible() }).await?; } diff --git a/crates/goose/src/session/session_manager.rs b/crates/goose/src/session/session_manager.rs index cc7c9c865..48b567c9a 100644 --- a/crates/goose/src/session/session_manager.rs +++ b/crates/goose/src/session/session_manager.rs @@ -617,14 +617,13 @@ impl SessionManager { .await } - pub async fn update_message_metadata(id: &str, message_id: &str, f: F) -> Result<()> + pub async fn update_message_metadata(&self, id: &str, message_id: &str, f: F) -> Result<()> where F: FnOnce( crate::conversation::message::MessageMetadata, ) -> crate::conversation::message::MessageMetadata, { - Self::instance() - .storage + self.storage .update_message_metadata(id, message_id, f) .await } diff --git a/crates/goose/tests/agent.rs b/crates/goose/tests/agent.rs index 3f8c271e9..e7e58e71b 100644 --- a/crates/goose/tests/agent.rs +++ b/crates/goose/tests/agent.rs @@ -832,14 +832,15 @@ mod tests { mod tool_pair_summarization_tests { use super::*; use async_trait::async_trait; - use goose::agents::SessionConfig; + use goose::agents::{AgentConfig, SessionConfig}; use goose::config::base::Config; + use goose::config::permission::PermissionManager; use goose::config::GooseMode; use goose::conversation::message::Message; use goose::providers::base::{ stream_from_single_message, MessageStream, Provider, ProviderDef, ProviderMetadata, }; - use goose::session::session_manager::SessionType; + use goose::session::{SessionManager, SessionType}; use goose_providers::conversation::token_usage::{ProviderUsage, Usage}; use goose_providers::errors::ProviderError; use goose_providers::model::ModelConfig; @@ -935,8 +936,16 @@ mod tests { .set_param("GOOSE_TOOL_CALL_CUTOFF", 2) .unwrap(); - let agent = Agent::new(); - let session_manager = agent.config.session_manager.clone(); + let temp_dir = tempfile::tempdir()?; + let session_manager = Arc::new(SessionManager::new(temp_dir.path().join("data"))); + let agent = Agent::with_config(AgentConfig::new( + Arc::clone(&session_manager), + Arc::new(PermissionManager::new(temp_dir.path().join("config"))), + None, + GooseMode::Auto, + true, + GoosePlatform::GooseCli, + )); let provider = Arc::new(SummarizationTestProvider::new()); let session = session_manager