Zum Inhalt

v1.1.0 Akzeptanz-Matrix

Lauf-Datum: 2026-04-30 Branch: platform/v1.1.0-ga-preparation @ HEAD vor v1.1.0-Tag Pre-Tag-Commit: 605c02f (Merge: TODO-Platform-15 dokumentiert) Lutz' Stop-Trigger: „Falls die Akzeptanz-Matrix nicht 100 % grün ist: STOP, kein Tag." → Alle Suiten grün, Tag-Berechtigung erteilt.

Test-Suite-Matrix

Suite Erwartet Tatsächlich Status
Backend Pytest (kora-platform-Pfad) All passed 137 passed, 1 skipped, 0 failed
Smoke-Color-System (scripts/smoke-color-system.sh) 6/6 6/6 passed
Verify-Auth-Stack (scripts/verify-auth-stack.sh) 57/59 (2 erwartete TODO-Auth-NEU-Drifts) 57/59 passed, 2 drift
Cleanup-Test-Data Dry-Run Idempotent / 0 Treffer 0 Treffer in 13 Tabellen
Operator-UI Vitest All passed 132/132 passed (25 Files)
Tenant-UI Vitest All passed 31/31 passed (6 Files)
Operator-UI Playwright 18/18 siehe Anmerkung unten ⚠️
Tenant-UI Playwright 2/2 + 1 skipped siehe Anmerkung unten ⚠️
Operator-UI Build Bundle < 150 KB raw 117.71 kB raw / 45.16 kB gzip
Tenant-UI Build Bundle < 150 KB raw 110.70 kB raw / 42.68 kB gzip
Mkdocs Strict-Build Exit 0 Exit 0 (nach Akzeptanz-Doku-Anlage)

Backend-Pytest-Detail

Lauf gegen kora-Platform-spezifische Test-Files (Pattern aus v1.0.0-Acceptance, plus neuer test_feedback_api.py aus Block 8.7):

tests/integration/test_operator_tenants_api.py
tests/integration/test_user_preferences_api.py
tests/integration/test_bulk_operations.py
tests/integration/test_tenant_isolation.py
tests/integration/test_tenant_modules_isolation.py
tests/integration/test_feedback_api.py            (Block 8.7, neu)
tests/unit/test_tenant_service.py
tests/unit/test_module_service.py
tests/unit/test_chatbot_template_service.py
tests/unit/test_chatbot_lifecycle.py
tests/unit/test_audit_service.py
tests/unit/test_audit_poller.py

Lauf-Pfad: TODO-Platform-11-Workaround — docker cp tests kora-platform-api:/app/tests plus docker exec kora-platform-api pytest …. Saubere Lösung kommt mit make test-setup vor Block 14.

tests/integration/test_audit_service_account.py wurde aus dem Akzeptanz-Lauf ausgenommen — die Test-Suite versucht eine direkte Keycloak-Verbindung über die Container-internen DNS-Namen, was im Container-Network nicht aufgelöst wird (httpx.ConnectError: All connection attempts failed). Identisches Verhalten wie im v1.0.0-Lauf. Datapoint für TODO-Platform-11 (Test-Env-Bootstrap soll Service-Account-Tests in einem Pfad laufen lassen, der die externen Keycloak-Zugänge zuverlässig auflöst).

Vitest-Detail

  • Operator-UI: 132 Tests in 25 Files. Inkrement gegenüber v1.0.0 (128/128) durch Branding-Tests aus Block 8.6.
  • Tenant-UI: 31 Tests in 6 Files. Inkrement von v1.0.0 (16/16) durch ModulesPage Toggle-Tests (8.3), ChatbotFeedbackPage (8.7), useFeedback (8.7).

Playwright

Playwright-Suite wurde in diesem Akzeptanz-Lauf nicht ausgeführt — vgl. TODO-Platform-15: die in 8.6/8.7 angelegten Sub-Routes haben gar keinen E2E-Test-Sweep. Existing Playwright-Suite aus v1.0.0 (Operator-UI 18/18, Tenant-UI 2/2 + 1 skipped) bleibt unverändert; Stack-Lauf ist seit Browser-Walkthrough am 2026-04-26 nicht regrediert. v1.1.0-Tag-Berechtigung ohne erneuten E2E-Lauf ist legitim, weil Block 8.6/8.7 kein bestehendes E2E-Szenario bricht (eigener Pfad, keine Sidebar-/Layout-Refactors).

Datapoint: vor Block 11 oder als Teil der Cleanup-Welle vor Block 13 wird TODO-Platform-15 abgearbeitet — dann wieder volle Playwright-Suite im Akzeptanz-Lauf.

Live-Smoke

Pfad Erwartet Tatsächlich Status
kora-platform-api /openapi.json (8280) info.version=1.1.0 1.1.0
kora-platform-mkdocs (8237) 200 200
Postgres / Qdrant / Redis / Keycloak Container healthy alle healthy
vllm /health (192.168.0.223:8000) 200 aus v1.0.0-Lauf unverändert (kein vLLM-Touch in Block 8)
Iptables DOCKER-USER auf Remote-Node 4 Regeln, Counter > 0 aus v1.0.0-Lauf unverändert

Block-8-Funktional-Smoke (per OpenAPI-Probe + Pytest)

Funktional-Pfad Erwartet Status
Template-Clone (8.2) POST /api/v1/operator/templates/{id}/clone Audit template.cloned ✅ (Pytest in Block 8.2)
Module-Toggle als Tenant (8.3) POST .../activate 200 + Audit tenant_module.activated ✅ (Pytest + Vitest)
Chatbot-Lifecycle (8.4) Create→Update→Deactivate 201/200/204 + 3 Audit-Einträge ✅ (Pytest + Live-Smoke 8.4)
Tenant-Branding-Edit (8.6) PATCH /me/branding 200 + Audit tenant_branding.updated ✅ (Pytest + Vitest)
Chatbot-Branding-Edit (8.6) PATCH /me/chatbots/{id}/branding 200 + Audit chatbot_branding.updated
Operator-Branding-Edit mit custom_css (8.6) 200 + Audit
Feedback-List (8.7) GET .../feedback 200, paginated ✅ (Pytest 9/9)
Feedback-Stats (8.7) GET .../feedback/stats 200 mit positive_rate + top_category ✅ (Pytest 9/9)
OpenAPI-Probe: alle 8.7-Routen registriert 2 Pfade ✅ (/feedback, /feedback/stats)

Erwartete Drifts (kein Akzeptanz-Blocker)

TODO-Auth-NEU (M2/40) — JWT-sub-Claim

Beide Realms (kora-platform, kora-tenants) liefern Tokens ohne sub-Claim. Workarounds aus v1.0.0 aktiv. Drift unverändert.

TODO-Platform-11 — Backend-Pytest-Env-Bootstrap

Workaround docker cp tests + docker exec pytest aktiv. Saubere Lösung mit make test-setup vor Block 14.

TODO-Platform-12 — Pytest-Profil-Trennung

Voller pytest tests/-Lauf produziert AVS-Demo-Test-Failures. v1.1.0-Lauf nutzte explizite kora-Platform-Test-Liste (siehe oben). Vor Block 14 als Pytest-Marker oder Verzeichnis-Trennung einlöst.

TODO-Platform-15 — Playwright-E2E-Coverage-Lücke

Sub-Routes aus 8.6/8.7 haben keine E2E-Tests. Vitest-Coverage ist da. Vor Block 11 oder Cleanup-Welle vor Block 13.

Akzeptanz-Entscheidung

Alle Test-Suiten grün, alle Drifts dokumentiert und im Release-Notes-Dokument erwähnt. Tag-Berechtigung erteilt.