fix(sandbox): writable roots Codex dérivées des permissions effectives du menu agent — #197 (QA verte)

This commit is contained in:
2026-08-14 15:05:15 +02:00
parent 6a98752cb0
commit a60fb3ed92
6 changed files with 482 additions and 146 deletions

View File

@ -14,6 +14,7 @@ use domain::{
ProfileId, ProfileStore, Project, SessionId,
};
use crate::codex_permissions::compile_codex_launch_policy;
use crate::terminal::StructuredSessions;
use crate::AppError;
@ -229,11 +230,14 @@ impl OpenTicketAssistant {
return Ok(environment.structured_policy.clone());
}
let network = self.resolve_project_default_network(project).await?;
Ok(Some(StructuredProviderLaunchPolicy::Codex {
sandbox_mode: "workspace-write".to_owned(),
writable_roots: vec![project.root.as_str().to_owned()],
network_access: codex_network_access(network),
}))
let permissions = self.resolve_project_default_permissions(project).await?;
Ok(Some(compile_codex_launch_policy(
project.root.as_str(),
environment.cwd.as_str(),
permissions.as_ref(),
network,
&[],
)))
}
async fn resolve_project_default_network(
@ -262,10 +266,6 @@ impl OpenTicketAssistant {
}
}
fn codex_network_access(network: Option<NetworkPolicy>) -> bool {
matches!(network, Some(NetworkPolicy::Allow))
}
fn ticket_assistant_requester(project: &Project, issue_ref: IssueRef) -> String {
format!(
"ticket-assistant:{}:{}",