Skip to content

fix(deploy): make helper deployment reliable and isolated - #3

Merged
Auda29 merged 4 commits into
masterfrom
fix/helper-deploy-isolation
Jul 28, 2026
Merged

Auda29 merged 4 commits into
masterfrom
fix/helper-deploy-isolation

Conversation

@Auda29

@Auda29 Auda29 commented Jul 28, 2026

Copy link
Copy Markdown
Owner

What changed

  • create Home Assistant helpers with the generated ST entity ID, then restore the human-readable name via the update API
  • verify the ID returned by Home Assistant and clean up partial creations on mismatch or rename failure
  • scope helper discovery and deletion to the program currently being deployed
  • add unit coverage plus a hard E2E deployment with a {persistent} variable
  • assert that a helper belonging to another ST program remains untouched
  • rebuild the committed HACS frontend bundle

Root cause

Home Assistant derives a storage helper's immutable ID from the name supplied at creation. The deploy path sent only the friendly name, so the generated helper could never match the entity ID expected by transpilation and verification. In addition, helper sync loaded every st_* helper on the instance, so deploying one program could delete helpers owned by another.

Impact

Programs using {persistent}, {throttle}, or generated timer helpers can now create the expected entities instead of failing verification and rolling back. Helper cleanup no longer targets other deployed programs.

Validation

  • 226/226 frontend unit tests
  • TypeScript typecheck
  • ESLint: 0 errors (71 existing warnings)
  • production bundle build and committed-bundle drift check
  • GitHub Actions E2E is the merge gate; no local Docker/HA test was run, per request

@Auda29
Auda29 marked this pull request as ready for review July 28, 2026 13:58
@Auda29
Auda29 merged commit 7398f10 into master Jul 28, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant