- Add social features: like/favorite songs and playlists, notifications, and public profile pages
- Enable user music: logged-in users can upload songs and create playlists with visibility controls and NSFW flag
- Implement AI music generation via ComfyUI with per-user rate limiting, workflow configuration, and optional cover art generation
- Expand admin panel for user management and AI settings
- Enhance PWA support: lock-screen controls, background playback, and visualizer
- Add email verification via SMTP and avatar cropping
- Update package version to 1.0.0 and bump service worker cache
- Add `avatar_path` column to users table via migration 008
- Integrate `cropperjs` and `sharp` for avatar upload, cropping (600×600), and PNG conversion
- Serve avatars at `/media/avatars` with static caching; expose `/static/vendor/cropperjs`
- Add avatar management UI in account settings with modal cropping workflow
- Display creator avatars on song/playlist detail pages (fallback to initial)
- Implement generic image lightbox (`lightbox.js`) for cover art with zoom animations and keyboard support
- Refactor song/playlist detail views to use responsive layout and lightbox-enabled covers
- Introduce email_verified column and email_verifications table for token-based verification
- Add nodemailer dependency and create mailer service (SMTP + dev fallback to console)
- On registration, generate 24h verification token and send email (or log URL in dev)
- Add /verify-email GET route to validate tokens and mark user as verified
- Add /resend-verification POST route for logged-in users to re-send link
- Update flash system with new warning style for unverified users
- Update .env.example with APP_BASE_URL and SMTP_* configuration variables
Note: existing users are grandfathered in (email_verified=1) via migration.