Commit Graph
164 Commits
Author SHA1 Message Date
duffyduck cd8700101b release: bump version to 0.1.2.5 2026-05-12 00:40:25 +02:00
duffyduck 150ca9055f release: bump version to 0.1.2.4 2026-05-11 23:57:16 +02:00
duffyduck 5181f53052 release: bump version to 0.1.2.3 2026-05-11 23:48:00 +02:00
duffyduck 1f42b48d7f release: bump version to 0.1.2.2 2026-05-11 22:38:45 +02:00
duffyduck b57abc67ba release: bump version to 0.1.2.1 2026-05-11 19:28:32 +02:00
duffyduck 20458f792b release: bump version to 0.1.2.0 2026-05-11 19:27:33 +02:00
duffyduck d7612fb8f0 release: bump version to 0.1.1.9 2026-05-11 19:17:30 +02:00
duffyduck 56d797ccb1 release: bump version to 0.1.1.8 2026-05-11 19:04:25 +02:00
duffyduck 202158c839 release: bump version to 0.1.1.7 2026-05-11 18:59:57 +02:00
duffyduck c1f800a46d release: bump version to 0.1.1.6 2026-05-11 02:25:38 +02:00
duffyduck 4363372e25 release: bump version to 0.1.1.5 2026-05-11 01:59:58 +02:00
duffyduck f178322235 release: bump version to 0.1.1.4 2026-05-11 01:48:33 +02:00
duffyduck 6aaf4243fc release: bump version to 0.1.1.3 2026-05-10 18:47:10 +02:00
duffyduck f6499d9514 release: bump version to 0.1.1.2 2026-05-10 18:44:05 +02:00
duffyduckandClaude Opus 4.7 a2a9ed06df fix(app): react-native-svg auf 14.1 (kompatibel mit RN 0.73) — 15.x braucht neuere RN-Version
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 18:35:15 +02:00
duffyduckandClaude Opus 4.7 a9d8c611b8 fix(android): FileOpenerModule — kein '*/*' im Source (Kotlin-Lexer-Verwirrung)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 18:03:59 +02:00
duffyduckandClaude Opus 4.7 5ace4ff128 feat: ARIA kann Dateien an User zurueckgeben (PDFs, Bilder, Office-Docs, ...)
ARIA setzt im Antworttext einen Marker `[FILE: /shared/uploads/aria_xxx.ext]`.
Bridge extrahiert ihn (Marker wird aus dem TTS-Text entfernt) und sendet
ein neues file_from_aria-Event ueber RVS an App + Diagnostic.

Diagnostic:
- Eigene Bubble mit Datei-Icon + Klick-Handler
- PDF/Bild → neuer Browser-Tab via /shared/* HTTP-Route
- Andere → Download via download-Attribut

App:
- Neues FileOpenerModule (Kotlin) — Intent.ACTION_VIEW mit FileProvider,
  Android-Picker waehlt App nach MIME-Type
- file_paths.xml erweitert (cache + files + external)
- file_response liefert jetzt mimeType mit
- Klick auf ARIA-Anhang: lokal vorhanden → direkt oeffnen, sonst
  file_request mit autoOpen-Flag → bei Empfang persistAttachment + open

Stefan muss noch im aria-core/OpenClaw System-Prompt einen Hinweis
einbauen: "Wenn du dem User eine Datei erstellt hast (Pfad in
/shared/uploads/), haenge am Ende deiner Antwort einmalig
[FILE: /shared/uploads/aria_<name>.<ext>] an. Der Marker wird aus dem
sichtbaren Text entfernt und als Anhang in App und Diagnostic angezeigt."

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 17:56:47 +02:00
duffyduck 2c34d44fb9 release: bump version to 0.1.0.9 2026-05-10 17:25:48 +02:00
duffyduck 43f3a6b098 release: bump version to 0.1.0.8 2026-05-10 17:21:46 +02:00
duffyduck 5f4c8184de release: bump version to 0.1.0.7 2026-05-10 17:14:11 +02:00
duffyduck d3bf0654f0 release: bump version to 0.1.0.6 2026-05-10 17:07:53 +02:00
duffyduckandClaude Opus 4.7 8ae3d83082 fix(audio): kickReleaseMedia mit 250ms Pause zwischen request+abandon — Spotify kriegt den Focus-Wechsel sonst gar nicht mit
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 17:07:03 +02:00
duffyduck 3fa4439441 release: bump version to 0.1.0.5 2026-05-10 17:02:56 +02:00
duffyduck d425e1a759 release: bump version to 0.1.0.4 2026-05-10 16:59:15 +02:00
duffyduckandClaude Opus 4.7 dbd7ffd534 fix(audio): Spotify resumed nach Mute — RNSound's haengenden Focus loesen
Logs zeigten: react-native-sound requestet beim Sound.play() einen
EIGENEN AudioFocus mit USAGE_MEDIA, released den aber bei Sound.stop()/
release() NICHT (bekanntes RN-sound-Bug). Spotify sieht den haengenden
Media-Focus → bleibt pausiert.

Workaround: Native-Methode kickReleaseMedia() macht einen request+abandon-
Cycle mit USAGE_MEDIA, das System raeumt damit den Focus-Stack auf und
Spotify bekommt sauberen GAIN-Event. stopPlayback ruft das jetzt nach
Sound.release() wenn vorher ein RNSound aktiv war.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 16:57:52 +02:00
duffyduck abc8a666b6 release: bump version to 0.1.0.3 2026-05-10 16:43:37 +02:00
duffyduck 8c4fa7a49f release: bump version to 0.1.0.2 2026-05-10 16:38:00 +02:00
duffyduck 7b3a4e8655 release: bump version to 0.1.0.1 2026-05-10 16:30:14 +02:00
duffyduck ec5843c54f release: bump version to 0.1.0.0 2026-05-10 16:22:08 +02:00
duffyduck 437959bd69 release: bump version to 0.0.9.9 2026-05-10 15:56:53 +02:00
duffyduck f93b769048 release: bump version to 0.0.9.8 2026-05-10 15:46:36 +02:00
duffyduck 056e87241d release: bump version to 0.0.9.7 2026-05-10 15:37:45 +02:00
duffyduck f5b78b85bb release: bump version to 0.0.9.6 2026-05-10 15:29:03 +02:00
duffyduck 15beee0fa6 release: bump version to 0.0.9.5 2026-05-10 15:13:38 +02:00
duffyduck 902362ca24 release: bump version to 0.0.9.4 2026-05-10 14:54:45 +02:00
duffyduck 8c27090ef1 release: bump version to 0.0.9.3 2026-05-10 14:48:35 +02:00
duffyduckandClaude Opus 4.7 4afae31e56 fix(gps): Standort-Permission anfordern — sonst sendet App nie eine Position
Im Manifest fehlte ACCESS_COARSE/FINE_LOCATION komplett, und der
Settings-Toggle requestete keine Runtime-Permission. Geolocation
.getCurrentPosition() schlug darum lautlos fehl, App sendete nie ein
location-Feld → Diagnostic konnte nichts anzeigen, auch wenn der
Diagnostic-eigene "GPS einblenden"-Toggle aktiv war.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 14:47:35 +02:00
duffyduckandClaude Opus 4.7 faf9c0098b fix(audio): AudioTrack-Start-Threshold auf 100ms — kurze TTS startet jetzt
ENDLICH die Wurzel: AudioTrack hat seit API 31 setStartThresholdInFrames(),
default ist bufferSize/2. Bei 4s-Buffer = 2s Threshold — Track wartet bis
2s im Buffer sind, sonst startet play() nie wirklich (pos bleibt 0).

Bei 3 Worten (~1.4s) kommt's nie ueber die Schwelle. Threshold runter
auf 100ms (2400 Frames @ 24kHz) — Track laeuft sofort mit erstem Chunk an.

Erklaert auch warum genau ab 9 Worten (~3s+) der Pre-Roll-Pfad lief: dann
wurde die 2s-Schwelle ueberschritten.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 14:45:05 +02:00
duffyduck e944d35263 release: bump version to 0.0.9.2 2026-05-10 14:40:35 +02:00
duffyduckandClaude Opus 4.7 7187c2bf3f fix(audio): play() beim 1. Chunk — kurze Texte stallen nicht mehr
Logs zeigten: Pre-Roll-Pfad (play() WAEHREND chunks reinkommen) lief
immer sauber, Kurz-Text-Pfad (play() NACHDEM Buffer komplett gefuellt
ist) stallte immer — egal mit wie viel Daten oder welchem USAGE-Tag.

Fix: play() beim allerersten data-chunk callen, kein Pre-Roll-Threshold
mehr. AudioTrack ist sofort im PLAYING-State, weitere chunks/trailing
fliessen parallel ab. Padding-Block nach mainLoop entfaellt komplett.

USAGE_MEDIA wieder auf USAGE_ASSISTANT zurueck — war nicht die Ursache.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 14:38:02 +02:00
duffyduck e717c0f98e release: bump version to 0.0.9.1 2026-05-10 14:32:35 +02:00
duffyduckandClaude Opus 4.7 1f2aeb8d88 fix(audio): AudioTrack auf USAGE_MEDIA — USAGE_ASSISTANT stallt auf OnePlus A12
Letzter Test zeigte: 163456B im Buffer mit play()-nach-Padding stallt
(pos=0), aber 170048B im Pre-Roll-Pfad startet einwandfrei. Differenz
nur 4% Daten — kein Buffer-Threshold-Problem, sondern AudioTrack-Quirk
mit USAGE_ASSISTANT bei "voller Buffer, dann play()".

USAGE_MEDIA ist robuster, AudioFocus laeuft eh separat ueber das
AudioFocusModule.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 14:31:23 +02:00
duffyduck 15106ca011 release: bump version to 0.0.9.0 2026-05-10 14:26:41 +02:00
duffyduckandClaude Opus 4.7 55ce0372ac fix(audio): kurze TTS — Padding auf 3s erhoeht (OnePlus A12 Hard-Threshold)
Test mit 96000B (2s) Padding zeigte: AudioTrack stallt immer noch mit
pos=0/48000. Ab 8 Worten (~2.5s) geht's — der Hard-Threshold liegt also
zwischen 2s und 3s. Padding auf 3s, Buffer auf 4s.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 14:25:43 +02:00
duffyduck a2aff77377 release: bump version to 0.0.8.9 2026-05-10 14:20:43 +02:00
duffyduckandClaude Opus 4.7 db250ce8ba fix(audio): kurze TTS-Texte — play() erst NACH Buffer-Fuellung mit Padding
Auf OnePlus A12 startet AudioTrack nicht zuverlaessig wenn play() bei
duennem Buffer gerufen wird (pos blieb 0/34112 trotz 71KB Daten + Retry).

Neue Reihenfolge bei kurzem Stream:
1. Daten in Buffer schreiben (mainLoop)
2. Trailing-Silence (0.3s)
3. Padding bis min. 2s gepuffert
4. DANN erst play()

Buffer auf 3s erhoeht damit blockingem write() noch Headroom bleibt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 14:19:45 +02:00
duffyduck 77b48a70b2 release: bump version to 0.0.8.8 2026-05-10 14:12:59 +02:00
duffyduckandClaude Opus 4.7 278812c8d7 fix(audio): kurze TTS-Texte spielen wieder ab — AudioTrack-Buffer entkoppelt von Preroll
OnePlus A12 stallte bei kurzem Text mit pos=0/34112: 336KB Buffer fuer
3.5s Preroll, aber nur 68KB Daten drin → AudioTrack faehrt nicht an.

Fix: Buffer fest auf ~2s, plus play()-Retry bei pos=0 nach 500ms.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 14:11:53 +02:00
duffyduck e1ca01f507 release: bump version to 0.0.8.7 2026-05-10 14:00:29 +02:00
duffyduck 27a43ad0e8 release: bump version to 0.0.8.6 2026-05-10 12:50:35 +02:00