feat(infra): temp IdeA généralisé à tous les agents + purge du store managed-tmp au shutdown d'IdeA — #200 (QA verte)

This commit is contained in:
2026-08-15 00:14:25 +02:00
parent e6f6eb5b1b
commit b5653b24b5
10 changed files with 271 additions and 14 deletions

View File

@ -39,10 +39,10 @@ use application::{
OpenPluginLayoutWindow, OpenProject, OpenTerminal, OpenTicketAssistant, OrchestratorService,
PairAttemptLimiter, PairDevice, PermissionProjectorRegistry, PluginCommandTasks,
PluginConfigDocuments, PluginEventSubscriptions, PluginStorageAccess,
PluginToolchainDiagnostics, PluginWorkspaceAccess, ProposeContext, QueryProjectStructure,
ReadAgentContext, ReadChatDraft, ReadContext, ReadConversationPage, ReadIssue,
ReadIssueAttachment, ReadIssueCarnet, ReadMcpToolPermissions, ReadMemory, ReadMemoryIndex,
ReadProjectContext, ReadSkill, ReadTemplate, RecallMemory, ReconcileLayouts,
PluginToolchainDiagnostics, PluginWorkspaceAccess, ProposeContext, PurgeManagedTemp,
QueryProjectStructure, ReadAgentContext, ReadChatDraft, ReadContext, ReadConversationPage,
ReadIssue, ReadIssueAttachment, ReadIssueCarnet, ReadMcpToolPermissions, ReadMemory,
ReadMemoryIndex, ReadProjectContext, ReadSkill, ReadTemplate, RecallMemory, ReconcileLayouts,
ReconcileLiveState, ReconcileLiveStateInput, ReconcilePluginMcpServers, RecordTurn,
RecordTurnProvider, ReferenceProfiles, ReleaseManagedTemp, RenameDevice, RenameLayout,
RenameSprint, ReorderSprints, ResizeTerminal, ResolveAgentCapabilities,
@ -1106,6 +1106,8 @@ pub struct BackendCore {
pub release_managed_temp: Arc<ReleaseManagedTemp>,
/// Garbage-collect released or expired managed temporary allocations.
pub gc_managed_temp: Arc<GcManagedTemp>,
/// Eagerly purge all managed temporary allocations.
pub purge_managed_temp: Arc<PurgeManagedTemp>,
/// Read one persisted custom chat draft.
pub read_chat_draft: Arc<ReadChatDraft>,
/// Save one persisted custom chat draft.
@ -1887,6 +1889,8 @@ impl BackendCore {
Arc::clone(&managed_temp_store_port),
Arc::clone(&clock) as Arc<dyn Clock>,
));
let purge_managed_temp =
Arc::new(PurgeManagedTemp::new(Arc::clone(&managed_temp_store_port)));
let read_chat_draft = Arc::new(ReadChatDraft::new(
Arc::clone(&store_port),
Arc::clone(&chat_draft_store_port),
@ -3153,6 +3157,7 @@ impl BackendCore {
resolve_managed_temp,
release_managed_temp,
gc_managed_temp,
purge_managed_temp,
read_chat_draft,
save_chat_draft,
clear_chat_draft,