Bernd SteckmeisterandClaude Opus 5.5 8074928505 fix(calls): Bildschirm teilen sichtbar, Verbindung trotz SDK-Wettlauf, Sprech-Ring; Trenner in Gruppen
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]>
2026-10-08 11:05:46 +02:00
2026-10-08 00:01:46 +02:00

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 Claude
  • ROADMAP.md / PROGRESS.md – aktueller Stand und nächste Schritte
  • docs/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
S
Description
Pyramid – Flutter Matrix Client
Readme
5 MiB
2026-04-28 21:54:27 +02:00
Languages
Dart 85%
JavaScript 5%
Kotlin 3%
CSS 2.9%
C++ 1.5%
Other 2.5%