You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fixed
Restored fast-path skip in _async_start_websocket. v1.12.2 removed the .locked() pre-check, which changed the behavior of a concurrent second caller from "skip immediately" to "queue on the lock". Under rare races (manual refresh overlapping an automatic one on a slow WS connect) the coordinator update loop could stall. Both the .locked() pre-check and the self._ws_connected double-check under the lock are now in place — TOCTOU-safe without losing the skip semantics.
Availability transition log re-enabled on the first transition. v1.12.2 moved the transition logging from the available property (which HA reads during the initial state write) into _handle_coordinator_update (which only fires on subsequent updates). _was_available stayed None through setup, so the first real offline/online transition matched the "no baseline yet" early-return and was silently swallowed. async_added_to_hass now seeds _was_available = self.available on entity add, both for GardenaEntity and AutomowerEntity.
Infrastructure
Dependabot configured for GitHub Actions and pip ecosystems (root, /aiogardenasmart, /aioautomower) with weekly schedule, grouped dev-dependency updates, and consistent commit-message prefixes.
Dependabot auto-merge workflow merges patch + minor updates automatically once CI passes; major updates require manual review.
Branch protection on main requires Ruff, Tests (Python 3.13), Library version sync, mypy, Hassfest, and HACS Action to pass before merging.
SECURITY.md rewritten with a Gardena-specific policy (reporting channel, supported versions, sensitive data inventory, MQTT-bridge hardening notes).