From 41f07b0ba86f0a6d67819090125ca066c9f31022 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 20 Jul 2026 13:30:38 +0000 Subject: [PATCH] =?UTF-8?q?Validation=20shell=20:=20la=20carte=20reste=20j?= =?UTF-8?q?usqu'=C3=A0=20d=C3=A9cision=20de=20l'utilisateur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit L'agent termine son tour pour attendre la validation, donc le streaming s'arrête aussitôt — or la carte de confirmation n'était affichée que pendant le streaming, elle disparaissait avant qu'on puisse cliquer. - La carte de validation shell s'affiche tant que `pendingShell` existe, indépendamment de l'état de streaming (approbation/refus déjà gérés hors flux). - Changer de session efface une validation en attente (elle appartenait à la session quittée). Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01SVay7z3y7q2gEe54ByAE6N --- frontend/src/panels/ChatPanel.tsx | 5 ++++- frontend/src/store/useStore.ts | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/frontend/src/panels/ChatPanel.tsx b/frontend/src/panels/ChatPanel.tsx index b12e565..56eb73b 100644 --- a/frontend/src/panels/ChatPanel.tsx +++ b/frontend/src/panels/ChatPanel.tsx @@ -115,7 +115,10 @@ export function ChatPanel() { planDone={streamPlanDone} /> )} - {showingStreaming && pendingShell && ( + {/* La validation shell persiste APRÈS la fin du flux : l'agent + termine son tour en attendant l'utilisateur, donc le streaming + s'arrête — la carte doit rester tant qu'on n'a pas tranché. */} + {pendingShell && ( ((set, get) => ({ set({ currentSessionId: id, messages, + // Une validation shell en attente appartient à la session quittée. ...(streaming ? {} - : { streamContent: "", streamStatus: "", streamNotice: null }), + : { streamContent: "", streamStatus: "", streamNotice: null, pendingShell: null }), }); // L'arborescence suit le projet de la session ouverte. await get().refreshFiles();