What's changed
- One path decision per candidate connect (
max_attempts=1in the candidate loop): under Home Assistant, retries insideestablish_connectioncould silently fail over to the strongest-signal — possibly unbonded — proxy mid-attempt (habluetooth rescores paths on every attempt; bleak-retry-connector'sble_device_callbackis vestigial in 4.6.0). Failover now belongs to the candidate loop, so an unbonded proxy can no longer hold the device's single central slot through repeated SMP timeouts. Driven by a real field incident (device unreachable >20 min). connected_sourceis reset on disconnect/cleanup — callers never read a stale path.
PyPI: https://pypi.org/project/pymadoka-ng/0.3.7/
Full Changelog: v0.3.6...v0.3.7