# 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
```

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/NOTIFICATIONS.md` – Push-Architektur (native Anzeige vs. Hintergrund-Entschlüsselung)
- `docs/matrix-sdk/` – Hinweise zum verwendeten Matrix-SDK
