From 9ba68e62eef526fc9c0770deb9003753ca0984a7 Mon Sep 17 00:00:00 2001 From: Abhijay Jain Date: Tue, 28 Jul 2026 01:57:53 +0530 Subject: [PATCH] fix(acp): pass session working_dir to on_call_tool (#10689) --- crates/goose/src/acp/server/tools.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/crates/goose/src/acp/server/tools.rs b/crates/goose/src/acp/server/tools.rs index 87a7cf30d..6e71cd428 100644 --- a/crates/goose/src/acp/server/tools.rs +++ b/crates/goose/src/acp/server/tools.rs @@ -91,7 +91,20 @@ impl GooseAcpAgent { params }; - let ctx = crate::agents::ToolCallContext::new(session_id.clone(), None, None); + let session = self + .session_manager + .get_session(session_id, false) + .await + .map_err(|_| { + agent_client_protocol::Error::resource_not_found(Some(session_id.to_string())) + .data(format!("Session not found: {}", session_id)) + })?; + + let ctx = crate::agents::ToolCallContext::new( + session_id.clone(), + Some(session.working_dir), + None, + ); let tool_result = agent .extension_manager .dispatch_tool_call(&ctx, tool_call, CancellationToken::new())