diff --git a/PROGRESS.md b/PROGRESS.md index bce2dc5..d32cf65 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -177,6 +177,45 @@ Also fixed: semantic `query`. Earlier: notes/query recall, `/dash` monitoring, `wg_handshake` poller (NO-OP). +### Gaps — why "voice assistant" is still aspirational (2026-07-05) + +What separates Maven today from the thing the spec describes. Dealbreakers +first — these define the category: + +1. **No always-on listening.** Voice is push-to-talk in a web page: open the + PWA, hold, speak, release. No wake word, no ambient mic, no room hardware. + Today it's a dictaphone with a brain, not something you talk to across the + kitchen. Highest-leverage gap — a wake word + speaker device changes what + Maven *is*, not just how good it is. (Listening modes 2–3 in maven.md.) +2. **No conversation.** The router classifies one utterance → one reply. No + follow-ups, no anaphora ("а когда?"), no dialogue state beyond the 90s + destructive-confirm park. The sub-1B phraser only words replies; nothing + converses. +3. **Latency/shape of a turn.** Clip-based STT (record → upload → whisper → + route → phrase → piper → play). No streaming either direction, no barge-in; + every exchange is a full round trip. + +Capability-class gaps — built but thin: + +4. **Act surface is a handful of argv allowlist entries.** propose→enable + works; until populated, "acts on your homelab" is mostly potential. +5. **Query answers cover notes + a few built-ins.** No weather, no calendar + *querying* (calendar only gates nudges), no general knowledge; the + cheatsheet promises more than the router delivers. +6. **Routing quality depends on the ONNX embedder being configured** — the + HashEmbedder floor makes RU recall lexical/weak; many commands fall to + "clarify". +7. **Presence is effectively one signal** (page_heartbeat); desk_active is + still an undeployed script — "voice when near" routing runs on a guess. +8. **Long-term memory per spec (obsidian → chroma) doesn't exist** — sqlite + brute-force cosine over notes is recall, not personalization. Persona + prompt and custom TTS voice (kami-picked, replaces the irina floor) are + still future items. + +Ops footnote: in the Docker deploy, voice-over-web needs mavend to bind its +voice server on 0.0.0.0:9100 — unverified on the target host; until then the +containers may only do the non-voice surfaces. + ### Future / logged, not now Personality prompt; custom TTS voice training (kami-picked voice, replaces irina diff --git a/cmd/mavweb/static/ui.css b/cmd/mavweb/static/ui.css index dc628d2..e167c8c 100644 --- a/cmd/mavweb/static/ui.css +++ b/cmd/mavweb/static/ui.css @@ -53,6 +53,7 @@ button:hover{border-color:var(--accent)} button:disabled{opacity:.4;cursor:not-allowed} input[type=text]{font:inherit;font-size:.85rem;background:var(--bg);color:var(--fg); border:1px solid var(--border);border-radius:3px;padding:.25rem .4rem;max-width:100%} +input[type=checkbox]{accent-color:var(--accent)} label{color:var(--soft)} /* inline feedback (/history revert, /tools enable, /auth/passkey) */