v2.0.0 - Major Performance & Feature Update
🎉 SlackONOS v2.0.0 - Major Performance & Feature Update
This is a major release with significant performance improvements, a complete web-based setup wizard, WebAuthn authentication, and extensive new features.
🚀 Performance Improvements (75-90% faster!)
Commands are now dramatically faster thanks to parallelized API calls and non-blocking operations:
addcommand: 75-90% faster (removed 1.5s delays, parallel API calls)listcommand: 50% faster (parallel state/queue/track fetching)bestofcommand: 90% faster (parallel track queueing)addalbum/addplaylist: 85% faster (immediate user feedback)getNowPlaying: 40-50% faster (parallel API calls)
All file I/O operations are now async, preventing event loop blocking.
🎨 Complete Web Interface
Setup Wizard (/setup)
Zero-config onboarding experience:
- ✅ Automatic Sonos device discovery (15s timeout)
- ✅ Slack/Discord bot credential validation
- ✅ Spotify API verification
- ✅ Admin password setup
- ✅ Live configuration preview
Admin Panel (/admin)
Full-featured management interface:
- 🎵 Real-time now-playing display with Server-Sent Events
- ⏯️ Playback controls (play, pause, next, volume)
- ⚙️ Configuration management with live validation
- 🔐 WebAuthn/FIDO2 security key management
- 📊 Credential caching and smart reconnection
🔐 Modern Authentication
WebAuthn/FIDO2 Passwordless Login
- Touch ID, Face ID, Windows Hello support
- Yubikey and hardware security key compatibility
- User verification toggle (PIN vs touch-only modes)
- Multi-credential support per user
Traditional Password Authentication
- bcrypt-based secure password hashing
- Secure session management with HttpOnly cookies
🤖 AI Enhancements
- Multi-turn conversations - Bot remembers context across messages
- Better natural language understanding - Improved reasoning and confidence
- Seasonal awareness - Music suggestions based on time of year
- Memory management - Automatic cleanup of old contexts
📁 Project Organization
The repository has been completely reorganized for better maintainability:
- 📚 All documentation moved to
/docsdirectory - 🐳 All Docker files moved to
/dockerdirectory - 🧩 Modular architecture with dedicated
lib/modules - 🧪 Expanded test coverage (622+ tests)
New Modules
lib/auth-handler.js- Authentication logiclib/webauthn-handler.js- WebAuthn implementationlib/setup-handler.js- Setup wizard backendlib/sonos-discovery.js- Device discovery- Validator modules for Slack, Discord, Spotify
🎵 Music Features
New source Command
Identify where music is playing from:
- Queue (SlackONOS-managed)
- Spotify Connect
- AirPlay
- Line-in or other external sources
Improved Queue Display
- Shows currently playing track with metadata
- Time remaining and total duration
- Lock icons for gong-immune tracks
- Source warnings for external playback
🐛 Bug Fixes
- Fixed WebAuthn user verification issues with Yubikey
- Fixed credential validation race conditions
- Fixed SSE connection handling and reconnection
- Fixed config value masking for sensitive data
- Fixed file I/O blocking event loop
- Fixed queue display position matching
- Fixed admin panel real-time update bugs
🔒 Security Enhancements
- Complete sensitive data redaction in all debug outputs
- Secure session management with HttpOnly cookies
- Password hashing with bcrypt
- WebAuthn challenge verification with proper attestation
📖 Documentation
New comprehensive guides:
- Slack Setup Guide - Socket Mode configuration
- Discord Setup Guide - Bot setup instructions
- Testing Guide - Running and writing tests
- Telemetry Documentation - Privacy and opt-out
- Troubleshooting Guide - Common issues
⚠️ Breaking Changes
-
Repository structure changed
- Documentation moved from root to
/docs - Docker files moved from root to
/docker - Update any hardcoded paths in scripts/workflows
- Documentation moved from root to
-
Config format extended
- New optional fields for WebAuthn, setup wizard, AI context
- Existing configs will continue to work
-
Node.js >= 18 recommended
- For optimal performance with native fetch support
- Node.js 16 still supported but not recommended
🎯 Migration Guide
- Update documentation links if you have hardcoded paths (use
/docs/prefix) - Update Docker build paths in custom workflows (use
./docker/Dockerfile) - Optional: Configure WebAuthn for passwordless admin access
- Optional: Set
aiContextLimitfor conversation memory management - Review new config options in
config/config.json.example
📦 Docker Images
Multi-platform images available:
docker pull htilly/slackonos:latestdocker pull htilly/slackonos:v2.0.0docker pull htilly/slackonos:2.0.0
Platforms: linux/amd64, linux/arm64, linux/arm/v7
🙏 Acknowledgments
Special thanks to Claude Code for extensive performance optimization and codebase analysis!
Full Changelog: See CHANGELOG.md for complete details
📥 Installation
Docker Compose (Recommended)
```bash
docker pull htilly/slackonos:v2.0.0
docker compose up -d
```
Node.js
```bash
npm install
node index.js
```
Then visit http://localhost:8000/setup to configure!
Questions? Check the docs or open an issue!