- Replace email with username for authentication
- Update User model, schemas, and auth endpoints
- Update frontend login and register views
- Add migration to remove email column
- Add multiple track upload support
- New backend endpoint for bulk upload
- Frontend multi-file selection with progress
- Auto-extract metadata from ID3 tags
- Visual upload progress for each file
- Prevent duplicate tracks in room queue
- Backend validation for duplicates
- Visual indication of tracks already in queue
- Error handling with user feedback
- Add bulk track selection for rooms
- Multi-select mode with checkboxes
- Bulk add endpoint with duplicate filtering
- Selection counter and controls
- Add track filters in room modal
- Search by title and artist
- Filter by "My tracks"
- Filter by "Not in queue"
- Live filtering with result counter
- Improve Makefile
- Add build-backend and build-frontend commands
- Add rebuild-backend and rebuild-frontend commands
- Add rebuild-clean variants
- Update migrations to run in Docker
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add wrapper for volume slider
- Use CSS transform instead of orient attribute
- Set transform-origin to center
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add global activeRoom store for persistent WebSocket connection
- Add MiniPlayer component for playback controls across pages
- Add chunked S3 streaming with 64KB chunks and Range support
- Add queue item removal button
- Move DB credentials to environment variables
- Update .env.example with DB configuration
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>