mirror of
https://github.com/gesellix/Bose-SoundTouch.git
synced 2026-08-18 16:46:17 +00:00
ListAllDevices used to let an entry under accounts/default/devices/<id> replace the real-account entry for the same physical device whenever the default-side DeviceInfo.xml had a non-empty <name>. The consistency check then reported the device under "account default" even while the speaker was happily POST/PUT'ing to its actually-paired account — the operator saw "preset slot 1 present on speaker but missing from service" for slots that very obviously did exist, just under the real account they couldn't see. The dedup now treats "default" as a fallback placeholder: sorts it to the back of the iteration, and never lets it replace a real-account entry. A default-only device (fresh discovery, never paired) is still returned exactly as before. Also adds an orphan-detection finding in the consistency check that walks accounts/default/devices/ directly and flags entries whose deviceID is also paired under a real account, with a copy-pasteable rm -rf hint. We don't delete automatically — destructive filesystem actions need explicit operator consent (CLAUDE.md). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>