Fixed
- The stats/analytics endpoint no longer crashes on PostgreSQL. The message time-series query grouped by an output alias named
timestamp— a reserved type keyword in PostgreSQL — soGROUP BY timestampwas not read as the alias and the query failed with "column m.createdAt must appear in the GROUP BY clause" (SQLite tolerated it, so unit tests on the SQLite test DB never caught it). The alias is nowbucket; the API response field is unchanged. (#474)
Documentation
- Added a Traefik / Coolify reverse-proxy guide to the troubleshooting FAQ: WebSocket forwarding, the
docker-proxydouble-hop that causes intermittent504s behind Coolify (held-open Socket.IO connections exhausting the pool to the single-port upstream), and idle-timeout tuning. (#467)