From 0f15ecbbf3b39beb2612dd905191c911843647be Mon Sep 17 00:00:00 2001 From: Ed_ Date: Wed, 13 May 2026 15:54:59 -0400 Subject: [PATCH] fix(app_controller): async RAG engine init to avoid blocking startup RAG engine initialization (including chromadb import and index loading) now happens in a background thread, allowing the GUI to show immediately. The app was blocking for 5+ seconds during init_state() because RAG was enabled in config. Now RAG loads asynchronously. --- src/app_controller.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/app_controller.py b/src/app_controller.py index cf330bf0..5c28076b 100644 --- a/src/app_controller.py +++ b/src/app_controller.py @@ -1234,10 +1234,12 @@ class AppController: self.rag_engine = None if self.rag_config.enabled: - from src import rag_engine - self.rag_engine = rag_engine.RAGEngine(self.rag_config, self.active_project_root) - if self.rag_engine.is_empty(): - self._rebuild_rag_index() + def _init_rag_engine(): + from src import rag_engine + self.rag_engine = rag_engine.RAGEngine(self.rag_config, self.active_project_root) + if self.rag_engine.is_empty(): + self._rebuild_rag_index() + threading.Thread(target=_init_rag_engine, daemon=True).start() from src.personas import PersonaManager self.persona_manager = PersonaManager(Path(self.active_project_path).parent if self.active_project_path else None)