Tobias Gesellchen
01d702c745
Fix the Raspberry Pi install script (self-update, env variables)
v0.35.1
2026-02-22 01:03:50 +01:00
Tobias Gesellchen
7823b68bdd
Prime Spotify only on speaker boot/power_on
v0.35.0
2026-02-22 00:33:15 +01:00
Tobias Gesellchen
e1f3fc36c8
Fix Spotify link display
2026-02-22 00:07:52 +01:00
Tobias Gesellchen
d68599896d
Add Spotify primer
2026-02-21 23:40:45 +01:00
Tobias Gesellchen
d18b67d80f
Remove device-local Spotify primer
2026-02-21 23:40:45 +01:00
Tobias Gesellchen
8642ecfc5c
Prepare Spotify primer
2026-02-21 23:40:45 +01:00
Tobias Gesellchen
c37e94b5f8
Remove unused BaseURL
v0.34.0
2026-02-21 11:22:46 +01:00
Tobias Gesellchen
4e33f6948f
Add DNS discovery download
2026-02-21 11:22:46 +01:00
Tobias Gesellchen
743ff5e061
Add streamingoauth.bose.com to the intercepted DNS records
2026-02-21 11:22:46 +01:00
Tobias Gesellchen
ec8bbb2f86
Lint: cleanup
v0.33.0
2026-02-21 00:42:07 +01:00
Tobias Gesellchen
e75e2bea0c
Update Raspberry Pi installation script to include Spotify
2026-02-21 00:42:07 +01:00
Tobias Gesellchen
dd5aa2ad53
Disable HTML escaping in JSON response
2026-02-21 00:42:07 +01:00
Tobias Gesellchen
aced0f3f81
Use the Chi BasicAuth middleware
2026-02-21 00:42:07 +01:00
Tobias Gesellchen
a886518cad
Add example redirect URIs for both browser and ueberboese-app
2026-02-21 00:42:07 +01:00
Tim Van Wassenhove and Tobias Gesellchen
dc81b0aa81
feat: separate browser callback and mobile app confirm endpoints
...
- Add GET /mgmt/spotify/callback (no auth) for browser OAuth redirect
- Restore POST /mgmt/spotify/confirm (Basic Auth) for ueberboese mobile app
- Callback returns HTML success/error pages; confirm returns JSON
- Both call the same ExchangeCodeAndStore() logic
2026-02-21 00:21:52 +01:00
Tim Van Wassenhove and Tobias Gesellchen
c648027735
fix: OAuth callback as GET outside auth group, remove dead zeroconf flag, update .env.example
...
- Change /mgmt/spotify/confirm from POST to GET (Spotify redirects via GET)
- Move confirm endpoint outside Basic Auth group (code is single-use, needs client_secret)
- Remove --zeroconf-primer-enabled flag (no ZeroConf primer code on this branch)
- Add Spotify/mgmt env var documentation to .env.example
2026-02-21 00:21:52 +01:00
Tim Van Wassenhove and Tobias Gesellchen
fced88a8a6
feat: add management API endpoints matching ueberboese-app
2026-02-21 00:21:52 +01:00
Tim Van Wassenhove and Tobias Gesellchen
0ee673c097
feat: wire Spotify service into server
2026-02-21 00:21:52 +01:00
Tim Van Wassenhove and Tobias Gesellchen
395b2fec8e
feat: add Spotify OAuth service with token management
2026-02-21 00:21:52 +01:00
Tim Van Wassenhove and Tobias Gesellchen
be7e44e14b
feat: add Basic Auth middleware for management API
2026-02-21 00:21:52 +01:00
Tim Van Wassenhove and Tobias Gesellchen
a87783d8c6
feat: add Spotify, management, and ZeroConf CLI flags
2026-02-21 00:21:52 +01:00
Tobias Gesellchen
be017440b7
Add userInactivity event
2026-02-20 09:18:53 +01:00
Tobias Gesellchen
10de011c18
Simplify the PlayTTS method cmd
2026-02-19 08:46:55 +01:00
Tobias Gesellchen
f7b74db3ea
Make the linter happy
2026-02-19 08:44:26 +01:00
Tobias Gesellchen
72d75133c4
Capture server references before releasing mutex to avoid race condition
2026-02-19 08:44:26 +01:00
Tobias Gesellchen
e4c12471b4
Add more upstream domains to the intercept list
2026-02-19 08:44:26 +01:00
Tobias Gesellchen
3329149282
Add support for RADIO_BROWSER source
...
This implementation follows the reference from soundcork pull request #158 . It adds RADIO_BROWSER to the known providers and includes the service configuration in bmx_services.json. Documentation has also been added to explain how to use the RadioBrowser feature. Credits to @gmuth (https://github.com/gmuth ) for the original idea and implementation in soundcork. Reference: https://github.com/deborahgu/soundcork/pull/158
v0.32.0
2026-02-16 22:18:33 +01:00
Tobias Gesellchen
523ff0eb17
Fix deadlock in settings update and add efficient DNS settings validation
v0.31.4
2026-02-16 21:02:42 +01:00
Tobias Gesellchen
025e15d65c
Implement log throttling, loop prevention, and empty upstream handling in DNS discovery server
2026-02-16 21:02:42 +01:00
Tobias Gesellchen
7d140b3e2a
Fix TestMigrationAndCA by enhancing mock SSH client
...
This commit updates the mock SSH client in the handler tests to support the recently added verification steps. It now correctly handles stateful responses for /etc/hosts and properly responds to file existence and CA trust checks.
v0.31.3
2026-02-16 20:17:25 +01:00
Tobias Gesellchen
69210638e5
Add verification steps to speaker migration process
...
This update adds explicit verification checks after applying changes via XML, Hosts, and ResolvConf migration methods. The service now verifies that configuration files are correctly updated on the device before considering the migration successful, preventing unreliable states.
2026-02-16 20:17:25 +01:00
Tobias Gesellchen
6aef2b807d
Enhance ResolvConf migration to support multiple DHCP script variants
...
This update allows the service to correctly patch both /etc/udhcpc.d/50default and /opt/Bose/udhcpc.script (used in SoundTouch 10 firmware) for DNS redirection. It also improves robustness by adding file existence checks in rc.local and ensures clean state by reverting to .original backups during migration.
v0.31.2
2026-02-16 18:52:25 +01:00
Tobias Gesellchen
95f5e9c831
fix(setup): prevent and clean up corrupted rc.local with cat error message
v0.31.1
2026-02-16 18:20:16 +01:00
Tobias Gesellchen
7337296ae9
refactor(setup): reduce cyclomatic complexity of RevertMigration
v0.31.0
2026-02-16 18:04:28 +01:00
Tobias Gesellchen
92a5d3592c
feat(setup): replace obsolete resolv method with persistent DHCP-aware DNS hook
2026-02-16 18:04:28 +01:00
Tobias Gesellchen
2f04af872b
feat(setup): implement Aftertouch Hook (DHCP-aware DNS redirection); update UI and tests; docs now use aftertouch.resolv.conf
2026-02-16 18:04:28 +01:00
Tobias Gesellchen
9479d6d11d
Fix missing request body in recorded proxy interactions
v0.30.0
2026-02-16 16:30:41 +01:00
Tobias Gesellchen
f687ba0d82
go mod tidy
2026-02-16 12:45:04 +01:00
Tobias Gesellchen
ab2bf0731a
Add DNS-based discovery and migration via /etc/resolv.conf
v0.29.0
2026-02-16 12:18:06 +01:00
Tobias Gesellchen
cafaba1be0
Update SOUNDTOUCH-SERVICE.md with recent features (Soundcork proxy, session archiving, enhanced redaction)
v0.28.0
2026-02-15 23:54:14 +01:00
Tobias Gesellchen
93082d2cdc
Update root endpoint JSON response with AfterTouch and docs link
2026-02-15 23:47:10 +01:00
Tobias Gesellchen
087006c483
Add regression test for settings persistence
v0.27.1
2026-02-15 23:28:45 +01:00
Tobias Gesellchen
b7013a5ec8
Apply 'Redact Sensitive Headers' to recordings
v0.27.0
2026-02-15 23:12:19 +01:00
Tobias Gesellchen
7d76b3fab2
Implement dynamic Bose proxy with detailed origin logging and Soundcork fallback
v0.26.0
2026-02-15 22:50:13 +01:00
Tobias Gesellchen
6ca206053f
Add session download feature to web UI
2026-02-15 22:20:16 +01:00
Tobias Gesellchen
090eb162fb
Fix TypeError in Web UI by renaming proxy-domain to soundcork-url
...
This commit fixes a JS error in showSummary and migrate functions where they were still trying to access the UI element by its old ID 'proxy-domain' instead of the new 'soundcork-url'.
v0.25.1
v0.25.2
2026-02-15 22:01:58 +01:00
dependabot[bot] and Tobias Gesellchen
972824e07f
ci(deps): bump the actions-core group with 3 updates
...
Bumps the actions-core group with 3 updates: [actions/checkout](https://github.com/actions/checkout ), [actions/configure-pages](https://github.com/actions/configure-pages ) and [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact ).
Updates `actions/checkout` from 4 to 6
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v4...v6 )
Updates `actions/configure-pages` from 4 to 5
- [Release notes](https://github.com/actions/configure-pages/releases )
- [Commits](https://github.com/actions/configure-pages/compare/v4...v5 )
Updates `actions/upload-pages-artifact` from 3 to 4
- [Release notes](https://github.com/actions/upload-pages-artifact/releases )
- [Commits](https://github.com/actions/upload-pages-artifact/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-core
- dependency-name: actions/configure-pages
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-core
- dependency-name: actions/upload-pages-artifact
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-core
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-15 21:57:12 +01:00
dependabot[bot] and Tobias Gesellchen
1e2148d53b
deps(deps): bump the golang group with 4 updates
...
Bumps the golang group with 4 updates: [golang.org/x/crypto](https://github.com/golang/crypto ), [golang.org/x/mod](https://github.com/golang/mod ), [golang.org/x/net](https://github.com/golang/net ) and [golang.org/x/tools](https://github.com/golang/tools ).
Updates `golang.org/x/crypto` from 0.47.0 to 0.48.0
- [Commits](https://github.com/golang/crypto/compare/v0.47.0...v0.48.0 )
Updates `golang.org/x/mod` from 0.32.0 to 0.33.0
- [Commits](https://github.com/golang/mod/compare/v0.32.0...v0.33.0 )
Updates `golang.org/x/net` from 0.49.0 to 0.50.0
- [Commits](https://github.com/golang/net/compare/v0.49.0...v0.50.0 )
Updates `golang.org/x/tools` from 0.41.0 to 0.42.0
- [Release notes](https://github.com/golang/tools/releases )
- [Commits](https://github.com/golang/tools/compare/v0.41.0...v0.42.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-version: 0.48.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: golang
- dependency-name: golang.org/x/mod
dependency-version: 0.33.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: golang
- dependency-name: golang.org/x/net
dependency-version: 0.50.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: golang
- dependency-name: golang.org/x/tools
dependency-version: 0.42.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: golang
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-15 21:56:17 +01:00
Tobias Gesellchen
9a070da1ef
Fix data race in RecordMiddleware and improve recorder robustness
...
This commit addresses the data race detected in TestRecordMiddleware: - Updated Recorder.Record to clone Request and Response objects (including bodies) before background processing. - Ensures background workers can safely access data after the main request handler has finished. - Enabled synchronous recording in handler tests to ensure deterministic results and avoid race conditions.
v0.25.0
2026-02-15 21:51:55 +01:00
Tobias Gesellchen
d4b518da23
Fix proxy and recorder tests by ensuring synchronous recording during testing
...
This commit addresses the test failures in pkg/service/proxy: - Ensures synchronous recording in tests by setting RECORDER_ASYNC=false. - Adds a Close() method to the Recorder for proper cleanup. - Fixes a panic in TestRecorder_Record_Redaction caused by race conditions.
2026-02-15 21:51:55 +01:00