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
+6 -3
View File
@@ -4,7 +4,7 @@ use crate::config::paths::Paths;
use crate::providers::utils::LOGS_TO_KEEP;
use crate::session::SessionManager;
use serde::{Deserialize, Serialize};
use std::fs::{self};
use std::fs;
use std::io::Cursor;
use std::io::Write;
use utoipa::ToSchema;
@@ -69,7 +69,10 @@ pub fn get_system_info() -> SystemInfo {
SystemInfo::collect()
}
pub async fn generate_diagnostics(session_id: &str) -> anyhow::Result<Vec<u8>> {
pub async fn generate_diagnostics(
session_manager: &SessionManager,
session_id: &str,
) -> anyhow::Result<Vec<u8>> {
let logs_dir = Paths::in_state_dir("logs");
let config_dir = Paths::config_dir();
let config_path = config_dir.join("config.yaml");
@@ -96,7 +99,7 @@ pub async fn generate_diagnostics(session_id: &str) -> anyhow::Result<Vec<u8>> {
zip.write_all(&fs::read(&path)?)?;
}
let session_data = SessionManager::export_session(session_id).await?;
let session_data = session_manager.export_session(session_id).await?;
zip.start_file("session.json", options)?;
zip.write_all(session_data.as_bytes())?;
+3 -1
View File
@@ -6,4 +6,6 @@ pub mod session_manager;
pub use diagnostics::{generate_diagnostics, get_system_info, SystemInfo};
pub use extension_data::{EnabledExtensionsState, ExtensionData, ExtensionState, TodoState};
pub use session_manager::{Session, SessionInsights, SessionManager, SessionType};
pub use session_manager::{
Session, SessionInsights, SessionManager, SessionType, SessionUpdateBuilder,
};
File diff suppressed because it is too large Load Diff