fix(api): watchdog con timeout su tutte le richieste — mai piu' attese infinite (v0.5.1)

Sintomo sul device: l'app restava sullo splash in caricamento per sempre.
Causa: QNetworkAccessManager non applica timeout — una richiesta che non
riceve risposta (rete del telefono, server occupato) lasciava la UI in
attesa infinita, senza errori visibili.

- ApiClient::armTimeout(): watchdog per reply (abort -> normale percorso
  d'errore del chiamante). Applicato a: checkAuth (12 s), login (20 s),
  refreshSessions e openSession (60 s), newSession/chat-start/switchProfile
  (20-30 s), fetchProfiles (20 s), transcribe (300 s), tts (120 s).
  Nessun watchdog sullo stream SSE (longevo per design).
- checkAuth: imposta lastError anche in errore (messaggio tradotto
  "Server not reachable (timeout)") e logga indirizzo ed esito
- refreshSessions: log della durata (misurato sul probe: il primo fetch
  dopo un cambio profilo puo' prendere 11-16 s lato server, anche su DB
  minuscolo — l'app ora lo gestisce senza sembrare bloccata)
- SplashPage: rete di sicurezza (se authChecked non arriva entro 15 s si
  va comunque al login) + log di instradamento
- i18n: nuova stringa tradotta it/fr/de
This commit is contained in:
2026-09-13 07:37:12 +02:00
parent 7b8e5e1102
commit c5c4049030
10 changed files with 90 additions and 18 deletions
+8 -1
View File
@@ -1,6 +1,6 @@
Name: harbour-hermes
Summary: Client for the Hermes Web UI with voice
Version: 0.5.0
Version: 0.5.1
Release: 1
Group: Qt/Qt
License: MIT
@@ -25,6 +25,13 @@ Sessions list, chat with live streaming replies, voice dictation
(server-side TTS), plus a hands-free conversation mode.
%changelog
* Sun Sep 13 2026 Carlo Baratto <carlo@carlobaratto.it> - 0.5.1-1
- Fix blocco sullo splash all'avvio: watchdog con timeout su tutte le
richieste (QNAM non ne applica: una richiesta senza risposta lasciava
la UI in attesa infinita). checkAuth imposta un errore visibile
("Server non raggiungibile (timeout)") e logga esito e indirizzo;
refreshSessions logga la durata; splash con rete di sicurezza verso il
login dopo 15 s; nessun watchdog sullo stream SSE (longevo per design)
* Sat Sep 12 2026 Carlo Baratto <carlo@carlobaratto.it> - 0.5.0-1
- Sezione Sessions nelle Impostazioni: selettore profilo (le sessioni
mostrate sono quelle del profilo scelto). Switch per-client via