BUG-4 (High, failed acceptance criterion) — per-tile unread badges: new use-team-unread-counts.ts runs one app-level Matrix client (separate from useTeamChat's detail-view client) that syncs every room GET /api/teams now resolves (matrixRoomId added via leftJoin on chat_rooms) and reports unread counts per team. TeamsPage tiles show the badge without the chat tab being open. Side fix: createMatrixClient() now dynamic-imports matrix-js-sdk instead of a static import, so the new always-mounted hook doesn't drag the SDK (and its 7.8MB crypto WASM) back into TeamsPage's main bundle — verified via build output (TeamDetail chunk 853KB -> 27KB, SDK now in its own on-demand chunk). BUG-3 (High) — kick-while-open: use-team-chat.ts now listens for RoomEvent.MyMembership; leaving/removal flips status to a new "removed" state instead of leaving history and the composer usable. BUG-2 (High, partially mitigated) — minted tokens are unscoped Matrix credentials by nature (Matrix has no token scoping). Disabled user_directory search on Synapse (config + live matrix.perlbach24.de instance), verified empty results instead of cross-club user listing. Direct addressing by known Matrix ID is still possible — full tenant isolation needs an explicit decision (one Synapse per club vs. an isolation module on a shared homeserver), documented as an open item in the spec rather than silently declared fixed. BUG-1 (Critical, not fixed) — backend/.env.example is outside my permission sandbox (can't read or write .env* files). Documented the required block in the spec for manual addition; talkhub's real .env already has the values. Verified end-to-end on talkhub/matrix test LXCs. Not addressed in this pass (lower priority per QA): BUG-5/6/7/8/9/10. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0143yYvjesjHndBACoweyK67
2.6 KiB
2.6 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) | In Review | 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 |
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.
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.