mirror of
https://github.com/gesellix/Bose-SoundTouch.git
synced 2026-08-18 08:36:13 +00:00
Adds XMLMigrated, HostsMigrated, ResolvMigrated, TelnetMigrated, and IsPaired as explicit fields on the summary so the UI can render partial-state cells (URLs flipped via telnet but the on-disk XML hasn't caught up; DNS interception in place but no CA installed; etc.) and surface pairing as its own precondition. IsMigrated remains backward-compatible — it is now the OR of the four migration axes. checkIsMigrated stops short-circuiting and writes each axis verdict unconditionally so a "partial" state on any axis is always visible to the UI even when another axis already reports the device migrated. populateDeviceInfo now derives IsPaired from the live :8090/info margeAccountUUID (clobbering any stale datastore copy), so a factory-reset speaker is correctly flagged as unpaired. Tests cover the per-axis verdicts independently and the IsPaired derivation in both the populated and empty live-info cases. This is the data layer for the upcoming three-axis "state view" panel on the migration tab. No frontend or behavior changes here. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>