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