docs(i-a): Stale-Status korrigiert — 13 Findings nachdokumentiert die bereits gefixt waren (ARCH-051/055/056/057/027 + BUG-085–092 D1-Suiten) mit Beweis-Referenzen auf Commits; ehrliche Dokumentationsbasis für Block I

This commit is contained in:
Agent Zero
2026-08-24 21:07:13 +02:00
parent 8386e99caa
commit b9a6c06e85
+13 -13
View File
@@ -675,7 +675,7 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te
- **Erwartet:** Alle Tests passed
- **Tatsächlich:** 27 failed, 15 passed
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
- **Status:** ✅ Gefixt 2026-08-24 (Block D/D1, 9d8da99): test_phase_h_wiki 42/42 grün verifiziert (Voll-Lauf gegen .env.test)
### BUG-086: pytest test_backend_coverage_gaps — 26 Failures
- **Kategorie:** Tests
@@ -683,7 +683,7 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te
- **Erwartet:** Alle Tests passed
- **Tatsächlich:** 26 failed, 2 passed
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
- **Status:** ✅ Gefixt 2026-08-24 (Block D/D1, 9d8da99 + 6d04206): test_backend_coverage_gaps 41/41 grün; dabei SystemSettings-Schema-Drift behoben (backup_interval/retention/destination Model-Spalten + Migration 0142)
### BUG-087: pytest test_companies — 17 Failures
- **Kategorie:** Tests
@@ -691,7 +691,7 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te
- **Erwartet:** Alle Tests passed
- **Tatsächlich:** 17 failed, 1 passed
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
- **Status:** ✅ Gefixt 2026-08-24 (Block D/D1-b, 9d8da99): test_companies 18/18 grün; Root-Cause ContactCreate-Typ-Inferenz (Person-Payloads ohne type wurden als Firma abgelehnt → 422)
### BUG-088: pytest test_calendar — 22 Errors
- **Kategorie:** Tests
@@ -699,7 +699,7 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te
- **Erwartet:** Alle Tests passed
- **Tatsächlich:** 22 errors
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
- **Status:** ✅ Gefixt 2026-08-24 (Block D/D1-c, f6e117b): test_calendar 34/34 grün; Root-Cause conftest fehlte CalendarPlugin-Import (abbe7a1-Regression)
### BUG-089: pytest test_ai_proactive — 31 Errors
- **Kategorie:** Tests
@@ -707,7 +707,7 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te
- **Erwartet:** Alle Tests passed
- **Tatsächlich:** 31 errors, 6 passed
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
- **Status:** ✅ Gefixt 2026-08-24 (Block D/D1-d+e, f6e117b): test_ai_proactive 38 passed+1 skipped; Root-Causes: CalendarContract snake_case-Zugriffe ×4 (Produktionsbug behoben) + 2 stale Rate-Limit-Tests auf zentrale check_rate_limit umgestellt
### BUG-090: pytest test_api_tokens — 13 Errors
- **Kategorie:** Tests
@@ -715,7 +715,7 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te
- **Erwartet:** Alle Tests passed
- **Tatsächlich:** 13 errors
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
- **Status:** ✅ Verifiziert 2026-08-24 (Block D/D1, Batch 4): test_api_tokens komplett grün
### BUG-091: pytest test_abac — 10 Failures
- **Kategorie:** Tests
@@ -723,7 +723,7 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te
- **Erwartet:** Alle Tests passed
- **Tatsächlich:** 10 failed, 8 passed
- **Schweregrad:** High
- **Status:** ⏳ Nicht gefixt
- **Status:** ✅ Verifiziert 2026-08-24 (Block D/D1, Batch 2): test_abac komplett grün
### BUG-092: pytest test_entity_links — 9 Failures
- **Kategorie:** Tests
@@ -731,7 +731,7 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te
- **Erwartet:** Alle Tests passed
- **Tatsächlich:** 9 failed
- **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt
- **Status:** ✅ Gefixt 2026-08-24 (Block D/D3-d, ef90d57): test_permissions 22/22 grün; Root-Cause systemischer Permission-Resolver-Bug (DMS/Mail get_entity_models fehlten im ENTITY_MODELS-Mapping)
### BUG-093: pytest test_cross_tenant_security_v2 — 7 Failures
- **Kategorie:** Tests
@@ -977,7 +977,7 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te
- **Datei:** app/config.py:63
- **Problem:** `secret_key: str = "change-me-in-production-use-a-secure-random-string"` — hardcoded Default im Code.
- **Schweregrad:** Low
- **Status:** ⏳ Nicht gefixt
- **Status:** ✅ Verifiziert 2026-08-24 (Block D/D4-a): Bereits implementiert UND strenger als gefordert — get_settings() lehnt Default-Key UND <32-Zeichen-Keys Import-zeitig in ALLEN Umgebungen ab (RuntimeError, Traceback-Beweis)
### ARCH-028: PluginRouteRenderer 'Page Not Found' hardcoded englisch
- **Datei:** frontend/src/components/plugins/PluginRouteRenderer.tsx:65-70
@@ -1121,7 +1121,7 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te
- **Dateien:** app/routes/companies.py:86,198, app/routes/entity_permissions.py:259,284, app/routes/guests.py:38, app/routes/system_settings.py:89,246, app/routes/users.py:371
- **Problem:** Mehrere Routes akzeptieren `body: dict[str, Any]` oder `body: dict` statt Pydantic schemas. Verletzt AGENTS.md: "Pydantic schemas validate input, never validate in routes".
- **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt
- **Status:** ✅ Gefixt 2026-08-24 (Block D/D3-g, c32e4bb): 14 dict-body-Routes auf Pydantic-Schemas umgestellt; ruff exit=0; create_app OK (559 routes)
### ARCH-052: storage.py — get_file_metadata nutzt asyncio.new_event_loop() in async Kontext
- **Datei:** app/core/storage.py:get_file_metadata
@@ -1145,19 +1145,19 @@ Playwright E2E: 10 passed, 24 failed (BUG-011/012/013 — Mock-Daten und data-te
- **Datei:** app/routes/errors.py:124
- **Problem:** `error.userAgent` im extra dict — aber das Pydantic model ErrorReport hat `user_agent` als field name, nicht `userAgent`. AttributeError zur Laufzeit.
- **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt
- **Status:** ✅ Gefixt 2026-08-24 (Block D/D3-a, 0768cfb): Beide error.userAgent-Zugriffe auf error.user_agent korrigiert (ErrorReport definiert user_agent); AttributeError zur Laufzeit behoben
### ARCH-056: roles.py — hardcoded SYSTEM_PERMISSIONS dupliziert permission_registry.py
- **Datei:** app/routes/roles.py:38-70
- **Problem:** `SYSTEM_PERMISSIONS` Liste ist hardcoded und dupliziert `CORE_PERMISSIONS` aus `app/core/permission_registry.py`. Änderungen an permission_registry werden nicht in roles.py reflektiert.
- **Schweregrad:** Medium
- **Status:** ⏳ Nicht gefixt
- **Status:** ✅ Gefixt 2026-08-24 (Block D/D3-b, 0768cfb): SYSTEM_PERMISSIONS aus CORE_PERMISSIONS abgeleitet (36→47 Permissions, Drift bewiesen via Key-Diff); category→system für Frontend-Gruppierung remappt
### ARCH-057: roles.py — Zugriff auf private Variable registry._plugins
- **Datei:** app/routes/roles.py:87
- **Problem:** `registry._plugins.items()` greift auf eine private Variable zu. Sollte eine öffentliche Methode wie `registry.list_discovered()` oder `registry.get_all_plugins()` verwenden.
- **Schweregrad:** Low
- **Status:** ⏳ Nicht gefixt
- **Status:** ✅ Gefixt 2026-08-24 (Block D/D3-c, 0768cfb): registry._plugins.items() durch öffentliche API list_discovered()+get_plugin() ersetzt
### ARCH-058: webhook_service.py — send_webhook nutzt naive datetime.utcnow()
- **Datei:** app/services/webhook_service.py:send_webhook