PR #249: stale GATT recovery candidate
Candidate: 91ad55721628efe7f47efa4a25f57e484b849cf9, rebased onto v7.6.1 (4202c4a), including issue #297.
- Retains pending recovery across Home Assistant setup retries and coordinator replacement.
- Uses bounded public native cache clearing before reconnecting; recognizes chained BlueZ GattService1 failures.
- Preserves profile-driven setup, optional queries, encryption, transaction retries, and current video behavior.
Validation: independent scope/correctness review; full make check passed (2,366 Python tests passed, 79 skipped); GitHub Check, Hassfest, and HACS passed. Native ESPHome backend regressions verify host service/MTU eviction and changed handles after reconnect.
Hardware qualification is pending. Live stale-cache recovery has not been reproduced. Recovery cannot guarantee eviction of every proxy cache; ESPHome establishment failures that never return a client retain pending recovery for a later retry.
Packaged manifest: 7.6.2rc1.
ZIP SHA-256: ffc47a1aeb963e69003e5df2ec35495485593b3e11d74fb1a939882235df9a83.
Full Changelog: v7.6.1...v7.6.2-rc.1.pr249