Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: htilly/SlackONOS

Release v2.2.0

12 Dec 22:21

Choose a tag to compare

Release v2.2.0

Features

  • Enhanced authentication setup with WebAuthn/Yubikey support
  • OpenAI configuration options in setup wizard
  • Improved admin help text with WebUI link
  • Crossfade support via Sonos native API
  • Case-insensitive setconfig values

Fixes

  • Fixed voting system track identification and star emoji display
  • Fixed null track reference handling in voting system
  • Fixed currentTrackTitle return type consistency
  • Improved code consistency and documentation

Release v2.1.0

10 Dec 21:39

Choose a tag to compare

What's New in 2.1.0

Added

  • Slack Thread Support - Added slackAlwaysThread configuration option to send all bot messages as thread replies
  • Spotify Region Warnings - Bot now sends messages to admin channel when tracks fail due to region restrictions (errorCode 800)
  • Enhanced AI Confirmation Detection - Improved handling of user confirmations like "do it", "yes", "ok" for AI suggestions
  • New Screenshots - Added 7 new screenshots to README and testing documentation showcasing features

Changed

  • WebAuthn Enhancements - Major improvements to WebAuthn/FIDO2 authentication
    • Enhanced WebAuthn configuration and client integration
    • Improved user verification and authenticator selection logic
    • Updated @simplewebauthn/server to v13.2.2 for better compatibility
    • Reduced WebAuthn debug logging for cleaner output
  • Admin Panel Improvements
    • Collapsed WebAuthn section into new "Security" section with password management
    • Moved Log Level setting to Console Logs section for better organization
    • Fixed log level filtering to properly respect configured level (debug/info/warn/error)
    • Fixed duplicate log entries in admin panel log viewer
    • Improved SSE connection management with better reconnection handling
  • Branding Updates - Complete rebrand from ZenMusic to SlackONOS
    • Replaced all ZenMusic.png references with SlackONOS.png
    • Updated CSS colors to match new SlackONOS logo and Slack-inspired palette
    • Added rounded corners and smoother logo appearance with better styling
  • UI/UX Improvements
    • Translated entire setup wizard from Swedish to English
    • Improved Spotify region pre-fill in setup wizard (reads existing config value)
    • Enhanced login page with "Login with Yubikey!" button text
    • Better visual organization of admin panel sections

Fixed

  • Discord Token Validation - Fixed regex to correctly validate Discord bot tokens with varying lengths
  • SSL Certificate Generation - Added defensive checks for ipAddress to prevent certificate generation errors
  • Log Level Not Respected - Fixed issue where debug logs were still showing even when log level was set to info
  • Duplicate Log Entries - Fixed duplicate log entries appearing in admin panel log viewer
  • GitHub Actions - Fixed GITHUB_REF passing to Docker container for correct release version detection

Dependencies

  • Bumped selfsigned from 5.1.1 to 5.2.0
  • Bumped bcrypt from 5.1.1 to 6.0.0
  • Bumped @simplewebauthn/server from 12.0.0 to 13.2.2

Documentation

  • Enhanced README with detailed screenshot descriptions
  • Updated Slack documentation (removed gong reactions, added thread support info)
  • Improved testing documentation with new screenshots

See CHANGELOG.md for full details.

v2.0.1 — TTS HTTPS Fix + Workflow Improvements

09 Dec 23:07

Choose a tag to compare

v2.0.1 — TTS HTTPS Fix + Workflow Improvements

🐞 Bug Fixes

  • TTS HTTPS Issue
    • TTS (text-to-speech) använder nu HTTP istället för HTTPS.
    • Sonos-enheter litar inte på självsignerade certifikat → HTTPS bröt uppspelningen.
    • HTTP-endpoint fungerar nu stabilt i lokala nätverk.
    • HTTPS används fortfarande för Setup Wizard och Admin-gränssnittet.

🔧 Improvements

  • Test Workflow
    • Lade till master-branchen i test-workflow för korrekt branch protection.
  • Test Fixes
    • Åtgärdade timing-relaterad boundary-condition i memory-management-tester.

v2.0.0 - Major Performance & Feature Update

09 Dec 21:35

Choose a tag to compare

🎉 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:

  • add command: 75-90% faster (removed 1.5s delays, parallel API calls)
  • list command: 50% faster (parallel state/queue/track fetching)
  • bestof command: 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 /docs directory
  • 🐳 All Docker files moved to /docker directory
  • 🧩 Modular architecture with dedicated lib/ modules
  • 🧪 Expanded test coverage (622+ tests)

New Modules

  • lib/auth-handler.js - Authentication logic
  • lib/webauthn-handler.js - WebAuthn implementation
  • lib/setup-handler.js - Setup wizard backend
  • lib/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:


⚠️ Breaking Changes

  1. Repository structure changed

    • Documentation moved from root to /docs
    • Docker files moved from root to /docker
    • Update any hardcoded paths in scripts/workflows
  2. Config format extended

    • New optional fields for WebAuthn, setup wizard, AI context
    • Existing configs will continue to work
  3. Node.js >= 18 recommended

    • For optimal performance with native fetch support
    • Node.js 16 still supported but not recommended

🎯 Migration Guide

  1. Update documentation links if you have hardcoded paths (use /docs/ prefix)
  2. Update Docker build paths in custom workflows (use ./docker/Dockerfile)
  3. Optional: Configure WebAuthn for passwordless admin access
  4. Optional: Set aiContextLimit for conversation memory management
  5. Review new config options in config/config.json.example

📦 Docker Images

Multi-platform images available:

  • docker pull htilly/slackonos:latest
  • docker pull htilly/slackonos:v2.0.0
  • docker 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!

SlackONOS v1.7.3

03 Dec 17:33

Choose a tag to compare

What's New

Added

  • Persistent Telemetry Instance ID - Anonymous telemetry now uses a persistent UUID stored in config, ensuring consistent tracking across restarts
  • Soundcraft Volume Display - The volume command now shows configured Soundcraft mixer channel levels alongside Sonos volume

Changed

  • Soundcraft volume conversion now uses linear dB mapping for more accurate fader representation

Full Changelog: v1.7.2...v1.7.3

v1.7.2 - Bugfix add and search aligned

02 Dec 21:15

Choose a tag to compare

fix: resolve merge conflicts for v1.7.2 release

v1.7.1 - Bugfix for template text

02 Dec 19:59

Choose a tag to compare

Fixed wrong location of template text

v1.7.0 - Comprehensive Integration Testing & Repository Cleanup

02 Dec 18:47

Choose a tag to compare

Added

  • Comprehensive Integration Test Suite: 21 automated end-to-end tests covering all major features
  • Multi-channel testing support (regular + admin channels)
  • Test configuration system with separate bot credentials (test/config/)
  • Integration test tools (test/tools/integration-test-suite.mjs)
  • Test documentation (test/INTEGRATION_TESTING.md)

Changed

  • Repository Organization: Moved template files to config/messages/ and help files to config/help/
  • Dependency Updates:
    • sinon: 19.0.2 → 21.0.0
    • chai: 6.2.0 → 6.2.1
    • posthog-node: 4.3.0 → 5.15.0
    • openai: 4.76.1 → 6.9.1
  • Updated Docker configuration (image reference, port mapping)
  • Enhanced .dockerignore and .gitignore

Removed

  • Legacy files: tools/, .travis.yml, .snyk, Procfile
  • Unused sound file (sound/gong.mp3)
  • Outdated Gemini documentation (.gemini/)

Fixed

  • Docker image reference in docker-compose-example.yml (now uses htilly/slackonos:latest)
  • All template file paths in index.js to reflect new structure
  • Removed local paths from documentation

v1.6.0 - Track Blacklist & PostHog Telemetry

01 Dec 23:20

Choose a tag to compare

🎉 What's New in v1.6.0

🚫 Track Blacklist System

Block unwanted tracks and artists from your queue! Perfect for avoiding those overplayed holiday songs.

  • trackblacklist command - Add/remove blacklisted tracks (admin-only)
  • Smart filtering - Works with individual tracks, albums, playlists, and AI-generated lists
  • Transparent warnings - Shows which tracks were skipped and why
  • Persistent storage - Blacklist saved in config/track-blacklist.json

Example: Block all versions of "Last Christmas" and the bot will automatically skip them when adding Christmas playlists!

📊 PostHog Telemetry

Anonymous usage tracking to help improve SlackONOS:

  • Migrated from Plausible to PostHog SDK
  • Tracks startup, heartbeat (24h), and shutdown events
  • Includes OS platform, Node version, market info
  • Opt-out anytime via telemetryEnabled: false in config
  • Full privacy documentation in TELEMETRY.md

🎛️ Soundcraft Ui24R Integration

Control your mixer directly from Slack/Discord:

  • Multi-bus support (master, aux, fx, custom channels)
  • WebSocket-based real-time connection
  • Named channel control: setvolume receptionen 30
  • Auto-reconnection on disconnect
  • Complete setup guide in SOUNDCRAFT.md

⚡ Performance Improvements

  • Channel ID support - Avoid rate limits in large Slack workspaces (100+ channels)
  • Auto-save IDs - First lookup saves IDs to config for instant future startups
  • Smart detection - Automatically detects if config uses IDs vs names

🧪 Testing

138 passing tests covering:

  • Text cleaning (Slack formatting, HTML entities, quotes)
  • Voting system with dynamic config changes
  • Integration tests for command logic and Spotify API

🐛 Bug Fixes

  • Slack Socket Mode auto-reconnect prevents crashes
  • Removed build.txt dependency (was causing ENOENT errors)
  • Fixed private channel IDs (G...) support
  • Corrected Soundcraft API calls for aux/fx bus control
  • ARM v7 platform support for Raspberry Pi

📝 Full Changelog

See CHANGELOG.md for complete details.


Upgrade from v1.5.0:

  1. Pull latest code: git pull origin master
  2. Install dependencies: npm install
  3. Add optional configs (see SOUNDCRAFT.md and TELEMETRY.md)
  4. Restart your bot

Docker users:

docker pull ghcr.io/htilly/slackonos:v1.6.0
# or rebuild: docker build -t slackonos .

v1.5.0: AI Natural Language

30 Nov 14:54

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: https://github.com/htilly/SlackONOS/commits/v1.5.0