- 'system default' conversion in SwitchDevice still exists (partially fixed) - wpctl interface abstraction not implemented
45 lines
2.3 KiB
Plaintext
45 lines
2.3 KiB
Plaintext
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
|
|
|
## [Unreleased]
|
|
|
|
### Fixed
|
|
- Device restore path passes invalid device name "system default" to SDL (should pass "" for default)
|
|
|
|
### Changed (Major Refactors)
|
|
- Mixer package: extract wpctl calls behind an interface
|
|
|
|
## [07112026-1710]
|
|
|
|
### Fixed
|
|
- Play() deadlocks when called before device is open (recursive SwitchDevice -> Play)
|
|
- Audio volume silently zeroed after switching output devices (Init used hardcoded 0.20; SwitchDevice did not restore saved volume)
|
|
- SwitchDevice not persisted to database across restarts (caller now saves to AppConfig)
|
|
- Stop() no-op when audio toggled off mid-playback (removed AudioEnabled guard from Stop)
|
|
- App shows "READY" before audio files finish downloading (state machine now gates READY on download completion via DOWNLOADING_ASSETS state)
|
|
- Download failure no longer silently allows READY (downloadFailed flag prevents premature READY)
|
|
- App restarts repeatedly after downloads complete (checkState re-navigated to HOME, closing DownloadDone channel twice -> panic)
|
|
- F2/F3 keybinds now work during DOWNLOADING_ASSETS (blocked only during early prerequisites: no wifi, no email, no license key)
|
|
|
|
### Known Issues
|
|
- Active device highlight incorrect when using default device
|
|
|
|
### Added
|
|
- Human-readable audio device names (Built-in Speakers, HDMI/TV/Monitor)
|
|
- Unit tests for mixer package (parseSinks, parseSinkLine, ConvertVolume)
|
|
- Regression tests for state machine (download gating, failure handling, prerequisite priority, non-blocking channel read)
|
|
- Regression tests for mixer (Stop with AudioEnabled=false, SwitchDevice edge cases)
|
|
- Regression tests for Home page (double-close guard, download failure path)
|
|
|
|
### Changed (Major Refactors)
|
|
- Mixer package: inject audio backend dependencies for testability
|
|
- SwitchDevice now takes *db.AppConfig to access saved volume
|
|
- Audio files moved from ~/.local/share/rhemawave/audio to ~/.radiantwave/audio
|
|
- State machine uses DOWNLOADING_ASSETS state before READY
|
|
- checkState() skips re-navigation when transitioning between HOME-mapped states
|
|
- network.init() logs warning instead of crashing when D-Bus is unavailable
|
|
- CI now runs go test before nix build
|