126 lines
5.5 KiB
Markdown
126 lines
5.5 KiB
Markdown
# 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
|