Allgemeine Einstellungen über die API: Maximale Laufzeit und TTS-Anbieter (GET/PUT /settings/general) #145

Open
opened 2026-11-07 12:07:02 +00:00 by alf · 1 comment
Owner

Warum

Der Remote-Client bekommt im Einstellungen-Menü einen Punkt „Allgemeine Einstellungen“ (Schriftgröße, TTS-Anbieter, Maximale Laufzeit, Onboard-Assistent neu starten). TTS-Anbieter und Laufzeit gehören dem Server, der Client braucht dafür eine Route. Gegenstück Mac-Server: iris/Iris (gleiches Wire-Protokoll, beide Server im selben Zug).

Umfang

  • GET /settings/general → {"ttsMode": "qwen"|"none", "ttsModes": [...], "hermesMaxRunMinutes": 45}
  • PUT /settings/general mit Teil-Body, Antwort wie GET. hermesMaxRunMinutes wird auf 10 … 1440 begrenzt (Standard 45), ttsMode außerhalb von ttsModes → 400.
  • Die Laufzeit-Grenze gilt für jeden Hermes-Turn (_stream_turn): Überschreitung stoppt den Lauf, Meldung wie beim Mac („automatisch gestoppt … Mit „mach weiter“ …“).
  • Ablage: /data/general_settings.json.
## Warum Der Remote-Client bekommt im Einstellungen-Menü einen Punkt „Allgemeine Einstellungen“ (Schriftgröße, TTS-Anbieter, Maximale Laufzeit, Onboard-Assistent neu starten). TTS-Anbieter und Laufzeit gehören dem Server, der Client braucht dafür eine Route. Gegenstück Mac-Server: iris/Iris (gleiches Wire-Protokoll, beide Server im selben Zug). ## Umfang - `GET /settings/general` → `{"ttsMode": "qwen"|"none", "ttsModes": [...], "hermesMaxRunMinutes": 45}` - `PUT /settings/general` mit Teil-Body, Antwort wie GET. `hermesMaxRunMinutes` wird auf 10 … 1440 begrenzt (Standard 45), `ttsMode` außerhalb von `ttsModes` → 400. - Die Laufzeit-Grenze gilt für jeden Hermes-Turn (`_stream_turn`): Überschreitung stoppt den Lauf, Meldung wie beim Mac („automatisch gestoppt … Mit „mach weiter“ …“). - Ablage: `/data/general_settings.json`.
Author
Owner

PR #146 gemergt: feat(settings): GET/PUT /settings/general mit Maximaler Laufzeit und TTS-Anbieter (#145)
http://docker:3000/iris/iris-linux-server/pulls/146

Commits:

  • feat(settings): GET/PUT /settings/general mit Maximaler Laufzeit und TTS-Anbieter (#145)

Stand

Befund: Der Remote-Client soll TTS-Stimme und Maximale Laufzeit des verbundenen Servers ändern können (iris/Iris#335). Der Linux-Server hatte dafür keine Route, und eine Laufzeit-Grenze für Hermes-Läufe gab es dort gar nicht.

Geändert:

  • Neu app/general_settings.py: GET/PUT /settings/general mit ttsMode, ttsModes (nur ["qwen"]) und hermesMaxRunMinutes (Standard 45, begrenzt auf 10 … 1440); Ablage /data/general_settings.json.
  • agent_jobs._stream_turn: nach der Grenze wird der Task abgebrochen, der Hermes-Run gestoppt (best effort), die Abbruchmeldung wie in der Mac-App angehängt und der Job auf cancelled gesetzt.
  • Wire-Doku: Entwicklerdokumentation/02-Wire-Protokoll.md.

Geprüft: Auf iris-server per rsync deployt (job_count war 0), tests/test_general_settings.py 4/4 grün (Rechnung, Antwortform, Roundtrip mit Wiederherstellung, 400er).

Nicht geprüft: Das automatische Stoppen nach Ablauf der Grenze im echten Hermes-Lauf (Minimum sind 10 Minuten). Kein Test mit dem neuen Client.

Grenzen / offen: Auf Linux ist nur Qwen als TTS-Anbieter wählbar. iOS-Client noch nicht angepasst.

PR #146 gemergt: feat(settings): GET/PUT /settings/general mit Maximaler Laufzeit und TTS-Anbieter (#145) http://docker:3000/iris/iris-linux-server/pulls/146 Commits: - feat(settings): GET/PUT /settings/general mit Maximaler Laufzeit und TTS-Anbieter (#145) --- ## Stand **Befund:** Der Remote-Client soll TTS-Stimme und Maximale Laufzeit des verbundenen Servers ändern können (iris/Iris#335). Der Linux-Server hatte dafür keine Route, und eine Laufzeit-Grenze für Hermes-Läufe gab es dort gar nicht. **Geändert:** - Neu `app/general_settings.py`: `GET`/`PUT /settings/general` mit `ttsMode`, `ttsModes` (nur `["qwen"]`) und `hermesMaxRunMinutes` (Standard 45, begrenzt auf 10 … 1440); Ablage `/data/general_settings.json`. - `agent_jobs._stream_turn`: nach der Grenze wird der Task abgebrochen, der Hermes-Run gestoppt (best effort), die Abbruchmeldung wie in der Mac-App angehängt und der Job auf `cancelled` gesetzt. - Wire-Doku: `Entwicklerdokumentation/02-Wire-Protokoll.md`. **Geprüft:** Auf iris-server per rsync deployt (`job_count` war 0), `tests/test_general_settings.py` 4/4 grün (Rechnung, Antwortform, Roundtrip mit Wiederherstellung, 400er). **Nicht geprüft:** Das automatische Stoppen nach Ablauf der Grenze im echten Hermes-Lauf (Minimum sind 10 Minuten). Kein Test mit dem neuen Client. **Grenzen / offen:** Auf Linux ist nur Qwen als TTS-Anbieter wählbar. iOS-Client noch nicht angepasst.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
iris/iris-linux-server#145
No description provided.