From 0b8fd2f8a1704d927e1f9cd05a1f942ed83393c8 Mon Sep 17 00:00:00 2001 From: Lifei Zhou Date: Thu, 16 Jul 2026 16:33:26 +1000 Subject: [PATCH] fix flaky prepare tools test --- crates/goose/src/agents/reply_parts.rs | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/crates/goose/src/agents/reply_parts.rs b/crates/goose/src/agents/reply_parts.rs index ff485a30846b..7b7eecc6ee1b 100644 --- a/crates/goose/src/agents/reply_parts.rs +++ b/crates/goose/src/agents/reply_parts.rs @@ -666,10 +666,11 @@ pub fn is_tool_visible_to_model(tool: &Tool) -> bool { #[cfg(test)] mod tests { use super::*; - use crate::config::GooseMode; + use crate::agents::{AgentConfig, GoosePlatform}; + use crate::config::{GooseMode, PermissionManager}; use crate::conversation::message::{Message, SystemNotificationType}; use crate::providers::base::Provider; - use crate::session::session_manager::SessionType; + use crate::session::{SessionManager, SessionType}; use async_trait::async_trait; use goose_providers::conversation::token_usage::{ProviderStats, ProviderUsage, Usage}; use goose_providers::model::ModelConfig; @@ -700,11 +701,19 @@ mod tests { #[tokio::test] async fn prepare_tools_returns_sorted_tools_including_frontend() -> anyhow::Result<()> { - let agent = crate::agents::Agent::new(); + let data_dir = tempfile::tempdir()?; + let data_path = data_dir.path().to_path_buf(); + let session_manager = std::sync::Arc::new(SessionManager::new(data_path.clone())); + let agent = Agent::with_config(AgentConfig::new( + std::sync::Arc::clone(&session_manager), + std::sync::Arc::new(PermissionManager::new(data_path)), + None, + GooseMode::default(), + false, + GoosePlatform::GooseCli, + )); - let session = agent - .config - .session_manager + let session = session_manager .create_session( std::env::current_dir().unwrap(), "test-prepare-tools".to_string(),