> ## Documentation Index
> Fetch the complete documentation index at: https://celly.agub.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# What's New

> Release notes for Celly. New entries are generated from CHANGELOG.md.

<Update label="0.2.0">
  ### Minor Changes

  * d32df6a: Add the loopback (localhost only) admin page (`ADMIN_PORT`), size-based log rotation
    (`LOG_MAX_BYTES`/`LOG_MAX_FILES`), scheduled SQLite backups
    (`BACKUP_INTERVAL_HOURS`/`BACKUP_KEEP`), and recurring `/task` prompts.
  * ec1dbba: Add approval modes (`auto`/`buttons`/`plan`), Discord permission approval
    buttons, interactive agent questions with custom answer modals, and a
    best-effort 0600 audit log at `DATA_DIR/audit.jsonl`.
  * 3db6777: Add conversation UX: `/queue` with Remove/Clear buttons, `/undo`, `/redo`,
    `/diff`, `/share`, `/unshare`, `/compact`, `/context-usage`, autocomplete for
    `/resume`, `/model`, and `/agent`, per-channel default model/agent, and tool
    titles with elapsed time in streamed replies.
  * 405734b: Auto-stop idle project sandboxes. `IDLE_STOP_MINUTES` (default `0`,
    disabled; set minutes to enable) stops a project after that many minutes
    without messages, prompts, or `!shell` activity and posts a notice in its
    channel. The next message wakes the project again.
  * 0364586: Multi-guild support: `DISCORD_GUILD_IDS` accepts a comma-separated list (with
    `DISCORD_GUILD_ID` still supported) and Celly deploys its commands, boot
    subscription, and thread reconcile across every configured guild.
  * b879cf3: Add per-session usage and cost tracking (`/cost`) and per-channel session
    budgets (`/budget`, `SESSION_BUDGET_USD`). Provider `sbx secret` management from
    Discord remains deferred and host-only.
  * 806baac: Add `/attach` and `/session-id` for driving the same OpenCode session from a terminal inside the sandbox, and add the optional `ATTACH_AUTO_THREAD` setting to auto-create Discord threads for terminal-started sessions.
  * 495681b: Add per-thread git worktrees (`/worktree status|new|merge|remove`), session
    forks (`/fork`, `/btw`), ephemeral `/last-sessions`, and `clone:`/`branch:`
    options for `/project create`.
</Update>

<Update label="0.1.0">
  ### Highlights

  Initial release: 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 `sbx` host and supervises a long-lived
    `sbx exec ... opencode serve` child per project.

  ### Commands

  * Project lifecycle: `/project add`, `create`, `list`, `status`, `start`,
    `stop`, `remove`.
  * Sessions: `/new`, `/resume`, `/abort`, `/model`, `/agent`.
  * `!<command>` runs a shell command inside the sandbox.

  ### Features

  * 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`.
  * 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.

  ### Security

  * argv-only `sbx` spawns, per-project microVM isolation, path containment, and
    a sensitive-path denylist.
  * Loopback-only server with a generated password.
  * Bot-enforced permission policy re-asserted after every wake.

  ### Known limitations

  * The in-memory message queue is lost on restart.
  * Role configuration accepts role IDs only.
  * The finalization token/duration footer is descoped.
</Update>
