Releases: dummylabs/thewatchman
v0.8.6
v0.8.5
What's new
🚀 Improvements:
- Improved management of ignored items and files in the configuration; replaced comma-separated lists with UI pills(#310).
- Added the
force_parsingaction parameter. When set totrue, the parser explicitly bypasses cached results and forces a full re-parsing of all configuration files (#291). - The maximum file size limit for a single configuration file can now be disabled in the integration options screen (#265).
- Deprecated the
parse_configaction parameter. The new parser now automatically detects modified config files with near-zero overhead, as results for unmodified files are cached (#291).
🐛 Bugfixes:
- Purpose-specific condition intents are now properly suppressed by the parser (#306).
- Improved
script_idresolution for automation checks. Thanks @FaHuSchmidt! (#304) - Entities with the state
disabled(not to be confused with those disabled in the entity registry) no longer trigger false positives (#296). - Introduced a stateless domains list. Entities from these domains will not trigger false positives for the
unknownstate (covers #286) (#294).
🛠️ Other:
- parser-cli to show cached parsing results (#307)
Note
The deprecation of the parse_config parameter might force the Actions window into YAML mode. To restore UI Mode, just remove text from Action data field. This issue has also been added to the FAQ in the documentation.
Full list of changes
- feat: migrate ignored items/files to SelectSelector chip input (#310) (81974e9)
- fix: suppress purpose-specific condition intents as false positives (#306) (#309) (6ebeeb1)
- Merge pull request #308 from dummylabs/tests/report-consistency-tests (3b9e44a)
- tests: add report text/YAML consistency tests (e4166a4)
- Fix script unique_id resolution for automation checks (#304) (1ac18af)
- feat: parser-cli to show cached parsing results (#307) (8a57763)
- fix: correctly cancel delay timer (#303) (37a826e)
- fix: move report button under Controls pane in Service Info (#302) (bb91d8e)
- fix: extend uid migration to button entity to prevent _2 suffix (#301) (019f958)
- feat: improve visibility of
create_filereport option in UI action editor (b3d308b) - fix flaky snapshots testing (1146994)
- Update conftest.py (6e61d94)
- fix test env (1acb897)
- fix test snapshots (43f16b2)
- ref: flatten tests directory structure to fix snapshot path resolution (7425698)
- chore: debug CI snapshots with update and diff (b9266f6)
- chore: force sync snapshot files and ensure correct location (c3942fe)
- improved test env stability (be87cf8)
- fix: correct processing of "disabled" state, fix for #296 (#300) (2bc8458)
- ref: report functions decoupling (#299) (e0d62d3)
- fix: remove report deprecated params from bl (#297) (4e82401)
- Update README.md (b979b8c)
- Update README.md (9774728)
- Update README.md (e8ef551)
- Update README.md (8fc69a7)
- bump version to 0.8.5 (2d9f9a4)
- fix: replace references to 'integration_blueprint' with 'watchman' (#295) (256456b)
- fix: extend list of STATELESS_DOMAINS (special case for
unknownstate) (#294) (32a1adb) - ref: remove unused return values from async_parse (#293) (28612ae)
- feat: force_parsing mode in watchman.report (#291) (d2fe433)
- chore: updated translations, added test for missing translation keys (#290) (a6ba10a)
- feat: option to bypass max file size limit for parser, reported in #265 (#289) (f6ad8ef)
- fix: ignore unknown state for scenes (#288) (1006ce9)
v0.8.5-rc1
v0.8.4
What's new
🚀 Improvements:
- Moved the "Ignored Labels" setting from the Service Info screen to configuration options (now with multiselect control)
- New
set_ignored_labelsaction to manage ignore rules for your automations - Debug log obfuscation can be turned off in configuration settings
- Icons added to the report to distinguish between groups, templates, and regular files
🐛 Bugfixes:
- Fixed a lot of parser false-positives
- Fixed an issue where entities were misidentified as actions (#266)
- Dashboard files with extensions were skipped by parser (e.g.
/config/.storage/lovelace.my_card) - Fixed a bug where the ignored files pattern was not applied to files within the
.storagefolder (#267)
🛠️ Other:
- Significantly improved sensor update performance for systems with 1K+ entities.
- Parser performance improvements
- Breaking change: the
text.watchman_ignored_labelsentity is deprecated and will be removed in future versions. Use newset_ignored_labelsaction to manage ignore rules for your automations instead.
Full list of changes
- feat: icons for sources in the report (#274) (2eab21b)
- tests: improving robustness within teardown phase (#268) (11a466b)
- fix: apply ignored patterns to the whitelisted files in
.storage(#267) (ff4a8e4) - fix: misidentification entity as action (#266) (b42f4e3)
- fix: parse lovelace files regardless of their naming convention (#262) (b3a2ab1)
- fix: parser bug with redundant regexp definitions + refactoring #256 (#261) (35d27e9)
- perf: incremental state update in coordinator (#259) (86cec5f)
- fix: prevent false positives with hyphens and special chars #252 (#257) (884217b)
- exclude logger: key from parsing (#255) (89b109b)
- feat: user-friendly control of ignored labels setting (#254) (4cb78c1)
- fix: nested context detection (#247) (#251) (3a5326a)
- fix: support registry-disabled automations (#250) (f8a9784)
- feat: added UI option to control logs obfuscation (99d3e15)
- perf: switch to
async_track_state_change_eventfor performance reasons (1149ed9) - chore: improved tests cleanup (511ca4e)
- perf: caching coordinator.FilterContext class to speed-up async_update_data (2d6fb10)
- chore: code cleanup (7ec1a52)
- chore: improve log obfuscation (c423706)
- chore: coordinator and hub refactoring (afce302)
- chore: improved test coverage (d0b8253)
- feat: implemented reset-on-version-mismatch migration strategy for DB cache #246 (531f92d)
- chore: shrink test time (d9503d1)
- parser fix: ignore events from
triggerandtriggerskeys #224, #231 (30db80c) - add default
notification_idfor the report, closes #203 (8417aab) - fix for jinja template markers in entity definitions, closes #89 (#273) (db80910)
- fix: support multiple files for an entity in the report (#272) (eeacf91)
- fix: removed unnecessary default values for service (UI settings) (#271) (3764a13)
v0.8.4-rc3
What's new
- Fixed an issue where entities were misidentified as actions (#266)
- Fixed a bug where the ignored files pattern was not applied to files within the
.storagefolder (#267)
Full list of changes
- tests: improving robustness within teardown phase (#268) (11a466b)
- fix: apply ignored patterns to the whitelisted files in .storage (#267) (ff4a8e4)
- fix: misidentification entity as action (#266) (b42f4e3)
Previous Release Candidate changes
v0.8.4-rc2
What's new
- Moved the "Ignored Labels" setting from the Service Info screen to configuration options.
- Added a new service
watchman.set_ignored_labelsto change this setting via automations. - Fixed parser bugs.
- Significantly improved sensor update performance for systems with 1K+ entities.
Full list of changes
- fix: parse lovelace files regardless of their naming convention (#262) (b3a2ab1)
- fix: parser bug with redundant regexp definitions + refactoring #256 (#261) (35d27e9)
- perf: incremental state update in coordinator (#259) (86cec5f)
- fix: prevent false positives with hyphens and special chars #252 (#257) (884217b)
- exclude logger: key from parsing (#255) (89b109b)
- feat: user-friendly control of ignored labels setting (#254) (4cb78c1)
- fix: nested context detection (#247) (#251) (3a5326a)
- fix: support registry-disabled automations (#250) (f8a9784)
v0.8.4-rc1
v0.8.4-rc1 Highlights
- removed false positives for triggers (#224, #231)
- debug log obfuscation can be turned off in configuration settings
- performance improvements
All changes
- added UI option to control logs obfuscation (99d3e15)
- switch to
async_track_state_change_eventfor performance reasons (1149ed9) - improved tests cleanup (511ca4e)
- caching coordinator.FilterContext class to speed-up async_update_data (2d6fb10)
- code cleanup (7ec1a52)
- improve log obfuscation (c423706)
- coordinator and hub refactoring (afce302)
- improved test coverage (d0b8253)
- implemented reset-on-version-mismatch migration strategy for DB cache #246 (531f92d)
- shrink test time (d9503d1)
- bump version to 0.8.4-rc1 (64811e0)
- parser fix: ignore events from
triggerandtriggerskeys #224, #231 (30db80c) - add default
notification_idfor the report, closes #203 (8417aab)
v0.8.3
v0.8.3 Highlights:
- 🚫 Ignore Disabled Automations: Added the ability to ignore entities in disabled automations and scripts.
- 🏷️ HA Labels: Use Home Assistant Labels to dynamically include or exclude entities from the report.
- 🧩 UI Helpers Support: Now scans the contents of Groups and Templates created manually via UI Helpers.
- ⚡ Instant Results: Report data is now returned directly in Developer Tools -> Actions (no need to hunt for the text file).
- 🩺 Extended Diagnostics: A wide range of new diagnostic sensors added to the Device Info screen.
- ⚙️ Total Overhaul: The parser and architecture have been rewritten from scratch to enable these features and improve performance.
Full list of changes:
- Ignore disabled automations: Added the ability to exclude entities declared in disabled automations and scripts from the report @bwibwi13 (#211).
- Support for HA Labels: You can now use Home Assistant labels to mark entities that should be ignored/excluded from the report @bexelbie (#219). 📌 Tip: The special entity
text.watchman_ignored_labelscan be used in automations to dynamically manage ignored entities (for those who have been asking for this). - View report within Perform Action screen: Report data is now displayed directly in the Perform Action screen, eliminating the need to download files from the config folder.
- Advanced background parsing: Implemented a highly optimized and conservative background parsing mechanism designed to minimize system load, addressing performance issues reported on some setups in v0.8.1.
- Report button: Device info page now has "Report" button for more convenient way to run a report.
- Extended
.storagesupport: The parser now processescore.config_entriesto detect UI-created entities like groups and templates. - Parser rewritten from scratch: The new parser now utilizes standard libraries for loading YAML and JSON files. This ensures a better understanding of configuration file structures (keys/values) and enables full implementation of "automation awareness".
- CLI Parser Version: A CLI version of the parser has been developed. It will allow for more transparent troubleshooting and parsing quality assessment on any configuration files.
- Context info: The service response data (visible as YAML in Developer Tools -> Actions) now includes the specific context where a flagged entity was found (e.g., automation, script, UI helper group, or UI helper template). This is not working for text report version.
0.8.3-rc3
Watchman 0.8.3-rc3
This version address issues with false positives found in core.config_entries file located in .storage.
Even though the .storage folder is excluded from parsing, this file (along with a few others) contains useful information that can help Watchman identify problematic entities. A good example of such data is groups and templates created in the Helpers UI section.
🐛 Bugfixes
- Improved parser logic for
core.config_entries. Now only entries ingroupandtemplatedomains are analyzed, which should reduce the number of false positives (#240)
🚀 Enhancements
- The service response data (visible as YAML in Developer Tools -> Actions) now includes the specific context where a flagged entity was found (e.g., automation, script, UI helper group, or UI helper template).
0.8.3-rc2
Watchman 0.8.3-rc2
Bug Fixes
- Fix race condition on startup: Resolved an issue where the integration could fail to unload correctly if Home Assistant was still starting up (#237).
- Parser improvements: Refined parser heuristics to address false positives reported in #231.
Optimizations & Changes
- Database optimization: Frequently updated statistics have been moved from the main database to a separate file. This reduces SQLite write operations and improves overall reliability (#232).
- SQLite Journal Mode: Changed database journal mode to TRUNCATE to mitigate potential locking and corruption issues (#232).
- Configuration: The default list of ignored files is now empty for new installations.
I’m excited to present Watchman 0.8! While the integration looks almost identical on the surface, the codebase has undergone a deep internal refactoring. This "under-the-hood" overhaul lays the foundation for much easier maintenance and faster implementation of new features in the future.
- Ignore disabled automations: Added the ability to exclude entities declared in disabled automations and scripts from the report @bwibwi13 (#211).
- Support for HA Labels: You can now use Home Assistant labels to mark entities that should be ignored/excluded from the report @bexelbie (#219). 📌 Tip: The special entity
text.watchman_ignored_labelscan be used in automations to dynamically manage ignored entities (for those who have been asking for this). - View report within Perform Action screen: Report data is now displayed directly in the Perform Action screen, eliminating the need to download files from the config folder.
- Advanced background parsing: Implemented a highly optimized and conservative background parsing mechanism designed to minimize system load, addressing performance issues reported on some setups in v0.8.1.
- Report button: Device info page now has "Report" button for more convenient way to run a report.
- Extended
.storagesupport: The parser now processescore.config_entriesto detect UI-created entities. - Parser rewritten from scratch: The new parser now utilizes standard libraries for loading YAML and JSON files. This ensures a better understanding of configuration file structures (keys/values) and enables full implementation of "automation awareness".
- CLI Parser Version: A CLI version of the parser has been developed. It will allow for more transparent troubleshooting and parsing quality assessment on any configuration files.