feat: v0.1.0 — client Sailfish per hermes-webui con voce
- ApiClient HTTP/SSE: login, sessioni, chat/start, stream SSE, transcribe, tts - ChatModel: streaming live + risincronizzazione dallo stato del server - CookieJar persistente (0600, mai la password); Settings - Recorder OGG/Opus (fallback WAV/PCM, retry); Player TTS (QMediaPlayer) - UI Silica: splash, login, sessioni, chat (dettatura + read-aloud), settings, cover - Sailjail Internet;Audio;Microphone; icone; spec RPM; docs PROTOCOL/BUILD - tests/core_test: unit parser SSE + integrazione live (probe :8899)
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
[Desktop Entry]
|
||||
Name=Hermes
|
||||
Name[it_IT]=Hermes
|
||||
Comment=Client for the Hermes Web UI with voice
|
||||
Comment[it_IT]=Client per la Web UI di Hermes con voce
|
||||
Exec=harbour-hermes
|
||||
Icon=harbour-hermes
|
||||
Type=Application
|
||||
X-Nemo-Application-Type=silica-qt5
|
||||
Categories=Network;
|
||||
|
||||
# Profilo SailJail esplicito: senza X-Sailjail la sandbox di Sailfish 5.1 usa il
|
||||
# profilo default, che nasconde ~/.config/harbour (config non persistente).
|
||||
# Org/App dichiarati QUI (letti dalla sandbox) e nel main.cpp (letti da
|
||||
# QStandardPaths): AppConfigLocation = ~/.config/harbour/hermes (persistente).
|
||||
# Internet = Web UI di Hermes (HTTPS). Microphone = dettatura vocale.
|
||||
# Audio = riproduzione delle risposte TTS e registrazione (PulseAudio non
|
||||
# separa i flussi: il permesso Audio copre entrambi).
|
||||
[X-Sailjail]
|
||||
Permissions=Internet;Audio;Microphone
|
||||
OrganizationName=harbour
|
||||
ApplicationName=hermes
|
||||
@@ -0,0 +1,63 @@
|
||||
Name: harbour-hermes
|
||||
Summary: Client for the Hermes Web UI with voice
|
||||
Version: 0.1.0
|
||||
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.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
|
||||
Reference in New Issue
Block a user