Skip to content

v1.12.4 — Fix WS connect deadlock + availability transition log

Choose a tag to compare

@kayloehmann kayloehmann released this 20 Apr 17:57
f808392

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).

Dependencies

  • Vendored aioautomower library: minimum aiohttp >= 3.13.5, minimum aiogardenasmart >= 0.1.9.
  • Vendored dev dependencies upgraded: pytest 9, pytest-asyncio 1.3, pytest-cov 7, mypy 1.20, ruff 0.15.
  • CI upgraded to astral-sh/ruff-action@v4.