WolfWave

Changelog

Release history for WolfWave

Changelog

All notable changes to WolfWave are documented here.

v2.0.0 — Unreleased

Added

  • Song Requests — viewers request songs via !sr <song> in Twitch chat; plays through Music.app with no focus-steal on the streamer's screen
  • !queue / !myqueue — show the full queue or a viewer's own requests in chat
  • !skip / !next — mod-only skip current request
  • !clearqueue — mod-only wipe the queue (with confirmation)
  • !hold / !resume — mod-only hold mode; requests buffer without auto-playing so the streamer can curate before releasing
  • Hold controls — Hold/Resume button in Queue settings view and menu bar toggle
  • Music.app closed buffering — requests save when Music.app is closed, flush on relaunch
  • Fallback playlist — plays a configured Apple Music playlist when the queue empties
  • Song Request Queue UI — now-playing card, position badges, per-requester labels, and action controls
  • Apple Music onboarding step — MusicKit authorization during first-launch wizard
  • Per-user limits, subscriber-only mode, command aliases, and enable/disable toggles per command

Changed

  • Music playback via AppleScript + focus preservation — Music.app never steals focus from OBS or streaming tools
  • MusicKit used exclusively for search/resolve, not playback

v1.2.0 — April 4, 2026

Added

  • Docs landing page — redesigned as a dark, streamer-focused marketing page
  • Theme-aware favicon — automatically switches between light and dark mode
  • Shared UI components — reusable settings components for a more consistent look

Changed

  • Music architecture — refactored to a pluggable source system, laying groundwork for future music sources beyond Apple Music
  • AppDelegate decomposed — split into focused extensions for maintainability
  • Logger — streamlined format with local time and emoji prefixes
  • Widget settings — compact 2-per-row layout, auto-sizing dropdowns
  • Settings UI — unified headers and test buttons across Discord & Twitch sections

Fixed

  • Settings window not appearing when opened from menu bar in menu-bar-only mode
  • 4 Xcode build warnings (actor isolation and unreachable code)
  • Widget favicon broken reference

Full changelog on GitHub

v1.1.0 — March 31, 2026

Added

  • 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)
  • Launch at Login — new toggle in Settings → App Visibility. Uses SMAppService, appears in System Settings → General → Login Items
  • Custom DMG background — installer window has a polished dark background with WolfWave brand colors
  • Homebrew auto-update — GitHub Actions now automatically opens a pull request on the Homebrew tap on new releases

Fixed

  • iTunes Search API URL encoding — track/artist names with &, +, or = no longer break artwork lookups
  • Launch at Login toggle now reverts if SMAppService registration fails

v1.0.2 — March 31, 2026

Fixed

  • App icon missing in CI-built releases
  • Sparkle updater unable to detect new versions (build number now incremented per release)
  • Sparkle initialization race condition fixed

v1.0.1 — March 30, 2026

Changed

  • Dropped Intel (x86_64) support — Apple Silicon only
  • Raised minimum macOS version to 26.0 (Tahoe)
  • Logger: replaced NSLock with serial DispatchQueue for thread-safe file I/O
  • TwitchChatService/DiscordRPCService: documented thread safety patterns
  • KeychainService: added error logging for all Keychain operations
  • AppConstants: cached GitHub repo resolution
  • Migrated TwitchViewModel and OnboardingViewModel to @Observable macro
  • WhatsNewView: dynamic version string, native button style, v1.0.1 feature highlights
  • Narrowed entitlements file exception path
  • Added Twitch user ID redaction to log output
  • 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 to fix layoutSubtreeIfNeeded warning
  • Removed duplicate "up to date" alert (Sparkle handles it natively)
  • Added VoiceOver accessibility labels across all settings and onboarding views

v1.0.0 — March 30, 2026

Added

  • Native macOS menu bar app for Apple Music integration
  • Real-time now-playing detection via ScriptingBridge
  • Twitch chat bot with !song, !currentsong, !nowplaying, !lastsong, !last, !prevsong commands
  • Discord Rich Presence with dynamic album art
  • OBS stream widget via built-in WebSocket server
  • Automatic updates via Sparkle (DMG) or Homebrew
  • First-launch onboarding wizard
  • macOS Keychain credential storage
  • Bot command cooldowns and broadcaster bypass
  • Settings UI with NavigationSplitView sidebar
  • Diagnostic log export

For the full changelog, see CHANGELOG.md on GitHub.

On this page