feat(infra): temp IdeA launch-scoped alloué par lancement d'agent, injecté via TMPDIR/TMP/TEMP, writable_roots + release au stop, fail-closed — #200 (QA verte)

This commit is contained in:
2026-08-14 23:55:54 +02:00
parent 1d10a6ee80
commit 1157de1dda
5 changed files with 558 additions and 45 deletions

View File

@ -1626,11 +1626,6 @@ impl BackendCore {
Arc::clone(&pty_port),
Arc::clone(&terminal_sessions),
));
let close_terminal = Arc::new(CloseTerminal::new(
Arc::clone(&pty_port),
Arc::clone(&terminal_sessions),
));
// --- Layout use cases (L4 + #4) ---
let load_layout = Arc::new(LoadLayout::new(
Arc::clone(&store_port),
@ -1884,6 +1879,10 @@ impl BackendCore {
Arc::clone(&managed_temp_store_port),
Arc::clone(&clock) as Arc<dyn Clock>,
));
let close_terminal = Arc::new(
CloseTerminal::new(Arc::clone(&pty_port), Arc::clone(&terminal_sessions))
.with_managed_temp_releaser(Arc::clone(&release_managed_temp)),
);
let gc_managed_temp = Arc::new(GcManagedTemp::new(
Arc::clone(&managed_temp_store_port),
Arc::clone(&clock) as Arc<dyn Clock>,
@ -2243,6 +2242,10 @@ impl BackendCore {
.with_local_model_server(Arc::clone(&ensure_local_model_server))
.with_secret_store(Arc::clone(&secret_store_port))
.with_managed_temp_resolver(Arc::clone(&resolve_managed_temp))
.with_launch_managed_temp(
Arc::clone(&allocate_managed_temp),
Arc::clone(&release_managed_temp),
)
.with_structured(
Arc::clone(&session_factory),
Arc::clone(&structured_sessions),
@ -2282,6 +2285,10 @@ impl BackendCore {
.with_local_model_server(Arc::clone(&ensure_local_model_server))
.with_secret_store(Arc::clone(&secret_store_port))
.with_managed_temp_resolver(Arc::clone(&resolve_managed_temp))
.with_launch_managed_temp(
Arc::clone(&allocate_managed_temp),
Arc::clone(&release_managed_temp),
)
.with_structured(
Arc::clone(&session_factory),
Arc::clone(&structured_sessions),