From 2292fd47625eb844777d9e4740d428ff2e5453ea Mon Sep 17 00:00:00 2001 From: bsiggel Date: Thu, 12 Mar 2026 23:06:40 +0000 Subject: [PATCH] feat: Enhance document synchronization logic to continue syncing after collection activation --- services/aiknowledge_sync_utils.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/services/aiknowledge_sync_utils.py b/services/aiknowledge_sync_utils.py index 01198f7..0b42d0d 100644 --- a/services/aiknowledge_sync_utils.py +++ b/services/aiknowledge_sync_utils.py @@ -155,8 +155,10 @@ class AIKnowledgeSync(BaseSyncUtils): }) ctx.logger.info(f"✅ Collection created: {collection_id}") - ctx.logger.info(" Status changed to 'active', next webhook will sync documents") - return + ctx.logger.info(" Status changed to 'active', now syncing documents...") + + # Continue to document sync immediately (don't return) + # Fall through to sync logic below # ═══════════════════════════════════════════════════════════ # CASE 2: DEACTIVATED → Delete Collection from XAI @@ -202,14 +204,15 @@ class AIKnowledgeSync(BaseSyncUtils): return # ═══════════════════════════════════════════════════════════ - # CASE 4: ACTIVE → Normal Sync + # CASE 4: ACTIVE → Normal Sync (or just created from NEW) # ═══════════════════════════════════════════════════════════ - elif activation_status == AIKnowledgeActivationStatus.ACTIVE.value: + if activation_status in (AIKnowledgeActivationStatus.ACTIVE.value, AIKnowledgeActivationStatus.NEW.value): if not collection_id: ctx.logger.error("❌ Status 'active' but no datenbankId!") raise RuntimeError("Active knowledge without collection ID") - ctx.logger.info(f"🔄 Status 'active' → Syncing documents to {collection_id}") + if activation_status == AIKnowledgeActivationStatus.ACTIVE.value: + ctx.logger.info(f"🔄 Status 'active' → Syncing documents to {collection_id}") # Verify collection exists collection = await xai.get_collection(collection_id) @@ -227,10 +230,10 @@ class AIKnowledgeSync(BaseSyncUtils): 'datenbankId': collection_id }) - # Sync documents + # Sync documents (both for ACTIVE status and after NEW → ACTIVE transition) await self._sync_knowledge_documents(knowledge_id, collection_id, ctx) - else: + elif activation_status not in (AIKnowledgeActivationStatus.DEACTIVATED.value, AIKnowledgeActivationStatus.PAUSED.value): ctx.logger.error(f"❌ Unknown aktivierungsstatus: {activation_status}") raise ValueError(f"Invalid aktivierungsstatus: {activation_status}")