feat(goose-acp): enable parallel sessions with isolated agent state (#6392)

Signed-off-by: Adrian Cole <adrian@tetrate.io>
This commit is contained in:
Adrian Cole
2026-01-15 06:19:17 +08:00
committed by GitHub
parent fb0eca2c36
commit 7d4a6bd8ff
86 changed files with 2594 additions and 1938 deletions
+13 -15
View File
@@ -20,20 +20,13 @@ impl Agent {
arguments: serde_json::Value,
_request_id: String,
) -> ToolResult<Vec<Content>> {
let scheduler = self
.scheduler_service
.lock()
.await
.as_ref()
.ok_or_else(|| {
ErrorData::new(
ErrorCode::INTERNAL_ERROR,
"Scheduler service should be available when schedule tool is called"
.to_string(),
None,
)
})?
.clone();
let scheduler = self.config.scheduler_service.clone().ok_or_else(|| {
ErrorData::new(
ErrorCode::INTERNAL_ERROR,
"Scheduler not available".to_string(),
None,
)
})?;
let action = arguments
.get("action")
@@ -441,7 +434,12 @@ impl Agent {
)
})?;
let session = match crate::session::SessionManager::get_session(session_id, true).await {
let session = match self
.config
.session_manager
.get_session(session_id, true)
.await
{
Ok(metadata) => metadata,
Err(e) => {
return Err(ErrorData::new(