QA round 1 found: HTTP 400 from Synapse was misread as "federation disabled", falsely confirming isolation on a rejected request instead of a real disabled state. Only 404 (no such admin endpoint) now maps to that state; 400 falls through to the 502 error path. Also fixes: nextToken type mismatch (Synapse sends a string, hook declared number), empty-state panel wrongly shown on pages beyond the last result, and a NaN guard when advancing pagination. AC amended: "letzter erfolgreicher Kontakt" removed — Synapse's destinations list endpoint has no such timestamp, only retry_last_ts for failed attempts. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
4.0 KiB
Feature Index
Central tracking for all features. Updated by skills automatically — never hand-edit the status column without also updating the matching feature spec header.
Status Legend
- Planned - Requirements written, ready for architecture
- In Progress - Tech design done, frontend/backend being built
- In Review - QA testing in progress
- Deployed - Live in production
Features
| ID | Feature | Status | Spec | Created |
|---|---|---|---|---|
| PROJ-1 | Auth (Login/Logout/Session) | Deployed | PROJ-1-auth.md | 2026-09-11 |
| PROJ-2 | Verein anlegen + Vereinsadministrator | Deployed | PROJ-2-verein-und-vereinsadministrator.md | 2026-09-11 |
| PROJ-3 | Mitgliederverwaltung | Deployed | PROJ-3-mitgliederverwaltung.md | 2026-09-11 |
| PROJ-4 | Abteilungsverwaltung | Deployed | PROJ-4-abteilungsverwaltung.md | 2026-09-11 |
| PROJ-5 | Mannschaftsverwaltung (inkl. Saison) | Deployed | PROJ-5-mannschaftsverwaltung.md | 2026-09-11 |
| PROJ-6 | Rollen & Berechtigungen (RBAC) | Deployed | PROJ-6-rollen-und-berechtigungen.md | 2026-09-11 |
| PROJ-7 | Einladungssystem | Deployed | PROJ-7-einladungssystem.md | 2026-09-11 |
| PROJ-8 | Audit Log | Deployed | PROJ-8-audit-log.md | 2026-09-11 |
| PROJ-9 | Synapse-Integration (Health Check, User Provisioning, Raum-Sync) | Deployed | PROJ-9-synapse-integration-health-check.md | 2026-09-11 |
| PROJ-10 | Deployment (Docker Compose + Synapse Installer) | Deployed | PROJ-10-deployment.md | 2026-09-11 |
| PROJ-11 | Chat (Matrix Client-Server API) | Deployed | PROJ-11-chat.md | 2026-09-11 |
| PROJ-12 | Automatische Löschfrist für ausgetretene Mitglieder (DSGVO) | Planned | PROJ-12-mitglieder-loeschfrist.md | 2026-09-11 |
| PROJ-13 | SYSTEM_ADMIN-Rolle | Deployed | PROJ-13-system-admin-rolle.md | 2026-09-12 |
| PROJ-14 | Synapse Raum-Übersicht (System-Admin) | Deployed | PROJ-14-synapse-raum-uebersicht.md | 2026-09-12 |
| PROJ-15 | Media-Cleanup (System-Admin) | Deployed | PROJ-15-media-cleanup.md | 2026-09-12 |
| PROJ-16 | Federation-Status (System-Admin) | In Review | PROJ-16-federation-status.md | 2026-09-12 |
| PROJ-17 | Nachricht melden (Chat) | Planned | PROJ-17-nachricht-melden.md | 2026-09-12 |
| PROJ-18 | Reports/Moderation (System-Admin) | Planned | PROJ-18-reports-moderation.md | 2026-09-12 |
Noch nicht gestartet (siehe docs/PRD.md Core Features): dedizierte Tenant-Isolation-Tests. P2 (Medien-Anhänge, Push) bewusst aus PROJ-11 ausgeklammert, siehe dessen Non-Goals.
Empfohlene Baureihenfolge PROJ-13 bis PROJ-18: PROJ-13 → PROJ-14 → PROJ-15 → PROJ-16 → PROJ-17 → PROJ-18 (Reports brauchen die Melde-Funktion zuerst).
Nachträge 2026-09-11 (commit bc4d749): Passwort-Reset → PROJ-1, Mitglied hart löschen → PROJ-3.
Nachtrag 2026-09-11 (commit ffe2d45): API-Zugriff bei suspended/left sofort entziehen (nicht nur Matrix) → PROJ-3.
Nachtrag 2026-09-12: Admin-Direkt-Passwort-Setzen → PROJ-3.
Nachtrag 2026-09-17 (QA PROJ-16, OBS-16-7): requireSystemAdmin prüft nur users.isSystemAdmin, ignoriert suspended/left — suspendierter SYSTEM_ADMIN behält vollen /api/system-admin/**-Zugriff → PROJ-13.
Noch nicht gespect't, auf Nutzerwunsch für später vorgemerkt: eigenständiger E-Mail+Passwort-Login der Mitglieder direkt bei Synapse/Element (aktuell nur über TalkTime via Puppet-Login möglich, siehe PROJ-11).