You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: align validator, traces, and update tools with HA 2026.7 (#1735)
* feat: align validator, traces, and update tools with HA 2026.7 (#1726)
- best_practice_checker: flag the ten purpose-specific trigger/condition
keys renamed in 2026.7 (old keys no longer load) with the new key named
inline; flag deprecated trigger options.behavior values any/last
(renamed to each/all, repair-issue parity; conditions keep any/all);
device-trigger warning now names purpose-specific triggers with targets
as the preferred replacement
- ha_config_set_automation: document purpose-specific trigger/condition
config shape as valid input
- traces: stop dropping per-step error fields on condition and trigger
steps -- HA 2026.7 always records template errors in traces (core
#172917) and numeric entity trigger errors (core #175093)
- domain_handlers: device_tracker gains in_zones and tracking_type
(2026.7 attributes); lat/long may be absent under presence-scanner
tracking
- new ha_manage_updates tool: batch install by category mirroring the
2026.7 Update-all UX (core/OS/supervisor excluded from category mode by
design, skipped updates never included), plus skip/clear_skipped;
explicit-id mode verifies entities exist (HA service calls no-op
silently on unknown entities); per-item batch failure results
- unit tests for all new checker rules; e2e tests for ha_manage_updates
validation and batch semantics
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* refactor: merge ha_get_updates into ha_manage_updates with Read Only Mode wiring
Tool consolidation per AGENTS.md: one update tool with action=
list (default) | get | install | skip | clear_skipped. ha_get_updates
is removed (not deprecated); list/get behavior, release-notes modes,
and the 404 mapping carry over unchanged. All docstring, suggestion,
and test references swept (README/DOCS regenerate via sync-tool-docs).
Read Only Mode: ha_manage_updates joins READ_ONLY_EXEMPT_TOOLS with an
_updates_write classifier — list/get stay visible and callable while
the mode is on; install/skip/clear_skipped are blocked at call time
(fail-closed for unknown actions). Exempt-table pin test and
classifier parametrize coverage added.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix: guard renamed-trigger-key lookup against non-str platform (mypy)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix: annotation convention, drift-guard manifests, fatal-error propagation (review round 1)
- ha_manage_updates: destructiveHint True per the exactly-one-hint
convention (test_tool_annotations); installs are not reversible
- test_read_only.py: add ha_manage_updates to all three schema-drift
manifests (module, inspected args, gated-or-read partition)
- batch install loop: HomeAssistantConnectionError/HomeAssistantAuthError
now propagate instead of collecting N identical per-item failures
(Gemini review); per-item collect stays broad for service-level errors
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* test: dispatch happy-path and trace error-propagation coverage
- mocked-client unit tests for category resolution + install dispatch
(can_install filter, backup flag), mixed exist/missing aggregation with
per-item ENTITY_NOT_FOUND, and connection-error propagation out of the
batch loop
- _format_detailed_trace tests for per-step error surfacing on condition
and trigger steps (2026.7 always-recorded template errors) plus the
no-error negative
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix: derive batch success from per-item outcomes
Top-level success was hardcoded True even with zero succeeded items —
an all-failed batch read as success to an LLM branching on the flag.
Now failed == 0 (all-pass, zero-requested counts as success), matching
the aggregate convention in tools_entities/tools_energy. Tests assert
the aggregate flag on the mixed and all-missing paths.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix: assert context key at the error-response top level in mixed-batch test
create_error_response spreads context keys at the response's top level,
not under error.context.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: kingpanther13 <kingpanther13@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
0 commit comments