feat(api): /speak meldet Gesetz-Verwürfe, /status zeigt Gesetz-State

POST /speak antwortet bei Verwurf dokumentiert mit 202 {id:"",
discarded:"rate_limit"|"quiet_hours"} (+ toast:true im Toast-Modus)
— analog zum Mute-Muster, kein Fehler. GET /status ergänzt additiv
rate_limit {interval, allow_high_burst, next_slot} und quiet_hours
{window, active, mode, until} (RFC3339 bzw. null). talkd verwired die
Gesetze aus der Config und loggt sie beim Start. Die CLI meldet
'discarded: <grund>' plain (wie muted) und zeigt in talk status die
Zeilen rate-limit/ruhezeit mit Slot bzw. Fenster-Ende.
This commit is contained in:
m3ta-chiron committed 2026-10-18 17:40:46 +02:00
1 parent 5385a4b87d
commit b56c8abfae
6 files changed
+194 -27

No files matched your search

+6 -4
View File
@@ -1,6 +1,8 @@
// Package api definiert die HTTP-Oberfläche des Daemons auf 127.0.0.1:
// POST /speak (enqueue, 202 {id}; bei Mute 202 {muted:true}), GET /status,
// POST /cancel, POST /mute, POST /unmute (Task 04). CORS für /speak und
// der MCP-Endpoint (Streamable HTTP) folgen in Task 06. Der Client-Teil
// ist die CLI-Seite derselben Vertragsschnittstelle.
// POST /speak (enqueue, 202 {id}; bei Mute 202 {muted:true}; bei Gesetz-
// Verwurf 202 {discarded:"rate_limit"|"quiet_hours"} — Task 05),
// GET /status (inkl. Rate-Limit- und Ruhezeit-State), POST /cancel,
// POST /mute, POST /unmute. CORS für /speak und der MCP-Endpoint
// (Streamable HTTP) folgen in Task 06. Der Client-Teil ist die CLI-Seite
// derselben Vertragsschnittstelle.
package api