# Changelog All notable changes to this project are documented below. This file follows a lightweight "Keep a Changelog" style. ## 2025-10-05 — New features & changes ### Added - Postgres persistence support for the backend (requires `DATABASE_URL`). Backend will auto-create `servers`, `invites`, and `users` tables on startup. - `backend/pg.js` helper module to manage Postgres connection and CRUD helpers. - `backend/.env.example` updated to show `DATABASE_URL` with a Tailscale IP example (100.111.50.59). - Short-lived invite token flow (HMAC) for delete authorization (default, via `INVITE_TOKEN_SECRET`). - Frontend invite UI fixes (copy/delete handlers, confirmation dialog) and various UI polish updates. ### Changed - Backend now requires `DATABASE_URL` by default; no automatic fallback to encrypted `db.json` for persistence. - `INVITE_API_KEY` static option deprecated in favor of short-lived invite tokens; token issuance endpoint remains unauthenticated (recommendation: restrict in production). ### Fixed - Async/await handler fixes and small bug fixes across backend endpoints. ### Notes - Existing encrypted `backend/db.json` is retained but no longer used by the running backend. A migration script to import old data into Postgres is planned but not yet implemented. ### Documentation - README updated with setup steps, Postgres guidance, migration note, and expanded app description. ### Added - Live Notifications: per-guild Twitch live notification settings (backend endpoints, frontend UI, and bot command to configure). Stored in server settings under `liveNotifications`. ## 2025-10-06 — Improvements & housekeeping ### Changed - Backend now enforces `DATABASE_URL` as the primary persistence store. If `DATABASE_URL` is unset the server will refuse to start. This ensures all server settings and invites are stored in Postgres consistently. - Server-Sent Events (SSE) endpoint `/api/events` added to allow the frontend to receive real-time updates (command toggles, twitch users updates, live-notifications updates) without refresh. - `discord-bot/twitch-watcher.js` logging reduced to avoid per-guild spam; announcements are concise and errors still reported. - Command deployment logs are aggregated (single summary line) to avoid flooding logs with per-guild messages. ### Added - `/internal/test-live` dev endpoint (backend) & `announceLive` bot helper to force live announcements for debugging. ### Fixed - Frontend `ServerSettings.js` now subscribes to SSE and updates commands, watched users and live settings in real-time when backend publishes events. - Help command updated to produce a neat Embed and support `/help ` for detailed usage; help lists read from backend to remain future-proof. ## [Previous] - 2025-10-04 ### Added - Initial full-stack integration (React frontend, Express backend, Discord bot) and file-based encrypted persistence. - Dashboard and server settings UI components. - Invite creation, listing and deletion endpoints and UI. ---