This release is a major stability and architecture update: a full codebase restructure, Lavalink music playback, stronger dashboard and ticket systems, database key migration, and several command and logging fixes.
What's New
Music Playback
- Lavalink v4 integration via Riffy for Spotify, YouTube, Deezer, Apple Music, and more
- New commands:
/play/join/queue/nowplaying/musicwith playback controls (pause, resume, skip, shuffle, loop, volume, seek, 24/7 mode)
- Interactive music player buttons for queue and playback management
- Prefix shortcuts for common music actions (
join,np,leave,pause,resume,skip,stop,volume,music) - Configurable Lavalink nodes via
lavalink/nodes.json,LAVALINK_NODES, or single-node environment variables - Optional self-hosted Lavalink using Docker Compose (
--profile local-lavalink)
Project Restructure
- Major internal reorganization into feature-based folders
- Database utilities split into dedicated modules:
- Logging helpers moved to
utils/logging/ - Ticket utilities moved to
utils/ticket/ - Leveling and moderation services separated into dedicated modules
Stability & Dashboard Improvements
- Panel health monitoring with automatic startup reconciliation
- Shared dashboard session helper for improved multi-step interactions
- Improved ticket dashboard with panel status guards and repost workflow
- Enhanced verification and reaction-role dashboards
- Automatic level role synchronization on startup
- Improved greet dashboard reliability and welcome embed validation
Moderation
- New
/saycommand for moderators - Prefix permission enforcement aligned with configured moderator roles
- Configuration Wizard
modRolenow controls moderation command access - Improved moderation hierarchy validation
- Clearer error messages for users
Database & Migration
- Canonical guild-scoped database key format
- Automatic startup key migration
- New migration scripts:
npm run migrate:keysnpm run migrate:keys:dry
- PostgreSQL schema versioning
- Improved database wrapper
- Better fallback handling between PostgreSQL and in-memory storage
Developer Experience
- Added
CONTRIBUTING.md - Updated Docker setup with Lavalink support
- Improved
.env.example - Dependency updates and vulnerability fixes
Breaking Changes
- Search commands consolidated under
/search/define→/search define/google→/search google/urban→/search urban
- Internal service paths changed after the project restructure
- Legacy flat service files removed or relocated
- Database keys migrated to the new guild-scoped format
Bug Fixes
- Fixed stale
guildConfigimport paths - Fixed
logEmbedsmoderation import path - Fixed ticket close permission checks
- Fixed ticket button handler stability
- Fixed prefix
kickmember cache resolution - Fixed greet dashboard crashes and counter updates
- Reduced Lavalink reconnect and error log spam
- General stability, performance, and dashboard interaction improvements