L'auto-invio poteva non scattare senza alcun segnale. Cause eliminate:
- il testo viene passato esplicitamente (sendText) invece di rileggerlo
dal campo; il focus tastiera non viene piu' forzato prima dell'invio
- l'opzione vale "on" salvo disattivazione esplicita (undefined -> on)
- ChatModel::send non rifiuta piu' in silenzio: avviso a schermo
("No session open" / "Wait for the current reply") + log [chat]
- log [hermes] sul percorso trascrizione/auto-invio per la diagnosi
dal terminale
93 lines
4.2 KiB
RPMSpec
93 lines
4.2 KiB
RPMSpec
Name: harbour-hermes
|
|
Summary: Client for the Hermes Web UI with voice
|
|
Version: 0.3.1
|
|
Release: 1
|
|
Group: Qt/Qt
|
|
License: MIT
|
|
URL: https://git.hackatoniclife.com/kaneda/harbour-hermes
|
|
Source0: %{name}-%{version}.tar.gz
|
|
Source1: %{name}.desktop
|
|
|
|
Requires: sailfishsilica-qt5 >= 0.10.9
|
|
BuildRequires: pkgconfig(sailfishapp) >= 1.0.2
|
|
BuildRequires: pkgconfig(Qt5Core)
|
|
BuildRequires: pkgconfig(Qt5Qml)
|
|
BuildRequires: pkgconfig(Qt5Quick)
|
|
BuildRequires: pkgconfig(Qt5Network)
|
|
BuildRequires: pkgconfig(Qt5Multimedia)
|
|
BuildRequires: desktop-file-utils
|
|
|
|
%description
|
|
Native Sailfish OS client for the Hermes Web UI (hermes-webui).
|
|
Sessions list, chat with live streaming replies, voice dictation
|
|
(server-side Whisper transcription) and read-aloud of replies
|
|
(server-side TTS), plus a hands-free conversation mode.
|
|
|
|
%changelog
|
|
* Sat Sep 12 2026 Carlo Baratto <carlo@carlobaratto.it> - 0.3.1-1
|
|
- Auto-invio dettatura piu' robusto: il testo viene passato esplicitamente
|
|
(niente rilettura del campo), l'opzione vale "on" salvo disattivazione
|
|
esplicita, niente focus tastiera prima dell'invio; i rifiuti di invio
|
|
ora sono visibili (avviso a schermo + log [chat]/[hermes])
|
|
* Sat Sep 12 2026 Carlo Baratto <carlo@carlobaratto.it> - 0.3.0-1
|
|
- Nessuna configurazione cablata nel binario: indirizzo server, voce,
|
|
engine e preset sono impostazioni dell'app (default neutri; vuoto =
|
|
decide il server); selettori voce/engine costruiti dai preset
|
|
configurabili; Content-Type audio coerente col formato reale; durata
|
|
massima registrazione configurabile (vadMaxMs)
|
|
* Sat Sep 12 2026 Carlo Baratto <carlo@carlobaratto.it> - 0.2.1-1
|
|
- Fix build: rimosso il warning -Wreorder (ordine dell'inizializzazione
|
|
di m_sessionsModel nel costruttore di ApiClient)
|
|
* Sat Sep 12 2026 Carlo Baratto <carlo@carlobaratto.it> - 0.2.0-1
|
|
- Modalita' dialogo (voce continua): ascolto con stop automatico sul
|
|
silenzio (QAudioInput + VAD), trascrizione, invio automatico, lettura
|
|
della risposta e riascolto in ciclo; pausa e sensibilita' microfono
|
|
configurabili; la dettatura manuale puo' inviare da sola
|
|
* Sat Sep 12 2026 Carlo Baratto <carlo@carlobaratto.it> - 0.1.2-1
|
|
- Fix lista sessioni vuota sul device: le QVariantList di mappe non
|
|
espongono i campi nei delegate su Qt 5.6 -> nuovo SessionsModel
|
|
(QAbstractListModel con ruoli: session_id/title/message_count/updated_at)
|
|
- /api/sessions con i parametri della sidebar web (sidebar_source=webui,
|
|
exclude_hidden=1): solo sessioni WebUI, niente CLI/cron
|
|
* Sat Sep 12 2026 Carlo Baratto <carlo@carlobaratto.it> - 0.1.1-1
|
|
- Fix pagine non caricabili sul device: TextField.onAccepted inesistente
|
|
-> EnterKey; Button.highlighted rimosso; ComboBox senza Repeater;
|
|
Theme.highlightDimmerColor -> Theme.rgba; azioni menu via Page
|
|
* Sat Sep 12 2026 Carlo Baratto <carlo@carlobaratto.it> - 0.1.0-1
|
|
- Prima release: login alla Web UI di Hermes, lista sessioni,
|
|
chat con streaming SSE, dettatura vocale (registrazione OGG/Opus
|
|
-> /api/transcribe), lettura risposte (/api/tts -> QMediaPlayer),
|
|
nuova sessione, sandbox SailJail (Internet;Audio;Microphone)
|
|
|
|
%prep
|
|
%setup -q -n %{name}-%{version}
|
|
|
|
%build
|
|
%qmake5
|
|
make %{?_smp_mflags}
|
|
|
|
%install
|
|
make install INSTALL_ROOT=%{buildroot}
|
|
mkdir -p %{buildroot}%{_datadir}/applications
|
|
# Desktop file cercato in modo robusto: sfdk usa i sorgenti live (shadow build)
|
|
# e la directory sorgente puo' chiamarsi %{name}-%{version} (tarball),
|
|
# %{name} (clone) o %{name}-main (zip di Gitea); %{SOURCE1} e' il fallback.
|
|
DESKTOP=$(find %{_builddir}/.. -maxdepth 4 -name '%{name}.desktop' 2>/dev/null | head -1)
|
|
if [ -z "$DESKTOP" ] && [ -f %{SOURCE1} ]; then DESKTOP=%{SOURCE1}; fi
|
|
if [ -z "$DESKTOP" ]; then
|
|
echo "ERROR: %{name}.desktop not found" >&2
|
|
exit 1
|
|
fi
|
|
install -m 0644 "$DESKTOP" %{buildroot}%{_datadir}/applications/%{name}.desktop
|
|
desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop || true
|
|
|
|
%files
|
|
%defattr(-,root,root,-)
|
|
%{_bindir}/%{name}
|
|
%{_datadir}/applications/%{name}.desktop
|
|
%{_datadir}/icons/hicolor/86x86/apps/%{name}.png
|
|
%{_datadir}/icons/hicolor/108x108/apps/%{name}.png
|
|
%{_datadir}/icons/hicolor/128x128/apps/%{name}.png
|
|
%{_datadir}/icons/hicolor/172x172/apps/%{name}.png
|
|
%{_datadir}/%{name}/qml
|