System.Changelog
Changelog
Every update, feature, and fix — tracked through the version timeline.
v2.3.0
— 2026-03-03
Song Crossfade
✨ New Features
- Song crossfade with pre-buffering for gapless transitions
- Configurable crossfade duration (0–10 seconds) via /settings audio
- Automatic pre-buffering of next track 8 seconds before crossfade
- Smooth volume fade-out/fade-in using 50ms interval steps
- Works with loop mode (pre-buffers same track)
🔧 Improvements
- Tracks with unknown duration skip crossfade automatically
- Skip/stop cleanly cancel ongoing crossfades
- Pre-buffered subprocess properly cleaned up on destroy
- Fixed inactivity message showing actual timeout setting
📚 Documentation
- New crossfade i18n keys in EN, DE, ES
v2.2.0
— 2026-03-01
Customizable Bot Settings
✨ New Features
- /settings command with 5 subcommands (view, audio, moderation, display, reset)
- 9 per-server customizable settings
- DJ role system — restrict music control to specific roles
- Channel restrictions — limit bot to specific text/voice channels
- Custom embed colors per server
- Max song duration limit
- Configurable vote skip threshold
- Per-guild default volume, queue size, inactivity timeout
🔧 Improvements
- Settings persist in guild-settings.json alongside language preferences
- ManageGuild permission required to change settings
- Admins bypass DJ role restrictions
- All settings have validation (range checks, hex color validation)
📚 Documentation
- ~40 new i18n keys in all 3 languages (EN, DE, ES)
v2.1.0
— 2026-02-27
Multi-Service Streaming
✨ New Features
- Unified URL resolver — automatic detection for 9 streaming services
- SoundCloud support (direct streaming via yt-dlp)
- Bandcamp support (direct streaming via yt-dlp)
- Apple Music support (metadata bridge → YouTube)
- Deezer support (metadata bridge → YouTube)
- Tidal support (metadata bridge → YouTube)
- Direct audio URL support (.mp3, .wav, .ogg, .flac, .m4a)
- Internet radio stream support (Icecast/Shoutcast)
- Source indicator in "Now Playing" embeds
🔧 Improvements
- Simplified /play command — single resolveQuery() replaces 12-line if/else chain
- Service abstraction layer (resolver.js + stream.js)
- All metadata bridge services use free public APIs (no extra API keys needed)
📚 Documentation
- Updated README with supported services table
- Added i18n keys for all new services in EN, DE, ES locales
- Updated project structure in README
v2.0.0
— 2026-02-27
Complete Rewrite
🔄 Breaking Changes
- Complete rewrite from Python / discord.py to JavaScript / discord.js v14
- All text commands replaced with slash commands
✨ New Features
- 19 slash commands (was 16 text commands)
- yt-dlp for YouTube audio (replaces youtube_dl)
- Spotify track support via spotify-web-api-node
- Genius lyrics integration
- Guild-scoped playlists with file persistence
- Interactive "Now Playing" embeds with buttons (⏸️/▶️, ⏭️, 🔁)
- Auto-disconnect after 3 minutes of inactivity
- Volume control with inline audio processing
- Democratic /vote_skip system
- YouTube cookie authentication support (cookies.txt)
- /language command — per-server localization (EN 🇬🇧, DE 🇩🇪, ES 🇪🇸)
- /queue and /nowplaying commands
- /join and /leave commands
- Command reset utility (npm run reset)
- ffmpeg-static bundled — no manual FFmpeg install needed
🐛 Bug Fixes
- Fixed 39 bugs from the original Python codebase
- Proper error handling for all commands (no more silent failures)
- Skip votes clear on track change
- Queue limit enforcement (max 100 tracks)
- Playlist validation and size limits
- Bot count excluded from vote skip threshold
📚 Documentation
- Complete README rewrite for JavaScript version
- shields.io badges (version, license, platform, i18n, stars, downloads)
- cookies.txt.example template
- Updated GitHub repo description and topics
v1.4.1
— 2024
Last Python Release
🐛 Bug Fixes
- Bug fixes and stability improvements
- Final release before JavaScript rewrite
v1.4.0
— 2024
✨ New Features
- Added Spotify support
- Added Genius lyrics support
- Custom playlists feature
v1.0.0
— 2024
Initial Release
🚀 Initial Features
- Basic music playback with discord.py
- YouTube support via youtube_dl
- Queue management