23add7a107
- Bug: NO_REPLY wird als "NO" angezeigt - Audio-Ducking + Mute waehrend Aufnahme - Spracheingabe-Timeout erhoehen - TTS-Text-Aufbereitung (Code raus, Einheiten ausschreiben) - Audio-Cache in Messages (kein Regenerieren beim Play-Button) - Piper evtl. entfernen - .env → Diagnostic UI migrieren - QR-Code Onboarding - XTTS Web-Oberflaeche / zentral via Diagnostic - Root-Cause OpenClaw Session-Reset pruefen Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
76 lines
5.4 KiB
Markdown
76 lines
5.4 KiB
Markdown
# ARIA Issues & Features
|
|
|
|
## Erledigt
|
|
|
|
- [x] Bildupload funktioniert (Shared Volume /shared/uploads/)
|
|
- [x] Sprachnachrichten werden als Text angezeigt (STT → Chat-Bubble)
|
|
- [x] Cache leeren + Auto-Download von Anhaengen
|
|
- [x] ARIA liest Nachrichten vor (TTS via Piper)
|
|
- [x] Autoscroll zur letzten Nachricht (inverted FlatList)
|
|
- [x] Bilder im Chat groesser + Vollbild-Vorschau
|
|
- [x] Ohr-Button → Gespraechsmodus (Auto-Aufnahme nach ARIA-Antwort)
|
|
- [x] Play-Button in ARIA-Nachrichten fuer Sprachwiedergabe
|
|
- [x] Chat-Suche in der App (Lupe in Statusleiste)
|
|
- [x] Watchdog mit Container-Restart (2min Warnung → 5min doctor --fix → 8min Restart)
|
|
- [x] Abbrechen-Button im Diagnostic Chat
|
|
- [x] Nachrichten Backup on-the-fly (/shared/config/chat_backup.jsonl)
|
|
- [x] Grosse Nachrichten satzweise aufteilen fuer TTS
|
|
- [x] RVS Nachrichten vom Smartphone gehen durch
|
|
- [x] Stimmen-Einstellungen (Ramona/Thorsten, Speed pro Stimme)
|
|
- [x] Highlight-Trigger konfigurierbar in Diagnostic
|
|
- [x] XTTS v2 Integration (Gaming-PC, GPU, Voice Cloning)
|
|
- [x] XTTS Voice Cloning (Audio-Samples hochladen, eigene Stimme)
|
|
- [x] TTS Engine waehlbar (Piper/XTTS) in Diagnostic + App
|
|
- [x] Auto-Update System (APK via RVS WebSocket)
|
|
- [x] Auto-Update: APK-Installation via FileProvider
|
|
- [x] Auto-Update: "Auf Updates pruefen" Button in App-Einstellungen
|
|
- [x] Audio-Queue (sequentielle Wiedergabe, kein Ueberlappen)
|
|
- [x] Textnachrichten werden von ARIA beantwortet (Bridge chat handler fix)
|
|
- [x] Mehrere Anhaenge + Text vor dem Senden (Pending-Vorschau)
|
|
- [x] Paste-Support fuer Bilder in Diagnostic Chat
|
|
- [x] Markdown-Bereinigung fuer TTS (fett, kursiv, code, links, etc.)
|
|
- [x] SSH Volume read-write fuer Proxy (kein -F Workaround mehr)
|
|
- [x] Diagnostic: Sessions als Markdown exportieren (Download-Button)
|
|
- [x] Speech Gate: Aufnahme wird verworfen wenn keine Sprache erkannt (verhindert dass Umgebungsgeraeusche an Whisper gehen)
|
|
- [x] Session-Persistenz: Gewaehlte Session bleibt ueber Container-Restarts erhalten (sessionFromFile-Flag, atomic write)
|
|
- [x] Diagnostic: "ARIA denkt..." bleibt nicht mehr stehen (pipelineEnd broadcastet immer idle, auch bei Timeout/Fehler/Disconnect)
|
|
- [x] App: "ARIA denkt..." Indicator + Abbrechen-Button (Bridge spiegelt agent_activity via RVS)
|
|
- [x] Whisper STT: Model-Auswahl in Diagnostic (tiny/base/small/medium/large-v3), Hot-Reload in Bridge, Default auf medium
|
|
- [x] App: Audio-Aufnahme explizit 16kHz mono (spart Resample, optimal fuer Whisper)
|
|
- [x] Gespraechsmodus: Speech-Gate strenger (-28dB / 500ms) — keine Umgebungsgeraeusche mehr
|
|
- [x] Gespraechsmodus: Max-Dauer 30s pro Aufnahme, Cache-Cleanup alter Files, Messages-Array gekappt (500)
|
|
- [x] Diagnostic: Archivierte Session-Versionen (.reset.*) werden angezeigt + exportierbar — OpenClaw resettet Sessions bei erster Nutzung nach Container-Restart, Inhalt ist aber in .reset.<timestamp> Dateien gesichert
|
|
- [x] tools/export-jsonl-to-md.js: CLI-Konverter fuer beliebige Session-JSONL zu Markdown
|
|
|
|
## Offen
|
|
|
|
### Bugs (Prioritaet)
|
|
- [ ] App: Audioausgabe hoert ab und zu einfach auf (mitten im Satz oder zwischen Chunks)
|
|
- [ ] NO_REPLY wird als "NO" im Chat angezeigt — sollte still verworfen werden (Token nicht gesaeubert)
|
|
|
|
### App Features
|
|
- [ ] Wake Word on-device (Porcupine "ARIA" Keyword, Phase 2 — passives Lauschen)
|
|
- [ ] Chat-History zuverlaessiger laden (AsyncStorage Race Condition)
|
|
- [ ] Background Audio Service (TTS auch bei minimierter App)
|
|
- [ ] Audio-Ducking: andere App-Audio-Ausgaben leiser stellen waehrend ARIA spricht (AudioFocus API)
|
|
- [ ] Audio-Muten waehrend Aufnahme/Ohr-Modus: andere Audio stumm (wie WhatsApp-Sprachaufnahme)
|
|
- [ ] Spracheingabe-Timeout erhoehen fuer laengere Texte
|
|
- [ ] Generierte TTS-Audiodaten in der Chat-Nachricht einbetten (oder lokal cachen), Play-Button spielt aus Cache statt Regenerierung via XTTS. Base64 im Tag <soundfile></soundfile> (invisible) oder lokaler Datei-Cache mit Referenz in der Message.
|
|
- [ ] QR-Code Onboarding: Diagnostic generiert QR mit RVS-Credentials, App scannt — keine manuelle Eingabe mehr
|
|
|
|
### TTS / Audio
|
|
- [ ] XTTS Audio-Streaming (PCM-Stream statt WAV-Dateien, eliminiert Stottern komplett)
|
|
- [ ] Audio-Normalisierung (Lautstaerke zwischen Chunks angleichen)
|
|
- [ ] Piper Voices Download ueber Diagnostic (neue Sprachen/Stimmen)
|
|
- [ ] TTS-Text-Aufbereitung: Code-Bloecke rausfiltern, Einheiten ausschreiben ("22GB" → "zweiundzwanzig Gigabyte"). Zwei Varianten denkbar: (a) server-side Cleanup in Bridge, (b) ARIA schreibt `<voice></voice>` Block der in UI hidden bleibt aber fuer TTS genutzt wird.
|
|
- [ ] Piper evtl. komplett entfernen (klingt schlecht vs. XTTS) — oder nur als Fallback wenn XTTS offline ist
|
|
|
|
### Architektur
|
|
- [ ] Bilder: Claude Vision direkt nutzen (aktuell nur Dateipfad an ARIA)
|
|
- [ ] Auto-Compacting und Memory/Brain Verwaltung (SQLite?)
|
|
- [ ] Diagnostic: System-Info Tab (Container-Status, Disk, RAM, CPU)
|
|
- [ ] RVS Zombie-Connections endgueltig loesen
|
|
- [ ] Alle .env-Variablen ueber Diagnostic konfigurierbar machen (kein File-Sync mehr noetig, da alle ARIA-Container auf der gleichen VM laufen). Fallback .env bleibt fuer initialen Bootstrap.
|
|
- [ ] XTTS-Container: kleine Web-Oberflaeche fuer Credentials/Server-Config, oder zentral aus Diagnostic per RVS push
|
|
- [ ] Root-Cause OpenClaw Session-Reset: Herausfinden warum Sessions beim ersten chat.send nach Container-Restart verworfen werden (abortedLastRun / systemSent Theorie pruefen, ggf. Flag preemptiv patchen)
|