Releases: MrDemonWolf/wolfwave
WolfWave v1.2.0
What's New in v1.2.0
Added
- Docs landing page — redesigned as a dark, streamer-focused marketing page with brand identity
- Theme-aware favicon — docs site SVG favicon automatically switches between light and dark variants based on system appearance
- Shared UI components — extracted reusable
ConnectionTestButton,SectionHeaderWithStatus,InfoRow, andConfigRequiredBannerfor consistent settings UI across sections
Changed
- Music playback architecture — refactored to a pluggable source system (
PlaybackSourceManager+PlaybackSourceprotocol), laying the groundwork for future music source support beyond Apple Music - AppDelegate decomposed — split monolithic delegate into focused extensions (
+MenuBar,+Services,+Windows) for maintainability - Logger format — streamlined to local time (
HH:mm:ss.SSS) with emoji prefixes for faster scanning in Xcode console - Widget appearance settings — reorganized into a compact 2-per-row layout; dropdown pickers now auto-size to content
- Discord & Twitch settings — unified section headers and connection test buttons using shared components
- Code quality — added MARK sections and DocC comments across 12+ files for better Xcode navigation
Fixed
- Settings window not appearing on screen when opened from the menu bar while in menu-bar-only mode
@MainActorisolation for Twitch bot callbacks- 4 Xcode build warnings (actor isolation and unreachable code)
- Widget favicon broken reference path
Full Changelog: v1.1.0...v1.2.0
WolfWave v1.1.0
What's New in v1.1.0
Discord Buttons
Rich Presence now shows two clickable buttons: Open in Apple Music (direct track link) and song.link (opens on Spotify, YouTube Music, Tidal, and more). Buttons appear whenever a track link resolves, even if artwork isn't available.
Launch at Login
New toggle in Settings → App Visibility. Uses SMAppService so it shows up in System Settings → General → Login Items. Enabling it automatically switches "Dock Only" mode to "Dock and Menu Bar" so the app is always reachable.
Custom DMG Background
The installer window now has a polished dark background with WolfWave brand colors and a drag-to-Applications arrow.
Homebrew Auto-Update
A GitHub Actions workflow now automatically opens a pull request on the Homebrew tap whenever a new release is published — no manual cask bumps needed.
Fixed
- iTunes Search API URL encoding — track/artist names containing
&,+, or=no longer break artwork and link lookups - Launch at Login toggle now reverts if
SMAppServiceregistration fails
Install
Homebrew (recommended):
brew tap mrdemonwolf/den
brew install --cask wolfwave
DMG: Download WolfWave-1.1.0.dmg from Assets below, open it, and drag WolfWave into Applications.
Updating via Homebrew: brew upgrade --cask wolfwave
WolfWave v1.0.2
Bug fix release addressing app icon, Sparkle updater, and initialization issues.
Fixed
- App icon missing in CI builds — Added pre-built
.icnsfallback for CI runners using Xcode 16 (which can't compile Xcode 26's.iconformat) - Sparkle updater not detecting new versions — Build number (
CURRENT_PROJECT_VERSION) now increments with each release so the appcast version comparator works correctly - Sparkle initialization race — Restored synchronous Sparkle setup instead of deferred async block that could race with app lifecycle
Install
Download WolfWave-1.0.2.dmg below, open it, and drag WolfWave to Applications.
Or install via Homebrew:
brew install --cask mrdemonwolf/den/wolfwave
WolfWave v1.0.1
Production readiness release — code review fixes, modern Swift patterns, and accessibility.
Highlights
- Apple Silicon Only — Dropped Intel (x86_64) support
- macOS 26 (Tahoe) — Minimum OS version raised from 15.0
- Security Hardened — Tighter entitlements, credential lock protection, Twitch user ID log redaction
- Full Accessibility — VoiceOver labels, hints, and values across all settings and onboarding views
Changed
- Logger: replaced NSLock with serial DispatchQueue for thread-safe file I/O
- TwitchChatService: added
credentialsLockfor all credential and callback properties - DiscordRPCService: fixed
deinitrace condition, addedcallbackLockfor closures - KeychainService: added error logging for all Keychain operations
- Migrated TwitchViewModel and OnboardingViewModel to
@Observablemacro - AppConstants: cached GitHub repo resolution (no longer recomputes on every access)
- WhatsNewView: dynamic version string, native button style, v1.0.1 feature highlights
- Narrowed entitlements file exception path for Discord IPC
- NotificationCenter observers properly cleaned up on app termination
- Windows (Settings, Onboarding, What's New) properly released on close
- Deferred Sparkle/onboarding init past initial layout (fixes
layoutSubtreeIfNeededwarning) - Removed duplicate "up to date" alert (Sparkle handles it natively)
- WebSocket welcome message now reads version from bundle metadata
showWhatsNew()now properly activates app in menu-only mode- Added
accessibilityIdentifierto key UI elements for UI test stability
Install
Download WolfWave-1.0.1.dmg below, open it, and drag WolfWave to Applications.
Or install via Homebrew:
brew install --cask mrdemonwolf/den/wolfwave
WolfWave v1.0.0
WolfWave is a native macOS menu bar app that bridges Apple Music with Twitch, Discord, and stream overlays.
Highlights
- Apple Music Detection -- Real-time now-playing via ScriptingBridge with fallback polling
- Twitch Chat Bot --
!song,!currentsong,!nowplaying,!lastsong,!last,!prevsongcommands with configurable cooldowns - Discord Rich Presence -- "Listening to Apple Music" status with dynamic album artwork
- OBS Stream Widget -- Built-in WebSocket server for browser source overlays
- Automatic Updates -- Sparkle-powered updates for DMG installs; Homebrew Cask users update via
brew upgrade --cask wolfwave
Features
- First-launch onboarding wizard (Welcome, Twitch, Discord, OBS Widget)
- Twitch OAuth Device Code authentication
- Bot command cooldowns (global + per-user, broadcaster bypass)
- Channel validation via Twitch Helix API
- macOS Keychain credential storage (no plain-text tokens)
- Settings UI with sidebar navigation (Music Monitor, App Visibility, Twitch, Discord, OBS Widget, Advanced)
- App visibility modes: menu bar only, dock only, or both
- Diagnostic log export and full reset in Advanced settings
- Discord auto-reconnect with exponential backoff
- Twitch auto-reconnect with network path monitoring
Install
Download WolfWave-1.0.0.dmg below, open it, and drag WolfWave to Applications.
Or install via Homebrew:
brew install --cask wolfwave