/tldr [since] summarizes the messages in the channel it is run in that the
caller has not been summarized yet, using a small local model on Ollama, and
replies ephemerally. The answer streams into the reply as it is written.
- Per-user, per-channel cursor (tldr_cursors) so each run picks up where the
last left off; `since:` (e.g. 6h, 2d, max 7d) peeks without moving it.
First use covers the last 24h, and a stale cursor never reaches back more
than 7 days.
- Only summarizes channels both the caller and the bot can read.
- The transcript drops bots, system messages, reactions and filler, turns
links, GIFs, images and files into short tags ([link: site], [image],
[file: name], preview titles), marks replies, and writes a date marker
where the chat paused for 3h or more so the model can keep topics apart.
- The prompt asks for one bullet per conversation, oldest first, with a
worked example; it was tuned against a synthetic chat and a real export
with qwen3:4b-instruct-2507 (the default model).
- One model call at a time across the bot, one /tldr per user.
- docker-compose: Ollama service (CPU only, 8g memory cap: 6g killed the
runner mid-request), model pull on startup.
Needs the tldr_cursors migration (velox-dashboard-api 000016).
Co-Authored-By: Claude Opus 5.5 <[email protected]>
- Added PostgreSQL service to docker-compose.yml with health checks and persistent storage.
- Updated bot service to use environment variable substitution for database connection string.
- Upgraded Go version in Dockerfile to 1.26.1-alpine.
- Modified config loading to ignore missing .env file for better compatibility with Docker.
- Introduced Dockerfile for building the bot application using Go.
- Added .dockerignore to exclude unnecessary files from the Docker context.
- Updated docker-compose.yml to define the bot service and its dependencies, including environment variables for database and Lavalink configuration.
- Modified internal configuration to streamline environment variable handling.