feat(goose-acp): enable parallel sessions with isolated agent state (#6392)
Signed-off-by: Adrian Cole <adrian@tetrate.io>
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user