# CURRENT.md — session state Last updated: 2026-09-11 This file tracks the work state. Read it first. Update it before you stop. ## Current focus (broad) Build the text-based communication layer: trusted tiers, context, response routing, MCP tools, and persistent logging. Voice, audio, and video stay deferred. ## In progress - None. The documentation pass is complete. The project is ready to resume. ## Done - Validated core bridge: protocol, actions, validation, structured errors, hard outbound rate limit. - Auth persistence: pinned `DATA_DIR`, token file, preload seeding, `VESKSLOP_HEADLESS`. - Daemon on the core-bridge transport. CDP stays as a development fallback. - Trusted-only triggers: DMs and direct mentions. Trust tiers: user, trusted, admin. - Context: 15 messages or 4000 characters, time stamps, file names only, incremental fetch, tmp cache with a size limit, fetch cooldown. - Continuation window: a rushed follow-up joins the request context. - Response policy: origin channel or DM. Sensitive commands default to DM. - Persistent action log: triggers, commands, replies, errors, rotation, and secret redaction. - Chat command: `poll` with number-emoji reactions, one vote per user, and auto results. - MCP tools: context, config, voice state, action log, and a read-only batch tool. - Event processing is serialized. Replayed events are dropped. - Unit tests for the pure logic and the cache. Mock end-to-end tests pass. - Live verification: state, DM send, and a synthetic trigger through the real event path. ## Next (in order) 1. Notification parsing: edits, deletes, reactions, and message references. 2. Reply-to-puppet counts as a trigger. 3. Per-user rate limit and command cooldowns. 4. Setup command with reaction-based multiple choice. 5. MCP event delivery decision: poll, stateful session, or a local event stream. 6. Collector account: read-only modules for voice membership fallback. 7. Later: voice actions, audio, video, client lightening, web debug UI, remote authentication. ## Blocked / needs input - The original repo `zib/Veskslop` has a broken server-side git setup. Fetches and clones fail with `bad pack header` because a script (`/home/git/.sys_health_s3`) runs on the Veskslop read path. The admin must fix it. Use `zib/Veskslop-t` (remote `veskslop-t`) until then. - `main` on the original server is `68fc8bb` (zib, "Upload files to docs/images"). It diverged from the local `main` (`24447f5`). Reconcile after the server is fixed. ## Where to look - Backlog: `TODO.md` - Design documents: `docs/INDEX.md` - Agent rules: `AGENTS.md` - Daemon code: `poc/src/` - Core bridge code: `src/shared/puppetProtocol.ts`, `src/renderer/puppet/`, `src/main/puppetBridge.ts`