- Add `top_genres` column to playlists table to store the top 3 genres
- Implement `computeTopGenres`, `updateTopGenres`, and `reindexAllGenres` in playlists service
- Add "Similar Playlists" section to public playlist view based on genre overlap
- Display genre tags on playlist details page
- Add admin panel route to re-index all playlist genres
- Update social tooltip positioning to use fixed positioning for better visibility
- Add CSS styles for genre tags and track numbers
- Increment service worker cache version
- Add CSS for social tooltip styling and positioning
- Implement JavaScript to fetch and display likers/favoriters on hover
- Add caching mechanism to reduce API calls
- Create new API endpoint `/api/likers/:type/:id` to fetch user display names
- Add database queries to retrieve likers and favoriters for songs and playlists
- Invalidate cache when social actions are performed
- Add database tables for song/playlist likes and favorites
- Create `social` service with toggle functions and enrichment helpers
- Implement `/api/:type/:id/(like|favorite)` routes with CSRF protection
- Add like/favorite buttons to player, song lists, playlists, and cards
- Support guest → login redirect via `data-require-login`
- Inject CSRF token into layout for JS API requests