Added
Improvements
- Official support for Discord Embedded Activities
- Launch the app directly via the "Start an Activity" button in voice channels
- Alternatively, launch via a direct link
- Control music your way: Slash Commands, Web Dashboard, or Discord Activity
Fixes
- Better search experience and accuracy across all sources
- Smoother music data caching and refresh times
- Improved overall bot stability
- Improved Spotify multi-credential rotation to prioritize available credentials and ensure seamless fallback
- Fixed several dashboard loading and duplicate request issues
- Fixed minor bugs causing audio playback delays
added
improvements
- added new global music search overlay with categorized tracks, artists, and albums tabs
- added backend search overlay aggregator route with internal cache support
- added deezer fallback for artist and album metadata when spotify search fails or hits rate limits
- added artist page tabs: discography, similar artists, and about
- added last.fm-powered artist extra data with 12-hour backend caching
- added reusable hero banner component for artist and album detail pages
fixes
- optimized dashboard music player data loading and cache behavior
- improved request deduplication and reduced duplicate metadata fetching
- improved frontend cache behavior with preserved data while refreshing
- improved backend cache behavior for stable music metadata
- improved radio api reliability with dynamic radio browser server discovery
- improved dashboard search experience with debounce, abort controller, and stale request protection
- improved artist and album page visuals with full-bleed music-style banners
- aligned dashboard sidebar and content background styling for a more unified layout
- fixed radio api 503 errors by removing hardcoded radio browser server dependency
- fixed radio api failover with automatic host invalidation and recovery
- fixed artist and album cover quick play behavior to add tracks to queue when playback is already active
- fixed search overlay empty results when spotify metadata search fails
- fixed duplicate requests and unnecessary loading states in the music player dashboard
- fixed unhandled promise rejection in player message auto-delete handling
- fixed early startup interaction crashes caused by unavailable database state
- fixed several dashboard stability issues without changing existing playback, queue, lyrics, or routing behavior
- fix(spotify): improve multi-credential fallback and prevent unhandled crashes
- SpotifyRequest: Catch JSON parse errors when API returns HTML (e.g., 403 Forbidden/Active Premium) to prevent unhandled promise rejections.
- RequestManager: Force fallback and quarantine client (rateLimited = true) on ANY API error, ensuring broken credentials are skipped.
- RequestManager: Remove verbose request logs to keep terminal clean.
- Plugin: Add try-catch block around
searchTrackto gracefully handle 'ALL_RATE_LIMITED' errors and prevent AntiCrash stack trace spam.
ADDED
IMPROVEMENTS
- Added database schemas for Saved Artists, Saved Albums, and Spotify metadata caching.
- Added Lavalink configuration with plugins and server settings.
- Added Discord Profile Widget feature to display user music stats on Discord profiles.
- Added
/widgetcommand group (setup, refresh, status, disconnect, image, script)- Added automated daily cron job for refreshing widget connections.
- Add idempotent deduplication filter to automatically clean up existing user duplicates on next save.
FIXES
- Major architectural refactor of Dashboard plugins, routes, and context management.
- Improved YouTube lyrics matching and track metadata normalization.
LikedSongsServiceto match tracks against normalized title and author instead of just strict URIs.
- Fixed custom bot profile application to gracefully handle Discord API missing permissions.
- Remove invalid markdown hyperlink formatting from the
/favoritesslash command output.
ADDED
IMPROVEMENTS
- Added cleaner modular backend structure
- Added separated dashboard route modules
- Added
BACKEND_INTERNAL_SECRETprotection for dashboard/api/*- Added flexible welcomer image list support
- Added updated backend setup
REMOVED
- Improved backend maintainability with
core,discord,api,services,adapters, andsharedstructure- Improved dashboard API organization without changing existing routes
- Improved dashboard API security for protected deployments
- Improved logger TypeScript compatibility
FIXES
- Removed deprecated game command category
- Removed unused game-related handlers and services
- Removed obsolete game database schemas and related storage logic
- Removed unused game dashboard/API integrations
- Removed leftover game-related backend references and cleanup logic
- Fixed Winston logger formatter typing issue
- Fixed outdated backend README information
- Fixed several backend TypeScript/editor warnings
- Added Stage Channel support with auto-speaker or request to speak and live stage topic updates
- Added spotify command with playlist sync and queue support
- Implemented role-based Stage Control system with
/stagecontrolcommand.- Integrated Stage Control validation into all music commands, player buttons, and menus.
- Fixed stage channel detection on newer Discord versions.
- Added
/set channel addand/set channel removefor whitelisting bot command channels.- Added
/fixcommand with Change Region, Reconnect, and Recreate Player actions.- Improved reconnect to refresh voice without disconnecting the bot from the channel.
- Stop now only halts playback and clears the queue without disconnecting.
- Added
/leavecommand for full disconnect and player cleanup.- Fixed player auto-destruction being triggered after intentional stop.
- Fixed queue command crashing when no active track is playing.
- Fixed prefix commands failing with the modern message component format.
- Dashboard stop API now uses the same non-destructive stop logic as bot commands.
- Implemented spotify connection service and playlist endpoints
ADDED
IMPROVEMENTS
- Added
/api/top-artists- Added
/api/artist-tracks- Added
/api/top-albums- Added
/api/album-tracks- Added
/api/new-releases- Added artist image resolver with Deezer/iTunes fallback
- Added album artwork resolver with Deezer/iTunes fallback
- Added thumbnail resolver helper
- Added Last.fm integration for trending artists
- Added Apple Music RSS integration for popular albums
- Added Deezer Editorial Releases integration
- Added multi-strategy album track resolution
- Added in-memory TTL caching system
- Added dedicated caches for artists, albums, releases, and tracks
FIXES
- Improved scalability for high-traffic dashboard usage
- Improved API efficiency with smart caching
- Improved maintainability using existing architecture patterns
- Improved discovery reliability using fallback strategies
- Improved artwork quality with multi-source resolution
- Improved cache efficiency and request optimization
- Fixed repeated external API requests
- Fixed artwork fallback handling
- Fixed album track fetching reliability
- Fixed unstable discovery feed handling
- add music trivia (/music trivia) with multiplayer, scoring, and leaderboard
- add achievements & player stats tracking
- improve song selection & anti-repeat system
- add preview-based gameplay (voice playback + buttons)
- add lastfm subcommand: /last view (user stats)
- add play now & remove buttons to /play
- improve stability and database handling
- add broadcast system (configurable)
- add slash command mention helper (auto-resolves </command:id>)
added
* added last.fm dashboard for/lastfm viewwith an interactive UI.
* shows account details such asscrobbling since, username, and total stats.
* displays last.fm avatar as a thumbnail.
* includes buttons to switch between top artists, top albums, and top tracks.
* includes a select menu to filter time range: 7 days, 30 days, 1 year, and lifetime.
* added lyrics karaoke sync engine for/lyrics.
* separated logic intoLyricService.tsandLyricMessageBuilder.ts.
* supports real-time lyric highlighting based on player position.
* improved smooth pagination for plain mode.
* added new some command.
*/profile
*/favorites
*/history
*/globalstats
*/guildstats
* reorganized translation keys incommands.info.yaml.
* added listening history for users and guilds.
* introduced new schemas:UserListeningHistoryandGuildListeningHistory.
* history is recorded on every track start.
* limited to 100 entries per user/guild to prevent uncontrolled growth.
* new API endpoints:
*GET /api/history/user
*GET /api/history/guild/:guildId
* added new listening sources inTopStatsSession.ts.
* now supportsapplemusicanddeezerin addition tospotify.
improvements
*
- dashboard lyrics API now uses
LyricService.tsfor consistent parsing across discord UI and web dashboard.- improved validation safety in
LastFM.tsto prevent crashes whenThumbnailBuilderis missing.- fixed collector handling in
LastFM.tsto avoidc.setDisabled is not a functionerrors.- internal improvements across
mewslinkfiles for better stability.- moved hardcoded strings into localization files.
- updated configuration files:
config.example.yml
*Config.ts
removed
* removed deprecated slash commands:
*/mystats
*/topstats
*/statistics user
*
- these commands have been replaced by the new stats system:
- removed notification commands:
/notify twitch
*/notify youtube
* these features are no longer maintained and have been deprecated.
