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