v1.1.1 latest april 25, 2026
fixes & improvements
/stats, /wk, /taste, and /recent now cache all pages upfront — page navigation is instant with no API calls on button clicks
Canvas images are pre-rendered and stored in Supabase Storage (stats-cache, wk-cache, taste-cache) — same approach as /wrapped
/stats artists, /stats albums, /stats genres now show all linked members with full pagination (was capped at top 10)
/stats and /wk commands no longer require a minimum of 2 linked members
/taste server footer now shows member count alongside page and period info
Page footer shows Page 1 instead of Page 1 of 1 when there's only a single page
All command references in bot messages now use proper Discord command mentions instead of plain text

v1.1.0 april 18, 2026
new commands
/info artist — artist info with bio, listeners, tags, similar artists, and personal playcount
/info album — album info with track list, duration, release year, and personal playcount
/info track — track info with duration, tags, wiki, loved status, and personal playcount
/info genre — genre info with reach, taggings, wiki, and top artists
/taste user — user's top 50 genres (refactored from /taste)
/taste server — server's aggregated top 50 genres
/discovery — underground vs mainstream score based on top 100 artists
/personality — music personality type with 5 dimension bars (loyalty, diversity, mainstream, intensity, nostalgia)
/streak — top listening streaks over the last 90 days across artists, tracks, and albums
/wrapped — personalized scrobbler wrapped with 5 navigable canvas cards, cached via Supabase Storage
improvements
Autocomplete for /wk and /info now searches Last.fm globally when typing, shows personal top 20 when empty
Image fetching switched to iTunes API for tracks/albums (better K-pop coverage), Deezer for artists with exact name matching
/stats genre/artist/album leaderboards fixed to include all linked members (was incorrectly slicing to 10)
/chart server tracks now keys by track|||artist to prevent wrong covers for same-named tracks by different artists
All chart commands use consistent image sources: Deezer picture_xl for artists, iTunes for albums/tracks with Last.fm fallback
infrastructure
Added WrappedCache Prisma model for Supabase Storage URL caching
Added SUPABASE_URL and SUPABASE_SERVICE_KEY environment variables

v1.0.0 april 16, 2026
initial release
/link — Last.fm OAuth flow with background polling (no redirect needed)
/unlink — disconnect Last.fm account
/profile — music profile with AI-generated bio via Groq
/np — now playing with dynamic layout, genre tags, release year, play count
/recent — paginated recent tracks with hyperlinked song names
/taste — genre breakdown bar chart (up to 50 genres, paginated)
/compat — music compatibility score across artists, tracks, albums, and genres with canvas bar chart
/chart artists — top artists grid chart (3×3 / 4×4 / 5×5) via Deezer images
/chart albums — top albums grid chart using Last.fm album art
/chart tracks — top tracks grid chart via Deezer
/chart server — server-wide aggregated chart for artists, albums, or tracks
/stats scrobbles — server scrobble leaderboard with canvas image and pagination
/stats artists — unique artist count leaderboard
/stats albums — unique album count leaderboard
/stats genres — unique genre diversity leaderboard
/help — interactive help with select menus per section
infrastructure
PostgreSQL via Prisma with User, Server, ServerMember, Play, and PendingLink models
Components V2 embeds throughout
Canvas-generated images for stats, taste, compat, and chart commands
Custom emoji support via E object
Guild commands in development, global commands in production