refactor(config): niente configurazione cablata — tutto parametrizzato (v0.3.0)
Prima di pubblicare: eliminati dai sorgenti tutti i valori "cablati". - settings: default neutri (URL, voce, engine vuoti = "decide il server"); nuove chiavi ttsVoices/ttsEngines (preset dei selettori) e vadMaxMs (durata massima registrazione, prima fissa a 60 s nel codice) - ApiClient: guard su baseUrl vuoto (checkAuth/login si comportano senza rete), voce/engine omessi nella richiesta TTS se vuoti, Content-Type audio coerente col formato reale del file (ogg/wav/mp3/m4a/opus) - SettingsPage: selettori voce/engine costruiti dai preset configurabili (Repeater dentro ContextMenu = pattern provato su tide) + campi per modificare i preset; LoginPage richiede indirizzo server non vuoto - VoiceRecorder: tetto di registrazione da configurazione - README: sezione "Configuration" completa; docs neutralizzate (niente URL/valori personali: repo public-friendly)
This commit is contained in:
@@ -9,18 +9,37 @@ chat with your Hermes agent from the phone — and use it with your **voice**.
|
||||
- Sessions list, new session, open any session
|
||||
- Chat with **live streaming** replies (SSE token deltas)
|
||||
- **Voice dictation**: tap Mic, speak, tap Stop → server-side Whisper
|
||||
transcription lands in the composer
|
||||
- **Read aloud**: server-side TTS (edge engine, Italian voices) played through
|
||||
transcription lands in the composer (optionally sent right away)
|
||||
- **Read aloud**: server-side TTS (voice/engine configurable) played through
|
||||
QMediaPlayer; optional auto-read of every completed reply
|
||||
- **Voice dialog (hands-free)**: continuous listen → transcribe → send →
|
||||
read-aloud loop, auto-stopping on speech pauses (tunable)
|
||||
- Cancel a running turn, resync from server state, cover page
|
||||
|
||||
## Requirements
|
||||
|
||||
- Sailfish OS 4.4+ (developed against Sailfish 5.1)
|
||||
- A running `hermes-webui` instance reachable over HTTPS (default:
|
||||
`https://hermes.hackatoniclife.com`)
|
||||
- A running `hermes-webui` instance reachable over HTTPS (the address is
|
||||
configured in the app — nothing is compiled in)
|
||||
- Sailjail permissions `Internet;Audio;Microphone` (declared in the .desktop)
|
||||
|
||||
## Configuration
|
||||
|
||||
No configuration is compiled into the binary: everything lives in the app's
|
||||
Settings (persisted in `~/.config/harbour/hermes.conf`, sandbox-persistent).
|
||||
Defaults are neutral — empty means "the server decides" — and the login screen
|
||||
requires a server address.
|
||||
|
||||
| Setting | Meaning |
|
||||
|---|---|
|
||||
| Server | Hermes Web UI address, e.g. `https://hermes.example.com` (required) |
|
||||
| Read-aloud voice / TTS engine | empty = server defaults |
|
||||
| Voice/engine presets | comma-separated lists used to fill the pickers |
|
||||
| Read replies aloud | auto-play every reply (off by default) |
|
||||
| Send right after dictation | auto-send when dictation lands (on by default) |
|
||||
| Auto-stop pause / Mic sensitivity | voice-dialog tuning (1.5 s / medium) |
|
||||
| Max recording time | voice-dialog safety cap (60 s) |
|
||||
|
||||
## Build
|
||||
|
||||
See [docs/BUILD.md](docs/BUILD.md) (Sailfish SDK, `sfdk build` / `sfdk deploy`)
|
||||
@@ -29,6 +48,6 @@ speaks (validated live against a real instance).
|
||||
|
||||
## Status
|
||||
|
||||
Version 0.2.1 — protocol and C++ core validated against a real `hermes-webui`
|
||||
(login, sessions, streaming chat, TTS, STT); on-device testing (audio paths,
|
||||
Sailjail prompts, keyboard handling) still pending.
|
||||
Version 0.3.0 — protocol and C++ core validated against a real `hermes-webui`
|
||||
(login, sessions, streaming chat, TTS, STT, voice dialog); on-device testing
|
||||
still ongoing.
|
||||
|
||||
Reference in New Issue
Block a user