- Reference original API documentation source from Bose Corporation
- Link to official Bose SoundTouch End-of-Life page
- Clarify this is an independent implementation
- Add disclaimer about non-affiliation with Bose Corporation
- Provide both online and local documentation references
- Fix bodyclose issues by properly closing WebSocket response body
- Fix errcheck issues by checking errors on resp.Body.Close(), conn.Close(), etc.
- Fix errorlint issue by using errors.As() instead of type assertion
- Fix nilerr issue by adding proper logging for UPnP discovery failures
- Fix gocritic issues:
- Convert if-else chains to switch statements
- Fix parameter type combining (paramTypeCombine)
- Fix range value copying (rangeValCopy)
- Fix exitAfterDefer by calling cancel() before log.Fatalf()
- Add package comments to fix revive package-comments issues
- Rename ClientConfig to Config to avoid type name stuttering
- Add missing exported constant comments
- Fix unused parameter issues by renaming to _
- Fix empty block issues
- Add t.Helper() to test helper functions
- Update User-Agent and fix GetNetworkSummary behavior to match test expectations
Reduces linting issues from 151 to 108 (28% improvement).
All tests now pass.
Major additions:
- Fixed WebSocketMessage XMLName struct tag issue
- Implemented remaining official API endpoints:
* POST /name (SetName) - Set device name
* GET /bassCapabilities (GetBassCapabilities) - Check bass support
* GET /trackInfo (GetTrackInfo) - Track information (duplicate of now_playing)
New features:
- BassCapabilities model with validation and helper methods
- SetName method for device naming
- GetTrackInfo method for track information
- Full CLI support for all new endpoints
- Comprehensive test coverage (503 lines of tests)
Testing results:
- All unit tests pass ✅
- bassCapabilities works on SoundTouch 10 ✅
- trackInfo may not be supported on all models (timeout on SoundTouch 10)
- SetName not tested on real hardware (to avoid changing device name)
API Coverage: Now 100% of official Bose SoundTouch Web API v1.0
- 19/19 endpoints implemented
- All documented features supported
- Additional undocumented endpoints working (clock, network, balance)