Rewrite from TypeScript to Go

Complete rewrite of the Freebee Matrix bot as GogoBee using mautrix-go.

- E2EE with goolm (pure Go, no CGo/libolm) and cross-signing bootstrap
- 35+ plugins with dependency injection and ordered registration
- SQLite storage via modernc.org/sqlite (no CGo)
- Scheduler via robfig/cron for WOTD, holidays, birthdays, releases, etc.
- Optional LLM integration (Ollama) for sentiment, profanity, roasts, vibes
- Threaded trivia, three-tier profanity tracking, WOTD usage verification
- Multi-country holiday support with deduplication
- Quadratic XP curve, configurable bot display name, encrypted DMs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
prosolis
2026-03-08 18:25:18 -07:00
parent 07c8674fe0
commit ddb196aaad
91 changed files with 12865 additions and 13909 deletions

View File

@@ -1,9 +1,9 @@
services:
freebee:
gogobee:
build: .
restart: unless-stopped
env_file: .env
volumes:
# CRITICAL: The crypto/ subdirectory contains the bot's device identity.
# Losing it means the bot must re-verify in all encrypted rooms.
# Contains the SQLite database (bot state + crypto store) and device.json.
# Losing this means the bot must re-verify in all encrypted rooms.
- ./data:/app/data