fix: review sweep — target-republish re-apply, icon restore, unload cleanup, HA 2026.8 interop - #17
Merged
Merged
Conversation
Both survived unload until restart; re-adding the entry re-registered the same panel path. Static path registration stays (HA has no removal API; harmless). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…lease Two halves of the same subscription gap: - Explicit-source rules only subscribed to sources, so a target integration's own state write (which rebuilds the attribute bag) wiped the decoration until the source next changed. Track resolved targets too and re-apply on their events; the pre-flight no-op check keeps re-entrancy convergent. Also fixes late-appearing literal targets of explicit-source rules. - Release popped the icon attribute outright, dropping entities with their own icon (helper icon:, integration-published) to the domain default glyph until their next republish. Record the owner's icon at claim time (refreshed when the owner republishes mid-rule) and write it back on release; pop only when no original existed. Behavior change: an active icon-setting rule now re-asserts over a target-integration icon write immediately rather than at the next source change. Clear-time guarantee (never touch a value we didn't write) is unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…rules Decoration values and mapping keys get the same 255-char bound as source_attribute (icon is recorder-persisted). Rules failing validation at load now log WARNING with id/targets/reason — with PREVENT_EXTRA, a downgrade silently discarded rules written by a newer version. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
'Saved N rules.' rendered in the error banner with role=alert; now a success-styled role=status notice. Class comment claimed whole-config export keeps ids — it strips them (identity re-mint is a TODO item). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Since frontend PR #53151 the entities card manages inline color on ha-state-icon for all domains. We win only because the styleMap part commits before the stateObj part; pin that with tests for the decorated and undecorated cases and document the dependency and the release-time styleMap staleness edge. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
README: 2026.8 state-color interop, registry-icon glyph limitation, compat floor aligned to hacs.json, drop inaccurate debounce claim. DESIGN: PREVENT_EXTRA reality, immediate saves, politeness marked not-implemented, injector target-tracking + icon restore. TODO: open decisions (ALLOW_EXTRA, YAML ids, evaluator parity) and suggested changes to human-only files. CHANGELOG: Unreleased section. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Merged
9 tasks
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.
Summary
iconattribute outright, dropping icon-customized entities to the domain default glyph. The injector now tracks resolved targets and restores the owner's pre-rule icon on release.Test plan
.venv/bin/pytest -q— backend tests pass (143, up from 131; also green against HA 2026.8.0b3 in a separate venv)cd frontend && npm run typecheck— zero TypeScript errorscd frontend && npm test— frontend tests pass (118)cd frontend && npm run build— committed bundles match a fresh buildManual / UI verification: dev container on HA 2026.8.0b4 (rc image): explicit-source decoration survives target toggles across entities/glance/tile cards; rule color beats per-row
color:and 2026.8 default state colors;color: nonebehaves; disable/delete restores the helper's ownmdi:lampicon immediately; integration removal drops the sidebar panel without restart.Risk
state-badgetemplate part order — pinned by test, called out in painter.ts.Suggested follow-ups in human-only files (per AGENTS.md, not touched here): release.yml tag↔manifest version gate; AGENTS.md test count 100→143;
min_ha_versionmanifest key is unread by HA (hacs.json is the floor).Docs touched
README.mdCHANGELOG.mdTODO.mdDESIGN.mddocs/examples.md🤖 Generated with Claude Code