2.1 KiB
2.1 KiB
TODO
Ordered backlog. CURRENT.md tracks the live session state.
Where the project finished (2026-09-11)
- The validated core bridge is live: a fixed action list, input validation, structured errors, and a
hard outbound rate limit. See
docs/core-bridge.md. - The daemon uses the core bridge. QR login, pacing, the trigger log, the trust list, the context cache, and the response policy work.
- Mock tests and a live test passed: state, DM send, and a synthetic trigger through the real event path.
- Repo note: use
zib/Veskslop-t(remoteveskslop-t) until the original repo's server hook is fixed. Pushes to the original land, but its UI and fetch path are broken.
Deferred
- Voice join and leave, invite-link joins, audio in and out, and video streaming. Text features come first.
- Client lightening. Low priority. The client must stay stable.
- Web debug UI and remote client authentication.
Text features
Done:
- Trusted-only triggers: direct messages and direct mentions.
- Context: the last 15 messages or 4000 characters, whichever is lower. File names only for videos and images. Incremental fetch with an old-message cache.
- Context cache in a tmp folder with a size limit.
- Response policy: reply in the origin channel or by DM. Sensitive commands default to DM.
- MCP tools for context and config.
Next:
- Notification parsing: edits, deletes, reactions, replies, and message references.
- Persistent trigger log with rotation.
- Per-user rate limit and command cooldowns.
- More commands:
ask,summarize,context, andconfig. - MCP event delivery for agents. Push or a stateful stream.
- Multi-identity: a read-only collector account beside the puppet.
Open design questions
- MCP event delivery: the current Streamable HTTP mode is stateless, so the server cannot push events. Options are polling, SSE, or a stateful session.
- Untrusted interactions: ignored for now. The daemon keeps the 30-entry untrusted buffer for later.
- Context freshness: the daemon fetches on each mention. Add a TTL or a minimum gap if the query cost is too high.