# ARIA — Changelog Alle Änderungen am Projekt. Format: [Keep a Changelog](https://keepachangelog.com/de/1.1.0/) --- ## [0.0.0.3] — 2026-03-09 ### Geändert **RVS — Architektur-Umbau** - RVS ist jetzt reiner Relay — kennt keine Tokens, keine Expiry, leitet nur durch - `TOKEN_EXPIRY` und `RVS_PUBLIC_HOST`/`RVS_PUBLIC_PORT` entfernt - Rooms leben solange Clients verbunden sind (statt fester Ablaufzeit) - Multi-Instanz: Mehrere ARIA-VMs können denselben RVS nutzen (z.B. Stefan + Papa) **Token-Erzeugung auf ARIA-VM statt RVS** - `generate-token.js` aus `rvs/` entfernt - Neues `generate-token.sh` im Hauptverzeichnis (läuft auf ARIA-VM) - Token wird automatisch in `.env` geschrieben - `./generate-token.sh show` zeigt bestehendes Token als QR nochmal an **Konfiguration vereinfacht** - `RVS_URL` ersetzt durch `RVS_HOST`, `RVS_PORT`, `RVS_TLS` (klare Einzelfelder) - Port einmal in `.env` ändern → wirkt auf RVS docker-compose, Bridge und QR-Code - `rvs/docker-compose.yml` nutzt `${RVS_PORT:-443}` statt hardcoded Port **Android App — QR-Code Scanner** - Echter QR-Code Scanner statt Platzhalter-Alert (`react-native-camera-kit`) - Vollbild-Kamera mit Overlay, Validierung des QR-Formats - Kamera-Berechtigung (Android Runtime Permission) - `AndroidManifest.xml` — `CAMERA` Permission hinzugefügt **Voice Bridge — RVS-Anbindung** - Bridge verbindet sich jetzt parallel zu aria-core (lokal) UND zum RVS (öffentlich) - Nachrichten von der App werden über RVS → Bridge → aria-core weitergeleitet - Antworten von aria-core werden über Bridge → RVS → App zurückgeschickt - Auto-Reconnect mit Exponential Backoff für beide WebSocket-Verbindungen - Neue Message-Handler: chat, mode, location, file, audio **Android Build-Fixes** - `kotlin_version` (snake_case) in `build.gradle` hinzugefügt — `react-native-camera-kit` braucht beide Varianten - `build.sh` schreibt `org.gradle.java.home` dynamisch in `gradle.properties` — verhindert dass Gradle kaputte JVM-Pfade findet (`/usr/lib/jvm/openjdk-17` ohne bin/java) - `minSdkVersion` 21 → 23 — `react-native-camera-kit` braucht mindestens API 23 **Android App — Credentials Persistenz** - Verbindungsdaten (Host, Port, Token) werden nach QR-Scan in AsyncStorage gespeichert - Beim App-Start automatisch geladen und verbunden — einmal scannen, nie wieder - Neue Dependency: `@react-native-async-storage/async-storage` **Docker & Infrastruktur** - OpenClaw Image fix: `openclaw/openclaw:latest` → `ghcr.io/openclaw/openclaw:latest` - `libportaudio2` in Bridge Dockerfile hinzugefügt — `sounddevice` braucht PortAudio - `aria-data/config/aria.env.example` hinzugefügt — Voice Bridge Konfigurationsvorlage **Wake-Word Fix (openwakeword)** - `WakeWordDetector` umgebaut — sucht Custom-Modell `/voices/wake_aria.onnx`, Fallback auf eingebautes `hey_jarvis` - Alter Code crashte: `wakeword_models=["aria"]` erwartet Dateipfad, kein Keyword **Neues Script: `get-voices.sh`** - Lädt Piper Stimmen (Ramona + Thorsten) von HuggingFace herunter - Neuer Installationsschritt in README **ARIA Persönlichkeit** - `AGENT.md` überarbeitet — ARIA ist jetzt Partnerin auf Augenhöhe (Claude-Charakter) - Direkt, ehrlich, humorvoll, lösungsorientiert, kein Theater --- ## [0.0.0.2] — 2026-03-08 ### Geändert **Build-Fixes** - `CI=true` in `build.sh` — verhindert EMFILE durch Metro File-Watcher im Release-Build - `setup.sh` erstellt Metro-Config-Dateien automatisch (metro.config.js, babel.config.js, .watchmanconfig) **Release-Script** - `release.sh` komplett umgebaut — Kennwort wird interaktiv abgefragt statt Token in `.env` - Gitea-Upload fix: `-F` multipart statt `--data-binary` - Login-Test vor Release, CHANGELOG.md-Integration für Release Notes --- ## [0.0.0.1] — 2026-03-08 ### Hinzugefügt **Infrastruktur** - `docker-compose.yml` — ARIA-VM mit Proxy, OpenClaw, Voice Bridge - `.env.example` — Konfigurationsvorlage (ohne Secrets) - `release.sh` — Automatisiertes Release (Build, Tag, Gitea Upload mit Kennwort-Abfrage) **RVS (Rendezvous-Server)** - WebSocket Relay Server (`rvs/server.js`) — Token-Rooms, Heartbeat, Message Types - Docker Setup (`rvs/Dockerfile`, `rvs/docker-compose.yml`) **Token & Pairing** - `generate-token.sh` — Token-Generator mit QR-Code (läuft auf ARIA-VM, schreibt Token in `.env`) **Voice Bridge** - Python Voice Bridge (`bridge/aria_bridge.py`) — Whisper STT, Piper TTS, Wake-Word - 5 Betriebsmodi (`bridge/modes.py`) — Normal, DND, Whisper, Hangar, Gaming - Docker Setup (`bridge/Dockerfile`, `bridge/requirements.txt`) **Android App (ARIA Cockpit)** - Chat-Screen mit Texteingabe, Voice-Button, Datei/Kamera-Upload - Settings-Screen mit Verbindungsstatus, Token-Eingabe, Modus-Auswahl, GPS-Toggle, Log-Viewer - WebSocket-Service mit Auto-Reconnect und Exponential Backoff - Audio-Service (Mikrofon-Aufnahme, TTS-Wiedergabe) - Push-to-Talk Button mit Puls-Animation - Modus-Selektor (5 Modi) - Build-Tooling: `setup.sh` (7-Schritt Dev-Setup), `build.sh` (Release/Debug APK) - Metro-Config, Babel-Config, Watchman-Config **Konfiguration & Daten** - `aria-data/config/AGENT.md` — ARIAs Persönlichkeit und Sicherheitsregeln - `aria-data/config/USER.md` — Stefans Präferenzen - `aria-data/config/TOOLING.md` — VM-Tooling Liste - `aria-data/skills/README.md` — Skill-Bauanleitung ### Bekannte Probleme - Android Release-Build: `EMFILE: too many open files` — Fix: `CI=true` in `build.sh` - JDK 21 inkompatibel mit AGP 8.1 — Fix: Automatischer Fallback auf JDK 17 - `react-native-screens` > 3.27.0 inkompatibel mit RN 0.73.4 — Fix: Version gepinnt