From cbe30c6ccb1da6b9cc30d2dd969a3102aaffda3e Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Mon, 15 Jun 2026 01:18:05 +0200 Subject: [PATCH] Refactor list_libraries to async and ensure background preparation jobs are running before listing libraries --- backend/local_rag.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/backend/local_rag.py b/backend/local_rag.py index bb799da..0fe70cb 100644 --- a/backend/local_rag.py +++ b/backend/local_rag.py @@ -1099,7 +1099,7 @@ def _build_local_context(prompt: str, results: Dict[str, Any], top_k: int = 5) - @router.get("/libraries") -def list_libraries(): +async def list_libraries(): libraries: List[Dict[str, Any]] = [] for path in LIB_ROOT.iterdir(): if not path.is_dir(): @@ -1108,7 +1108,10 @@ def list_libraries(): if not meta.exists(): continue try: - libraries.append(library_payload(_read_json(meta))) + data = _read_json(meta) + if _pipeline_meta(data).get("pending_prepare_signature") and not _has_active_job(data["slug"]): + await _ensure_prepare_job(data["slug"]) + libraries.append(library_payload(read_library(data["slug"]))) except Exception: continue libraries.sort(key=lambda item: item.get("created_at", ""), reverse=True)