# Matrix / Element Feature Checklist für Pyramid *Stand: April 2026 — Pyramid v0.1.x (Early Development)* --- ## Nachrichten (Messaging) ### Kern-Funktionen - [x] Textnachrichten senden - [x] Nachrichten empfangen & anzeigen - [x] Zeitstempel (formatiert, relativ) - [x] Nachrichtengruppierung (gleicher Sender, <5 Min.) - [x] Datumstrennlinien zwischen Gruppen - [x] Verschlüsselte Nachrichten anzeigen (Entschlüsselungsstatus) - [x] Nachrichtenverlauf paginieren (ältere Nachrichten beim Scrollen laden) - [x] Ungelesene-Nachrichten-Tracking ### Nachrichtenaktionen - [x] Nachrichtentext kopieren - [x] Eigene Nachrichten löschen (redact) - [x] Nachrichten anpinnen / Pinboard anzeigen - [~] Auf Nachrichten antworten (in-reply-to vorhanden, kein visuelles Zitatfeld) - [~] Nachrichten bearbeiten (m.edit im SDK erkannt, kein vollständiges UI) - [ ] Nachrichten weiterleiten - [ ] Zitat-Styling (visuelle Blockquote-Anzeige) ### Textformatierung - [ ] Fett (**text**) - [ ] Kursiv (*text*) - [ ] Durchgestrichen (~~text~~) - [ ] Inline-Code (`code`) - [ ] Code-Block (```code```) - [ ] Aufzählungslisten - [ ] Klickbare Links - [ ] @Erwähnungen (User) - [ ] #Kanal-Erwähnungen - [ ] Spoiler-Tags (||text||) ### Medien & Anhänge - [x] Dateianhänge senden (mit MIME-Erkennung) - [x] Bilder senden & inline anzeigen - [x] Videos senden & inline abspielen - [x] Audio senden & inline abspielen - [x] Sticker anzeigen (m.sticker) - [x] Dateianhang mit Untertitel - [x] Dateigröße berechnen & anzeigen - [x] Verschlüsselte Medien entschlüsseln & herunterladen - [x] Thumbnail-Generierung für Bilder/Videos - [~] Sprachnachrichten (Struktur vorhanden, Wiedergabe-UI fehlt) - [ ] Animierte GIFs - [ ] Link-Vorschau (URL-Unfurling) - [ ] Dokument-Vorschau (PDF, Office) ### Reaktionen - [x] Emoji-Reaktionen senden - [x] Reaktionszähler anzeigen - [x] 6 häufigste Reaktionen als Schnellauswahl - [x] Vollständiger Emoji-Picker mit Suche - [x] Eigene Reaktion entfernen - [x] Anzeigen wer reagiert hat - [x] Mehrere Reaktionen pro Nachricht - [x] Kategoriebasierte Emoji-Organisation ### Threads - [ ] Thread-Antworten (m.in_reply_to vorhanden, kein Thread-View) - [ ] Thread aufklappen / eigene Ansicht - [ ] Thread-Benachrichtigungen - [ ] Thread als gelöst markieren --- ## Raumverwaltung ### Grundfunktionen - [x] Raumliste anzeigen (sortiert nach letzter Aktivität) - [x] Räume beitreten - [x] Räume verlassen - [x] Raumname & Avatar anzeigen - [x] Verschlüsselungsstatus (Schloss-Icon) - [x] Einladungen annehmen / ablehnen - [ ] Neuen Raum erstellen - [ ] Raumname bearbeiten - [ ] Raumthema/Beschreibung bearbeiten - [ ] Raum-Avatar ändern - [ ] Raumvisibilität (öffentlich / privat) - [ ] Zugriffsregeln (invite/knock/public) - [ ] Verlaufsvisibilität konfigurieren - [ ] Raum-Aliases verwalten ### Direktnachrichten (DMs) - [x] 1:1 DM-Räume anzeigen & öffnen - [x] Presence-Status des Gegenübers anzeigen - [x] Echtzeit-Presence-Updates - [x] Sprachanruf aus DM starten - [x] Videoanruf aus DM starten - [ ] DM starten (neuen Chat beginnen, nur über Suchfeld) ### Mitglieder & Rollen - [x] Mitgliederliste anzeigen - [x] Mitgliederanzahl anzeigen - [x] Avatar & Anzeigename der Mitglieder - [x] Nutzer in Raum einladen (Raum-Kontextmenü) - [ ] Nutzer aus Raum entfernen (Kick) - [ ] Nutzer sperren (Ban) - [ ] Power Levels bearbeiten - [ ] Nutzer zum Moderator / Admin befördern - [ ] Bans aufheben ### Raumeinstellungen - [x] Raumeinstellungen-Dialog (Name, Thema, Moderationsregeln) - [ ] Raumverschlüsselung aktivieren/deaktivieren - [ ] Erweiterte Raumeinstellungen (Fluffychat-Level) - [ ] Widget-/App-Integration in Räume --- ## Spaces & Gemeinschaften ### Spaces - [x] Spaces in der Seitenleiste anzeigen - [x] Zwischen Spaces navigieren - [x] Space-Avatar anzeigen - [x] Space-Banner hochladen & anzeigen (Discord-Style) - [x] Räume nach Space filtern - [x] Virtuelle "Rooms"- und "DMs"-Spaces - [x] Unterkategorien (Sub-Spaces) als Kategorien in der Kanalleiste - [x] Drag-and-drop Kanalreihenfolge für Admins - [x] Space-Verwaltungsdialog (Name, Avatar, Banner, Einladungen, Mitglieder, Power Levels) - [ ] Neuen Space erstellen - [ ] Räume zum Space hinzufügen / entfernen - [ ] Space-Regeln / Beschreibung - [ ] Space-Entdeckung (öffentliche Spaces durchsuchen) ### Kanalorganisation - [x] Kanäle nach letzter Aktivität sortieren - [x] Ungelesene-Badge auf Kanälen - [x] Sprachkanal-Teilnehmerliste (Discord-Style, mit Echtzeit-Updates) - [x] Kollabierbare Kategorien - [ ] Favoriten / angeheftete Räume - [ ] Räume stummschalten - [ ] Räume ausblenden / archivieren - [ ] Kanalreihenfolge für reguläre Nutzer --- ## Sprach- & Videoanrufe ### Sprachanrufe (LiveKit) - [x] Sprachkanal betreten / verlassen (Toggle) - [x] Teilnehmerliste im Sprachkanal - [x] Mikrofon stummschalten - [x] Audio-Ausgabe deaktivieren (Deafen) - [x] Anruf-UI im Profil-Panel (aktiver Anruf) - [x] Anruf-Ansicht öffnen (Vollansicht) - [x] Mini-Call-Widget bei VOIP-Anrufen - [ ] Klingelton bei eingehenden Anrufen - [ ] Anruf annehmen / ablehnen (UI) - [ ] Anrufdauer-Timer - [ ] Anrufverlauf ### Videoanrufe - [x] Videoanruf starten (aus DM) - [x] Kamera-Toggle - [x] Videoteilnehmer-Anzeige - [ ] Bildschirmfreigabe (Toggle-UI vorhanden, Implementierung unklar) - [ ] Picture-in-Picture-Modus - [ ] Virtueller Hintergrund ### Gruppenanrufe - [x] Mehrere Teilnehmer im Sprachkanal (LiveKit) - [ ] Gruppen-Videogitter - [ ] Spotlight-/Galerie-Ansicht --- ## Benachrichtigungen & Presence ### Push-Benachrichtigungen - [ ] Desktop-Benachrichtigungen (Windows/macOS/Linux) - [ ] Mobile Push-Benachrichtigungen (Android/iOS) - [ ] Benachrichtigungseinstellungen pro Raum - [ ] Nicht-Stören-Modus - [ ] Benachrichtigungssound konfigurieren ### Presence & Status - [x] Nutzer-Presence abrufen (online/offline/abwesend) - [x] Presence-Indikator anzeigen - [x] Letzte-Aktivität-Zeitstempel - [x] Echtzeit-Presence-Updates - [ ] Eigenen Status setzen (online/abwesend/unsichtbar) - [ ] Benutzerdefinierte Statusmeldung - [ ] Aktivitätsbasierte Status-Änderung ### Tipp-Indikatoren - [ ] "X tippt gerade"-Anzeige empfangen - [ ] Eigene Tipp-Benachrichtigung senden - [ ] Timeout nach Tipp-Ende --- ## Nutzereinstellungen & Profil ### Profilverwaltung - [x] Eigene User-ID anzeigen - [x] Eigenen Avatar anzeigen (Initialen-Fallback) - [x] Anzeigenamen anzeigen - [ ] Anzeigenamen bearbeiten - [ ] Eigenen Avatar hochladen / entfernen - [ ] Status-Nachricht setzen ### Kontosicherheit - [ ] Passwort ändern - [ ] E-Mail-Adresse verwalten - [ ] Sitzungsverwaltung (alle Sitzungen anzeigen) - [ ] Andere Sitzungen abmelden - [ ] Konto deaktivieren / löschen - [ ] Zwei-Faktor-Authentifizierung (2FA) ### App-Einstellungen - [x] Hell / Dunkel-Theme - [x] Akzentfarbe (6 Voreinstellungen) - [x] Eckradius anpassen - [x] UI-Dichte / Kompaktheit - [x] Animationssteuerung - [ ] Schriftgröße anpassen - [ ] Sprachauswahl (i18n) - [ ] Kompaktansicht (kein Avatar in Nachrichten) --- ## Datenschutz & Sicherheit ### Ende-zu-Ende-Verschlüsselung (E2EE) - [x] E2EE-Unterstützung (Olm/Megolm via vodozemac) - [x] E2EE-Schlüssel beim ersten Login einrichten (Bootstrap) - [x] Verschlüsselte Nachrichten-Indikatoren - [x] Entschlüsselungsstatus anzeigen - [x] SSSS (Symmetric Secret Storage) - [x] Recovery-Key erzeugen & anzeigen - [x] Recovery-Key aus bestehender Einrichtung importieren - [x] Schlüssel-Caching (lokal speichern) - [x] Session-Keys von anderen Geräten anfordern - [ ] Schlüssel-Backup (Server-seitig) - [ ] Schlüssel-Backup verifizieren ### Geräte-Verifizierung - [x] Cross-Signing (Master/Self-Signing/User-Signing Keys) - [x] Gerät per Emoji verifizieren - [x] Gerät per Zahlencodes verifizieren - [x] Geräte als vertrauenswürdig markieren - [ ] Gerätename / Modell anzeigen - [ ] Sitzungsverwaltung (alle Geräte dieses Accounts) - [ ] Fremde Geräte abmelden ### Vertrauen & Sicherheit - [ ] Geräte-Vertrauensstatus-Indikator in Nachrichten - [ ] Nutzer blockieren / entsperren - [ ] Blockierte Nutzer-Liste - [ ] Verifizierter-Nutzer-Badge --- ## Suche ### Nachrichtensuche - [x] Suchdialog öffnen (UI vorhanden) - [ ] Volltextsuche in Nachrichteninhalten - [ ] Filter nach Absender - [ ] Filter nach Datum - [ ] Filter nach Raum - [ ] Filter nach Medientyp - [ ] Suchergebnisse hervorheben - [ ] Suchverlauf ### Nutzer- / Raumsuche - [ ] Nutzer nach Anzeigenamen suchen - [ ] Nutzer nach User-ID suchen - [ ] Öffentliche Räume entdecken (Directory) - [ ] Eigene Räume filtern - [ ] Räume nach Name / Thema suchen --- ## Auto-Update - [x] GitHub-Releases als Update-Quelle - [x] Versions-Vergleich (SemVer) - [x] Rate-Limiting (max. alle 4 Stunden prüfen) - [x] Update-Banner im App-Header (Windows) - [x] "Diese Version überspringen"-Option - [x] Manueller Update-Check in den Einstellungen - [ ] Automatischer Download & Installation (Squirrel/NSIS) - [ ] Delta-Updates (nur geänderte Dateien) - [ ] Update-Kanal wählen (Stable/Beta/Nightly) --- ## Plattform-spezifisch ### Desktop (Windows / macOS / Linux) - [x] Native Desktop-App (Flutter Desktop) - [x] Tastenkürzel (Enter = Senden, Shift+Enter = Zeile) - [x] Drag-and-Drop für Dateianhänge - [ ] System-Tray-Integration - [ ] Desktop-Benachrichtigungen - [ ] Minimieren in System-Tray - [ ] Fenster-State speichern (Größe, Position) - [ ] MSIX / Installer-Paketierung ### Mobile (Android / iOS) - [x] Mobile App (Flutter) - [x] Drawer-Navigation (Hamburger-Menü) - [ ] Touch-optimiertes UI (derzeit Desktop-first) - [ ] Mobile Push-Benachrichtigungen - [ ] Zurück-Geste Navigation - [ ] Bottom-Sheet-Modals - [ ] Share-Sheet-Integration - [ ] Haptisches Feedback --- ## Statistik | Bereich | Implementiert | Teilweise | Fehlend | |---|---|---|---| | Messaging | 14 | 2 | 14 | | Raumverwaltung | 8 | 0 | 14 | | Spaces | 10 | 0 | 6 | | Anrufe | 8 | 1 | 10 | | Benachrichtigungen | 4 | 0 | 8 | | Einstellungen/Profil | 5 | 0 | 11 | | Sicherheit/E2EE | 9 | 0 | 7 | | Suche | 1 | 0 | 10 | | Auto-Update | 6 | 0 | 3 | | Plattform | 5 | 0 | 10 | | **Gesamt** | **~70** | **~3** | **~93** | **Implementierungsgrad: ~42 %** (inkl. Teilimplementierungen) --- ## Empfohlene Feature-Prioritäten 1. **Textformatierung** — häufig genutzt, von Nutzern erwartet 2. **Push-Benachrichtigungen** — Desktop-Benachrichtigungen für Windows 3. **Tipp-Indikatoren** — verbessert Gesprächsgefühl deutlich 4. **Nachrichtenbearbeitung** — SDK-Grundlage vorhanden, nur UI fehlt 5. **Profilbearbeitung** — Avatar & Anzeigename ändern 6. **Raum erstellen** — Basis-Workflow, derzeit nicht möglich 7. **Sprachnachricht abspielen** — Struktur vorhanden 8. **Suche** — Dialog vorhanden, Backend-Abfrage fehlt 9. **Nutzer blockieren** — Sicherheits-Grundfunktion 10. **System-Tray** — Desktop-Erlebnis verbessern