Add the agent scaffold, mobile web UI, voice auto-leave, and text notifications

This commit is contained in:
Fisto
2026-09-14 16:38:14 +02:00
parent c7aad7547f
commit eab94132bb
27 changed files with 1521 additions and 73 deletions
+18 -11
View File
@@ -32,25 +32,32 @@ Ordered backlog. `CURRENT.md` tracks the live session state.
## Deferred
- Voice auto-leave, `stay @user`, invite-link joins, audio in and out, and video streaming. The
plan is in `docs/voice.md`. The basic voice actions exist; auto-leave and audio do not.
- `stay @user`, invite-link joins, audio in and out, and video streaming. The plan is in
`docs/voice.md`. The basic voice actions exist; auto-leave and audio do not.
- Client lightening. Low priority. The client must stay stable.
- Web UI authentication and remote accounts.
- Web UI authentication and remote accounts. Accepted for now: no auth, LAN or Tailscale only.
## Next
1. Voice auto-leave (`voiceLeaveDelaySeconds`) and the `stay @user` command.
2. Live verification on the audio host: TTS local + API, ducking, capture, `voice.join`/
`voice.leave` end to end, and a full QR approval.
1. Voice auto-leave (owner-based) is implemented. `stay @user` is deferred.
2. Live verification on the audio host: TTS local + API, ducking, capture, and `voice.join`/
`voice.leave` end to end.
3. Browser microphone puppeting: a mix sink so the browser mic and TTS share `veskslop_mic`, a
`pacat` input path, and echo handling.
4. Speech to text: Vosk (small CPU model in `poc/models/`) is wired and verified; add more
languages or a larger model when needed. `VESKSLOP_STT_CMD`/`_API_URL` stay available.
5. Notification parsing: edits, deletes, reactions, and message references.
6. Reply-to-puppet counts as a trigger.
7. Per-user rate limit and command cooldowns.
8. Collector account: stripped-down read-only modules. Use it when the puppet cannot find a user's
5. Notification parsing (edits, deletes, reactions, replies) and the reply-to-puppet trigger: done.
6. Per-user rate limit and command cooldowns.
7. Collector account: stripped-down read-only modules. Use it when the puppet cannot find a user's
voice channel or the channel members.
8. Local agent harness (`agent/`, Go + Eino): scaffold done and smoke-tested. Next: daemon task
push (free-form triggers only; commands stay local), tool allowlist, per-conversation
serialization with cancel-and-replace, delivery IDs, and tests against a fake model.
9. Remote agent MCP path: a notification tool set for external systems, a documented LAN/Tailscale
bind, and optional token auth on the MCP listener. See `docs/agent.md`.
10. Mobile web UI: first draft at 390px with the four tabs (Users, Chat, Call, Activity) is
implemented and rendered headless. Next: move the transcript into the Call tab, put the TTS
box in the Call tab as in 1c, and verify with real data on a phone-width viewport.
## Web UI follow-ups
@@ -63,7 +70,7 @@ Ordered after the voice backend unless the owner asks first.
- DM scope in the header (the guild picker becomes "Direct messages").
- Message editing, deletion, reactions, and history pagination.
- The remaining mockup screens: 7b/7c console details, 6b history window, 4b group chat, 2c state
legend, 1c phone layout.
legend.
## Open decisions