Prepare release 26#287
Merged
Merged
Conversation
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.
This was referenced Jun 11, 2026
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).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
activityinstead ofstatefor start and pause actions (Home Assistant 2026.x forward compatibility)iot_classand minimum Home Assistant 2026.1.0vacuum_statereturn type toVacuumActivityin system detailshass.async_create_taskinstead ofloop.create_task().__await__()