a5932f00252e83d15cc1b7975c367c2c452b77ca
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)
harbour-hermes
Native Sailfish OS client for the Hermes Web UI (hermes-webui):
chat with your Hermes agent from the phone — and use it with your voice.
Features
- Sign in to your Hermes Web UI (session cookie persisted; password never stored)
- 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 (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-webuiinstance 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 (Sailfish SDK, sfdk build / sfdk deploy)
and docs/PROTOCOL.md for the HTTP/SSE protocol the app
speaks (validated live against a real instance).
Status
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.
Description
Client nativo Sailfish OS per Hermes WebUI con voce: chat streaming, dettatura, TTS, modalita dialogo
274 KiB
Languages
C++
72.3%
QML
24.4%
QMake
2%
Python
1.3%