diff --git a/README.md b/README.md index ff4bca3..a01a391 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,7 @@ # talk -> **Status: WIP** — aktive Entwicklung (talk 2.0). Binde Spezifikation: -> [`.scratch/talk-2-0/spec.md`](.scratch/talk-2-0/spec.md) · -> Implementierungsplan: [`.scratch/talk-2-0/plan.md`](.scratch/talk-2-0/plan.md) +> **Status: WIP** — aktive Entwicklung (talk 2.0). Spezifikation mit +> Entscheidungs-Nachtrag: [`docs/spec.md`](docs/spec.md) **talk** macht Skripte und KI-Agenten hörbar: Ein Aufruf — `talk "Build fertig"` — spricht eine kurze Nachricht über eine TTS-Provider-Kette diff --git a/.scratch/talk-2-0/spec.md b/docs/spec.md similarity index 91% rename from .scratch/talk-2-0/spec.md rename to docs/spec.md index b1338fa..046d3f2 100644 --- a/.scratch/talk-2-0/spec.md +++ b/docs/spec.md @@ -100,3 +100,27 @@ Verteilung: Gitea-Releases nach agent-lib-Muster (Asset-Schema `talk__ - Session-Stickiness der Etikette ist Prompt/Skill-Level — der Daemon kennt keine Agent-Sessions. - Offene Später-Entscheidung: LibreChat-Anbindung via Frontend-Patch vs. Browser-Extension — blockiert nichts, Tür steht mit CORS-fähiger HTTP-API. - Verwandte Firmen-ADRs: 0009 (agent-lib), 0012/0013 (Secrets-Env-Bridge/Machine-Env-Keys), 0016/0017 (user-scharfe Keys, MCP-Audience-Scoping) — talk folgt diesen Mustern. + +--- + +## Nachtrag 2026-10-24 — Entscheidungen nach Architektur-Review + +Diese Punkte ersetzen die entsprechenden Aussagen oben (Grilling-Stand +2026-10-18): + +- **Ein Binary statt `talk` + `talkd`.** Der Daemon ist `talk daemon run`; + `talk say`/`talk wrap` starten ihn beim ersten Sprechbefehl selbst im + Hintergrund (`daemon.autostart`, Default an; `talk daemon start|stop` + explizit). Der Degraded Mode mit Lock-Datei entfällt; ohne erreichbaren + oder startbaren Daemon spricht talk direkt (unserialisiert, mit Hinweis). +- **CLI ist die Agenten-Schnittstelle.** MCP bleibt als Tür bestehen, ist + aber kein Fokus mehr; Browser-Zugriff ist serverseitig auf POST /speak + von gelisteten Origins beschränkt (Origin-Guard, nicht nur CORS). +- **`now:true` bricht bewusst aus der Ruhezeit aus** (bestätigt). +- **Zwei weitere Gesetze:** `queue.max_text` (400 Zeichen, Kürzung an der + Wortgrenze) und `queue.max_age` (2 min, veraltete Stau-Ansagen + verfallen). +- **Zielbild Veröffentlichung:** talk soll perspektivisch öffentlich + nutzbar sein. Oberstes Kriterium ist Usability für Nicht-Terminal- + Nutzer; die Bubble-Tea-TUI ist kein Selbstzweck — einfache, klare + Befehle (`doctor`, `setup`, `test`, `voices`) haben Vorrang.