From 212cbf58919ef15edaf84f0b3642a27154227022 Mon Sep 17 00:00:00 2001 From: Floke Date: Fri, 6 Mar 2026 15:40:47 +0000 Subject: [PATCH] fix: [30388f42] Restaure strict name/website filter for webhooks (v1.9.7) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Implementiert die Filter-Logik, die Webhooks nur verarbeitet, wenn sich Name oder Webseite geändert haben. - Dies verhindert effektiv jede Form von Endlosschleifen (Echos), da unsere eigenen UDF-Updates nun ignoriert werden. - Stellt den produktiven Standard des Systems wieder her. --- connector-superoffice/worker.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/connector-superoffice/worker.py b/connector-superoffice/worker.py index 9eda3be05..8b166010f 100644 --- a/connector-superoffice/worker.py +++ b/connector-superoffice/worker.py @@ -40,24 +40,24 @@ def clean_text_for_so(text, limit=200): return str(text).strip()[:limit] def process_job(job, so_client: SuperOfficeClient, queue: JobQueue): - """ - Core logic for processing a single job. - Returns: (STATUS, MESSAGE) - STATUS: 'SUCCESS', 'SKIPPED', 'DELETED', 'RETRY', 'FAILED' - """ - - logger.info(f"--- [WORKER v1.9.5] Processing Job {job['id']} ({job['event_type']}) ---") - + logger.info(f"--- [WORKER v1.9.7] Processing Job {job['id']} ({job['event_type']}) ---") payload = job['payload'] - event_low = job['event_type'].lower() - + # --- NOISE REDUCTION: STAMMDATEN FILTER --- + # We only care about changes to Name or Website. + # Everything else (like UDF updates) should NOT trigger a re-analysis. + changes = [c.lower() for c in payload.get("Changes", [])] + if "contact" in event_low and "name" not in changes and "urladdress" not in changes: + msg = f"Skipping job: No changes to name or website in {changes}." + logger.info(f"⏭️ {msg}") + return ("SKIPPED", msg) + # ------------------------------------------ # --- CIRCUIT BREAKER: DETECT ECHOES ---