feat: sys-2 Edge-Queue — Signatur-Prüfung, Dedup, asynchrone Verarbeitung
Quality Gate / 🛡️ Lint + Type Check + Tests (push) Failing after 11m21s

- webhook_queue.py: WhatsApp X-Hub-Signature-256 + Telegram Webhook-Intake
- queue_handler.py: SQLite-basierte Queue mit Idempotenz (UNIQUE message_id)
- queue_worker.py: Asynchroner Worker für GPU-Verarbeitung
- app.py: Webhooks umgebaut → sofort 200 OK, Worker verarbeitet später
- Redis 8.0 läuft als Infrastruktur (Queue ist SQLite für Persistenz)
This commit is contained in:
Hermes Agent
2026-06-21 23:59:17 +02:00
parent 5bad339558
commit a5eb0e7d27
5 changed files with 834 additions and 497 deletions
+48
View File
@@ -0,0 +1,48 @@
# BSN-Chatsystem — CI Quality Gate
# Läuft bei JEDEM Push. Kein --no-verify-Umgehen möglich.
# Konfiguriert für Python 3.13 + Ruff 0.15 + mypy 2.1
name: Quality Gate
on:
push:
branches: [main, develop, "feature/**", "fix/**"]
pull_request:
branches: [main]
jobs:
quality:
name: "🛡️ Lint + Type Check + Tests"
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: 📥 Checkout
uses: actions/checkout@v4
- name: 🐍 Python 3.13
uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: 📦 Dependencies
run: |
pip install ruff mypy pytest pytest-cov
# Projekt-spezifische Deps (falls requirements.txt existiert)
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
# ── Linting + Sicherheit ──
- name: 🔍 Ruff — Linting + Sicherheit
run: ruff check . --output-format=github
# ── Formatierung ──
- name: 🎨 Ruff — Formatierung
run: ruff format --check .
# ── Typ-Prüfung ──
- name: 🔎 mypy — Statische Typ-Prüfung
run: mypy . --strict
# ── Tests + Coverage ──
- name: 🧪 pytest — Tests + Coverage
run: pytest --cov --cov-fail-under=80 --tb=short