Skip to content

Prepare release 26#287

Merged
elad-bar merged 3 commits into
developfrom
prepare-release-26
Jun 4, 2026
Merged

Prepare release 26#287
elad-bar merged 3 commits into
developfrom
prepare-release-26

Conversation

@elad-bar

@elad-bar elad-bar commented Jun 4, 2026

Copy link
Copy Markdown
Collaborator
  • Use vacuum activity instead of state for start and pause actions (Home Assistant 2026.x forward compatibility)
  • Align HACS metadata with the integration manifest: Cloud Push iot_class and minimum Home Assistant 2026.1.0
  • Correct vacuum_state return type to VacuumActivity in system details
  • Schedule connectivity status handlers with hass.async_create_task instead of loop.create_task().__await__()
  • Remove unused legacy schedule service schema module

Elad Bar added 3 commits June 4, 2026 10:47
- Changed vacuum actions to use `activity` instead of `state` for start and pause functions, ensuring compatibility with Home Assistant 2026.x.
- Updated HACS metadata to reflect the new `iot_class` as Cloud Push and set minimum Home Assistant version to 2026.1.0.
- Corrected the return type of `vacuum_state` to `VacuumActivity` in system details.
- Updated CHANGELOG.md to document these changes.
- Introduced additional configuration options for user customization.
- Improved error handling for connection issues, providing clearer feedback to users.
- Updated CHANGELOG.md to document the new features and fixes.
…remove legacy code

- Updated connectivity status handlers to use `hass.async_create_task` for better performance.
- Removed unused legacy service schema module to streamline the codebase.
- Updated CHANGELOG.md to reflect these changes.
@elad-bar
elad-bar merged commit a59ca0e into develop Jun 4, 2026
1 check passed
raouldekezel added a commit to raouldekezel/dolphin-robot that referenced this pull request Jun 29, 2026
Replaces the `loop.create_task(coro).__await__()` fire-and-forget anti-
pattern in both status-changed callbacks with `entry.async_create_task(
hass, coro)`. The pre-fix code threw away the returned awaitable
iterator: the task was scheduled with no reference held by the
coordinator, exceptions were silently lost, and the task was never
cancelled when the config entry unloaded — which let stale callbacks
race with the next setup after a reload.

`ConfigEntry.async_create_task` (HA Core 2024+) ties the task to the
entry lifecycle (cancelled on reload) and routes uncaught exceptions
through the normal task-done handler. Strictly better than upstream PR
sh00t2kill#287's `hass.async_create_task` (loop-scoped, cancelled only
on full HA shutdown — a per-entry reload still leaks them).

- managers/coordinator.py: rewrite `_load_signal_handlers` to use the
  entry-scoped helper for both `on_api_status_changed` and
  `on_aws_client_status_changed`; rebind `self.config_entry` to a local
  `entry` so the two `async_on_unload` calls right below also flow
  through the same reference
- tests/test_bug_09_entry_scoped_tasks.py: 3 behavioural tests (CHORE-02
  compliant — no `inspect.getsource`/regex): (1) wire-up registers both
  dispatcher callbacks and the registration itself never fires
  `loop.create_task`; (2) firing each callback calls
  `entry.async_create_task(hass, coro)` exactly twice and never
  `loop.create_task` nor `hass.async_create_task`; (3) the disconnect
  functions returned by `async_dispatcher_connect` are handed to
  `entry.async_on_unload` so the dispatcher subscriptions tear down on
  entry reload

Closes #15. Supersedes the stale PR #16 (created 2026-06-11 — 18 days
of `deploy` work landed since, including BUG-13 / HARD-12 / HARD-13 /
the CHORE-02 source-tests purge: rebuilding atop fresh `origin/deploy`
is cleaner than rebasing 15k+ lines).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant