From c4e3ad33add98381ac64717411feb476729e6575 Mon Sep 17 00:00:00 2001 From: Tobias Gesellchen Date: Sat, 5 Sep 2026 17:21:58 +0200 Subject: [PATCH] fix(player): use live device name in zone-candidate list HandleGetZoneCandidates read entry.Device.DeviceInfo (the immutable discovery-time snapshot) directly instead of Info(), missed when every other handler in this file was migrated to the live-name accessor. A speaker renamed after discovery kept showing its stale name in the "add to my zone" picker indefinitely. Co-Authored-By: Claude Sonnet 5 --- pkg/service/soundtouchweb/handler.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkg/service/soundtouchweb/handler.go b/pkg/service/soundtouchweb/handler.go index 3de7df5e..b60d914b 100644 --- a/pkg/service/soundtouchweb/handler.go +++ b/pkg/service/soundtouchweb/handler.go @@ -1368,11 +1368,16 @@ func (app *WebApp) HandleGetZoneCandidates(w http.ResponseWriter, r *http.Reques candidates := make(map[string]zoneCandidate) for _, entry := range app.DeviceSnapshot() { - if entry.Device == nil || entry.Device.DeviceInfo == nil { + if entry.Device == nil { continue } - candidates[entry.ID] = zoneCandidate{Info: entry.Device.DeviceInfo} + info := entry.Device.Info() + if info == nil { + continue + } + + candidates[entry.ID] = zoneCandidate{Info: info} } w.Header().Set("Content-Type", "application/json")