github sfox38/WhoDunnit v1.4.0
WhoDunnit v1.4.0

4 hours ago

Version 1.4.0

4 July 2026

  • Target lifecycle: Whodunnit now follows the entity it tracks. Renaming the tracked entity's entity ID updates the tracker automatically (the sensor keeps its own entity ID, settings, and history), and deleting the tracked entity from Home Assistant removes the Whodunnit entry along with it. Previously the sensor only noticed a missing target at startup and would otherwise keep showing its last state indefinitely.

  • Recorder storage: The history_log and cache_debug attributes are no longer written to Home Assistant's recorder database on every state change, which keeps long-term database growth down. Both attributes are still live on the entity, still work in templates and dashboard cards, and history_log still persists across restarts.

  • Performance: Each sensor's entity-registry listener now uses Home Assistant's keyed dispatcher instead of subscribing to every registry event in the system and filtering by hand - the same O(N)-listener cleanup that version 1.3.0 applied to the event-bus listeners.

  • Robustness: If the sensor platform fails to set up, the shared event listeners are now torn down instead of remaining subscribed with nothing consuming the cache. The internal loaded-entry refcount was removed; the count is now derived directly from the loaded entries, so the two can no longer drift apart.

  • Maintenance: The attribute-only debounce is now a tunable constant (ATTRIBUTE_CHANGE_THROTTLE, default 2 seconds) listed under Advanced Tuning. Removed redundant None-alias constants, consolidated the duplicated slug-to-title logic into a shared helper module, renamed private coroutines to Home Assistant's _async_ convention, and fixed the duplicate-tracker message to say "entity" rather than "device".

  • Testing: Test suite updated to Home Assistant 2026.7.1. Branch coverage is now measured in CI, and eleven new tests cover target renames and deletion, unknown users, user-cache expiry, corrupt restored history, cache-eviction edge cases, and setup-failure cleanup.

Don't miss a new WhoDunnit release

NewReleases is sending notifications on new releases.