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.
This commit is contained in:
@@ -1234,10 +1234,12 @@ class AppController:
|
|||||||
|
|
||||||
self.rag_engine = None
|
self.rag_engine = None
|
||||||
if self.rag_config.enabled:
|
if self.rag_config.enabled:
|
||||||
from src import rag_engine
|
def _init_rag_engine():
|
||||||
self.rag_engine = rag_engine.RAGEngine(self.rag_config, self.active_project_root)
|
from src import rag_engine
|
||||||
if self.rag_engine.is_empty():
|
self.rag_engine = rag_engine.RAGEngine(self.rag_config, self.active_project_root)
|
||||||
self._rebuild_rag_index()
|
if self.rag_engine.is_empty():
|
||||||
|
self._rebuild_rag_index()
|
||||||
|
threading.Thread(target=_init_rag_engine, daemon=True).start()
|
||||||
|
|
||||||
from src.personas import PersonaManager
|
from src.personas import PersonaManager
|
||||||
self.persona_manager = PersonaManager(Path(self.active_project_path).parent if self.active_project_path else None)
|
self.persona_manager = PersonaManager(Path(self.active_project_path).parent if self.active_project_path else None)
|
||||||
|
|||||||
Reference in New Issue
Block a user