Initial v1 release
The first release of Celly: a Discord control surface for OpenCode agents,
with one isolated
sbx sandbox per project.Core model- Channel = project (one sandbox, one host directory); thread = session (one OpenCode conversation).
- The bot runs natively on the
sbxhost and supervises a long-livedsbx exec ... opencode servechild per project.
- Project lifecycle:
/project add,create,list,status,start,stop,remove. - Sessions:
/new,/resume,/abort,/model,/agent. !<command>runs a shell command inside the sandbox.
- Streaming replies throttled into a single live message, with fence-aware chunking.
- Session resume and per-thread model/agent overrides.
- Text attachments written to a validated
.celly/inbox. - Shell-output truncation and chunking.
- Access control via guild owner,
Manage Guild/Administrator, an access role, and a block role. - Terminal coexistence: the same sessions are reachable from an attached terminal.
- argv-only
sbxspawns, per-project microVM isolation, path containment, and a sensitive-path denylist. - Loopback-only server with a generated password.
- Bot-enforced permission policy (default-deny bash patterns,
external_directory/questiondenied) re-asserted after every wake.
- The in-memory message queue is lost on restart.
- Role configuration accepts role IDs only.
- The finalization token/duration footer is descoped.
- Per-user command rate limiting, sandbox disk-usage warnings, and
DATA_DIRcloud-sync detection are backlog.