807492850538aa984cfee1e17e2bce2a8c3512bc
Bernds Test 2026-10-08 (Streamen ging weder am PC noch am Handy, Ton kam nicht an, Trenner blieb manchmal stehen) – mit neuem Live-Anruftest (zwei Testkonten im selben Prozess) nachgestellt und behoben: - Bildschirm teilen: Die Stromzuordnung rief ein SDK-getFeeds() auf, das es nicht gibt; der Fehler wurde geschluckt → Übertragungen wurden nie angezeigt und beim Sender nie als aktiv erkannt. Jetzt typisierte Zugriffe (remote/localScreenSharingStream, 'stopped' beachtet). - Verbindungsaufbau: matrix-SDK verwirft Kandidaten, die vor der fertig verarbeiteten Einladung bzw. während des Annehmens eintreffen; unter Windows wirft getRemoteDescription zudem statt null zu liefern. Pyramid puffert alle Kandidaten der Gegenseite und reicht sie direkt an die Verbindung nach. Test: vorher nie verbunden, jetzt ~0,5 s (angerufen) bzw. ~2,7 s (anrufend), Ton beide Richtungen, Teilen beide Richtungen. - SDK-Aufrufe in eigener Zone: harmlose Plugin-Fehler (Lautsprecher unter Windows) werden protokolliert statt durchzuschlagen; Ergebnisse/Fehler per Completer über die Zonengrenze (sonst ewiges Warten). - Sprech-Ring auch bei 1:1-Anrufen (Pegel aus WebRTC-Statistiken) – zeigt, ob das eigene Mikrofon Ton liefert und ob die Gegenseite ankommt; großes Bild springt nicht mehr bei jedem Sprechwechsel. - „Neue Nachrichten“ mitten in einer Gruppe (mehrere Nachrichten desselben Absenders) blieb bis zum erneuten Öffnen stehen: Inline-Trenner jetzt nur mit Ungelesenem, blendet aus und trägt den Sprungschlüssel. Live-Test. - „Anruf läuft“-Leiste nicht schon beim Klingeln. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Pyramid
Pyramid ist ein eigenständiger Matrix-Client (Flutter), kein Fork von FluffyChat
oder Element. Er läuft gegen den selbst gehosteten Homeserver steggi-matrix.work
(Continuwuity) und ist bei echten Nutzern im Einsatz – Stabilität und
Datensicherheit haben Vorrang vor Feature-Tempo.
Funktionsumfang
- Matrix-Chat mit Timeline, Reply, Medien, Link-Vorschauen, lokaler Volltextsuche über entschlüsselte Nachrichten (server-seitige Suche funktioniert bei E2EE nicht)
- Ende-zu-Ende-Verschlüsselung (vodozemac/Olm/Megolm) inkl. Key-Backup
- Sprach-/Video-Calls und Bildschirmübertragung über LiveKit
(
wss://livekit.steggi-matrix.work) - Push-Benachrichtigungen mit clientseitiger Entschlüsselung auch bei gekillter
App (FCM + Sygnal, siehe
docs/NOTIFICATIONS.md) - Größenverstellbares Panel-Layout (Rooms/Chat/Members) statt starrer Tabs
Build
Voraussetzung: Flutter (stable channel, siehe environment.sdk in pubspec.yaml
für die unterstützte Dart-Version).
flutter pub get
flutter run -d windows # schnellster Praxistest während der Entwicklung
flutter analyze # muss sauber bleiben
pwsh scripts/test.ps1 # Analyse + Tests (-Live, -Bench, -All: siehe docs/TESTS_UND_BENCHMARKS.md)
Unterstützte Zielplattformen: Android, Windows, Linux, iOS, macOS (Ordner
android/, windows/, linux/, ios/, macos/ sind Standard-Flutter-Projekte).
Release-Build (signiert, Windows + Android): scripts/release.ps1.
Projektstruktur
lib/
core/ Matrix-Client, Auth, VoIP-Manager, Storage, App-State
features/
auth/ Login, Server-Auswahl
rooms/ Raumliste, Spaces
chat/ Timeline, Composer, Medien, Dokumentenvorschau
call/ LiveKit-Calls, Voice-Channel, Mini-Call-Widget
members/ Mitgliederliste/-panel
settings/ Einstellungen
layout/ Panel-Layout (resizable)
widgets/ geteilte UI-Bausteine
utils/ Hilfsfunktionen
Weiterführende Dokumentation
CLAUDE.md– Arbeitsregeln und Infrastruktur für die Zusammenarbeit mit ClaudeROADMAP.md/PROGRESS.md– aktueller Stand und nächste Schrittedocs/TESTS_UND_BENCHMARKS.md– Tests, Live-Tests, Benchmarks (ein Befehl)docs/NOTIFICATIONS.md– Push-Architektur (native Anzeige vs. Hintergrund-Entschlüsselung)docs/matrix-sdk/– Hinweise zum verwendeten Matrix-SDK
Releases
16
Pyramid v0.1.35
Latest
Languages
Dart
85%
JavaScript
5%
Kotlin
3%
CSS
2.9%
C++
1.5%
Other
2.5%