mirror of
https://github.com/gesellix/Bose-SoundTouch.git
synced 2026-08-18 16:46:17 +00:00
A server_url configured with a trailing slash (e.g. http://host:8000/) flowed verbatim into the BMX registry base ("{BMX_SERVER}/bmx/tunein"), so speakers were handed "http://host:8000//bmx/tunein" and requested "//bmx/tunein/v1/playback/station/{id}". The chi router does not match the doubled-slash path, so TuneIn playback returned 404 and the speaker reported INVALID_SOURCE. Confirmed from a reporter's diagnostic export. - Add NormalizeServerURL (trim whitespace + trailing slashes); apply in NewServer so the BMX base is always clean. - Normalize server_url at ingestion in main (flag + persisted) so the margeServerUrl/bmxRegistryUrl pushed to speakers stays clean too. - Normalize in the live settings-update path so a UI-saved trailing slash is trimmed before validate/persist. - Mount chi middleware.CleanPath as a defensive net: any "//" path collapses to "/" before routing, regardless of source. - Regression tests: NormalizeServerURL table + BMX registry must not emit "//bmx"/"//media" for a trailing-slash server_url. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>