diff --git a/crates/app-tauri/src/state.rs b/crates/app-tauri/src/state.rs index 6b38e5d..61a6f3d 100644 --- a/crates/app-tauri/src/state.rs +++ b/crates/app-tauri/src/state.rs @@ -891,12 +891,19 @@ impl AppState { .with_record_turn( Arc::new(AppRecordTurnProvider) as Arc, Arc::clone(&clock) as Arc, - ) - // Registre des sessions IA structurées (§17.5) : permet à `ask_agent` de - // router une cible structurée (sans PTY) sur sa session et de la drainer via - // `drain_with_readiness` — le `Final` réveille le round-trip ET marque l'agent - // `Idle` (readiness/heartbeat lot 1). - .with_structured(Arc::clone(&structured_sessions)), + ), + // NB (régression corrigée) : on ne câble PAS `.with_structured(...)` ici. + // Décision produit lot B-2 (« Option 1 Terminal + MCP », cf. construction + // de `LaunchAgent` plus haut) : la fabrique structurée est décâblée, donc + // AUCUN agent n'a de session structurée vivante — tous tournent en PTY brut + // et la délégation passe par les outils MCP (`idea_ask_agent`/`idea_reply`). + // Si l'orchestrateur recevait `with_structured`, `ask_agent` emprunterait la + // branche structurée (`ensure_structured_session`) qui ne peut jamais aboutir + // (le launcher ne crée plus de session structurée) ⇒ erreur systématique + // « aucune session structurée vivante après lancement ». On laisse donc + // `self.structured = None` pour que `ask_agent` retombe sur le chemin PTY+MCP + // fonctionnel. `drain_with_readiness` (readiness/heartbeat lot 1) reste dormant + // tant que la voie structurée n'est pas réactivée au composition root. ); // --- Windows (L10) ---