Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions clippy-baselines/too_many_lines.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,12 @@ crates/goose-mcp/src/computercontroller/pdf_tool.rs::pdf_tool
crates/goose-mcp/src/memory/mod.rs::new
crates/goose-server/src/openapi.rs::convert_typed_schema
crates/goose-server/src/openapi.rs::convert_typed_schema
crates/goose-server/src/routes/audio.rs::transcribe_elevenlabs_handler
crates/goose-server/src/routes/audio.rs::transcribe_elevenlabs_handler
crates/goose/src/agents/agent.rs::create_recipe
crates/goose/src/agents/agent.rs::dispatch_tool_call
crates/goose/src/agents/agent.rs::reply
crates/goose/src/agents/agent.rs::reply_internal
crates/goose/src/providers/canonical/build_canonical_models.rs::build_canonical_models
crates/goose/src/providers/claude_code.rs::execute_command
crates/goose/src/providers/codex.rs::execute_command
crates/goose/src/providers/formats/anthropic.rs::format_messages
crates/goose/src/providers/formats/anthropic.rs::response_to_streaming_message
crates/goose/src/providers/formats/databricks.rs::format_messages
Expand Down
3 changes: 3 additions & 0 deletions crates/goose-acp/src/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ pub struct AcpServerConfig {
pub data_dir: std::path::PathBuf,
pub config_dir: std::path::PathBuf,
pub goose_mode: goose::config::GooseMode,
pub disable_session_naming: bool,
}

fn mcp_server_to_extension_config(mcp_server: McpServer) -> Result<ExtensionConfig, String> {
Expand Down Expand Up @@ -309,6 +310,7 @@ impl GooseAcpAgent {
data_dir: Paths::data_dir(),
config_dir: Paths::config_dir(),
goose_mode,
disable_session_naming: config.get_goose_disable_session_naming().unwrap_or(false),
})
.await
}
Expand All @@ -323,6 +325,7 @@ impl GooseAcpAgent {
permission_manager,
None,
config.goose_mode,
config.disable_session_naming,
));

let agent_ptr = Arc::new(agent);
Expand Down
3 changes: 3 additions & 0 deletions crates/goose-acp/src/server_factory.rs
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ impl AcpServer {
data_dir: self.config.data_dir.clone(),
config_dir: self.config.config_dir.clone(),
goose_mode,
disable_session_naming: global_config
.get_goose_disable_session_naming()
.unwrap_or(false),
};

let agent = GooseAcpAgent::with_config(acp_config).await?;
Expand Down
13 changes: 2 additions & 11 deletions crates/goose-acp/tests/fixtures/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -119,8 +119,7 @@ impl ExpectedSessionId {
}
}

/// Calling this ensures incidental requests that might error asynchronously, such as
/// session rename have coherent session IDs.
/// Calling this ensures requests have coherent session IDs.
pub fn assert_matches(&self, actual: &str) {
let result = self.validate(Some(actual));
assert!(result.is_ok(), "{}", result.unwrap_err());
Expand Down Expand Up @@ -165,15 +164,6 @@ impl OpenAiFixture {
.set_body_json(serde_json::json!({"error": {"message": e}}));
}

// Session rename (async, unpredictable order) - canned response
if body.contains("Reply with only a description in four words or less") {
return ResponseTemplate::new(200)
.insert_header("content-type", "application/json")
.set_body_string(include_str!(
"../test_data/openai_session_description.json"
));
}

// See if the actual request matches the expected pattern
let mut q = queue.lock().unwrap();
let (expected_body, response) = q.front().cloned().unwrap_or_default();
Expand Down Expand Up @@ -396,6 +386,7 @@ pub async fn spawn_acp_server_in_process(
data_dir: data_root.to_path_buf(),
config_dir: data_root.to_path_buf(),
goose_mode,
disable_session_naming: true,
};

let (client_read, server_write) = tokio::io::duplex(64 * 1024);
Expand Down

This file was deleted.

Large diffs are not rendered by default.

682 changes: 158 additions & 524 deletions crates/goose-cli/src/scenario_tests/recordings/openai/weather_tool.json

Large diffs are not rendered by default.

Large diffs are not rendered by default.

8 changes: 7 additions & 1 deletion crates/goose-cli/src/scenario_tests/scenario_runner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,13 @@ where
let temp_dir = TempDir::new()?;
let session_manager = Arc::new(SessionManager::new(temp_dir.path().to_path_buf()));
let permission_manager = Arc::new(PermissionManager::new(temp_dir.path().to_path_buf()));
let agent_config = AgentConfig::new(session_manager, permission_manager, None, GooseMode::Auto);
let agent_config = AgentConfig::new(
session_manager,
permission_manager,
None,
GooseMode::Auto,
true,
);
let agent = Agent::with_config(agent_config);
agent
.extension_manager
Expand Down
11 changes: 7 additions & 4 deletions crates/goose/src/agents/agent.rs
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ pub struct AgentConfig {
pub permission_manager: Arc<PermissionManager>,
pub scheduler_service: Option<Arc<dyn SchedulerTrait>>,
pub goose_mode: GooseMode,
pub disable_session_naming: bool,
}

impl AgentConfig {
Expand All @@ -102,12 +103,14 @@ impl AgentConfig {
permission_manager: Arc<PermissionManager>,
scheduler_service: Option<Arc<dyn SchedulerTrait>>,
goose_mode: GooseMode,
disable_session_naming: bool,
) -> Self {
Self {
session_manager,
permission_manager,
scheduler_service,
goose_mode,
disable_session_naming,
}
}
}
Expand Down Expand Up @@ -189,6 +192,9 @@ impl Agent {
PermissionManager::instance(),
None,
Config::global().get_goose_mode().unwrap_or(GooseMode::Auto),
Config::global()
.get_goose_disable_session_naming()
.unwrap_or(false),
))
}

Expand Down Expand Up @@ -1112,10 +1118,7 @@ impl Agent {
let provider = self.provider().await?;
let session_manager = self.config.session_manager.clone();
let session_id = session_config.id.clone();
let naming_disabled = Config::global()
.get_goose_disable_session_naming()
.unwrap_or(false);
if !naming_disabled {
if !self.config.disable_session_naming {
let manager_for_spawn = session_manager.clone();
tokio::spawn(async move {
if let Err(e) = manager_for_spawn
Expand Down
3 changes: 3 additions & 0 deletions crates/goose/src/execution/manager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,9 @@ impl AgentManager {
permission_manager,
Some(Arc::clone(&self.scheduler)),
mode,
Config::global()
.get_goose_disable_session_naming()
.unwrap_or(false),
);
let agent = Arc::new(Agent::with_config(config));
if let Some(provider) = &*self.default_provider.read().await {
Expand Down
4 changes: 4 additions & 0 deletions crates/goose/tests/agent.rs
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ mod tests {
permission_manager,
Some(mock_scheduler),
GooseMode::Auto,
false,
);
let agent = Agent::with_config(config);

Expand Down Expand Up @@ -168,6 +169,7 @@ mod tests {
permission_manager,
Some(mock_scheduler),
GooseMode::Auto,
false,
);
let agent = Agent::with_config(config);

Expand Down Expand Up @@ -221,6 +223,7 @@ mod tests {
permission_manager,
Some(mock_scheduler),
GooseMode::Auto,
false,
);
let agent = Agent::with_config(config);

Expand Down Expand Up @@ -541,6 +544,7 @@ mod tests {
PermissionManager::instance(),
None,
GooseMode::Auto,
false,
);

let agent = Agent::with_config(config);
Expand Down
Loading