- Reverted PiP to native browser system (draggable across screens)
- YouTube playlist controls now work (list= param preserved in embed URL)
- YouTube auto-advance on video end for playlists
- Bot Updated toast fixed from red/error to green/success
- Toast z-index raised above modals
- Bot channel dropdown ordered with sub-channel indentation
- Uncategorized DMs now collapsible with localStorage persistence
- HTTPS redirect uses actual host instead of hardcoded localhost
- Removed duplicate /api/upload-avatar route, added 2MB size check
- Guarded global get-webhooks handler to not conflict with per-channel
- E2E safety number now full 60 digits (SHA-512 instead of SHA-256)
- Reset YouTube playlist flag on Spotify URLs
- GitHub Actions workflow attaches haven.tar.gz with fixed dir name (closes#22)