Skip to content

Releases: L3DigitalNet/ha-light-controller

v0.4.1

16 Apr 11:33

Choose a tag to compare

v0.4.1: Codex Review Remediation

Comprehensive quality sweep addressing findings from 9 independent code reviews (product-logic, documentation, release-readiness, CI/CD, dependency, test-suite, observability, incident-readiness, AI-workflow). 15 bugs fixed, 324 tests at 98%+ coverage.

Fixed

  • Color verification now correctly detects single-mode mismatches (RGB-only or kelvin-only). Retries fire where they previously didn't.
  • Group-based presets now apply per-entity overrides to expanded member lights
  • Preset editing preserves entity IDs (no more button/sensor churn on edit)
  • Config flow editor round-trips preset-level defaults for service-created presets
  • Preset name uniqueness enforced (case-insensitive); duplicates rejected with clear error
  • Version metadata synchronized across all project files
  • Diagnostics redacts PII, includes runtime status and per-light failure reasons
  • Exception logging includes full tracebacks at catch sites

Changed

  • GitHub Actions pinned to full commit SHA (supply-chain hardening)
  • Dependencies consolidated into pyproject.toml + uv.lock
  • 95% coverage gate enforced
  • Concurrency groups on CI workflows

Added

  • Incident disablement and release runbooks
  • Version consistency check script (scripts/check_versions.py)
  • Integration test skeleton with migration plan

Removed

  • Dead package.json / Playwright surface

See CHANGELOG.md for full details.

v0.4.0

18 Feb 19:14
ffaa4e2

Choose a tag to compare

What's Changed

Added

  • Diagnostics supportasync_get_config_entry_diagnostics() returns a preset summary for HA diagnostics downloads, satisfying the IQS Gold diagnostics rule
  • Exception translation keys — All ServiceValidationError and HomeAssistantError raises now carry translation_domain, translation_key, and translation_placeholders for localizable UI error messages (IQS Gold exception-translations)
  • PARALLEL_UPDATES = 0 in button and sensor platforms — allows HA to update all preset entities simultaneously (IQS Silver parallel-updates)
  • Community health filesSECURITY.md, CODE_OF_CONDUCT.md, CONTRIBUTING.md, and .github/pull_request_template.md added to repository

Fixed

  • Preset status timestamps now use timezone-aware datetime.now(tz=UTC) instead of deprecated naive datetime.utcnow() (Python 3.12+)
  • Removed deprecated homeassistant key from manifest.json (hassfest compliance)
  • Workflow jobs now declare explicit permissions: contents: read (resolves CodeQL alerts)

Changed

  • Removed dynamic icon property from PresetButton — icons are fully declared via icons.json icon translations (IQS Gold icon-translations)
  • Simplified repository documentation: removed ~25,000 lines of auto-generated reference docs

IQS Compliance

This release completes Gold tier compliance for key IQS rules:

  • diagnostics
  • exception-translations
  • icon-translations
  • action-exceptions ✅ (from v0.3.0)
  • parallel-updates

Full Changelog

https://github.com/L3DigitalNet/HA-Light-Controller/blob/main/CHANGELOG.md

v0.3.0

18 Feb 06:35

Choose a tag to compare

[0.3.0] - 2026-02-18

Added

  • Icon translations (icons.json) for sensor states and button default — IQS Gold compliance
  • HACS and Hassfest validation GitHub Actions workflow
  • Entity self-removal on preset deletion (stale entity cleanup)
  • Tracking set cleanup in button/sensor platform listeners to prevent unbounded growth

Changed

  • Service handlers now raise ServiceValidationError/HomeAssistantError instead of returning error dicts — IQS Silver compliance
  • Removed STATUS_ICONS dict and icon property from sensor (replaced by icon translations)
  • Updated documentation versions to 0.3.0
  • Updated GitHub repo description and added topics for HACS discoverability
  • Added .claude/state/, .playwright-mcp/, and ui-test-*.png to .gitignore

Removed

  • Notification feature and blueprints to simplify integration scope
  • Old .claude/skills/ directory (migrated to plugin system)
  • .vscode/settings.json (consolidated to global settings)
  • Dead code: removed redundant entity registry cleanup tests

v0.2.2

14 Feb 13:59

Choose a tag to compare

What's Changed

Fixed

  • Handle non-string entity IDs in entity expansion
  • Config flow typing and lint issues
  • Typing and lint issues for light controller services

Changed

  • Updated documentation for v0.2.1 release
  • Updated contributor documentation with current tooling and versions
  • Updated core instruction files to reflect current environment

Added

  • Skills for Home Assistant integration development
  • Link verification tooling and report
  • uv.lock file for package management

Full Changelog: v0.2.0...v0.2.2

v0.1.3

27 Jan 12:15

Choose a tag to compare

What's Changed

  • Fixed .gitignore to exclude node_modules/ and test-results/
  • Removed accidentally committed node_modules from repo

Full Changelog: v0.1.2...v0.1.3

v0.1.2

27 Jan 12:15

Choose a tag to compare

What's Changed

  • Removed e2e test files
  • Updated .gitignore
  • Version bump to 0.1.2

Full Changelog: v0.1.1...v0.1.2

v0.1.1

27 Jan 12:10

Choose a tag to compare

What's Changed

Features & Improvements

  • UX improvements: Collapsible settings, preset editing, delete confirmation
  • E2E test infrastructure: Added Playwright tests for UI validation
  • Enhanced tests: Improved coverage for preset management and activation

Technical

  • Added CLAUDE.md and AGENTS.md documentation
  • Updated testing branch policy and protection
  • Various code refactoring and cleanup

Full Changelog: v1.0.9...v0.1.1

Various improvements

25 Jan 05:09

Choose a tag to compare

Bump version to 1.0.9

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

v1.0.8

25 Jan 03:38

Choose a tag to compare

Improvements

  • Make set_status() fully async - Changed from sync method with async_create_task to a proper async method. This ensures listener notifications complete before the caller continues, preventing orphaned tasks during shutdown or rapid operations.

This is a robustness improvement that eliminates potential race conditions during integration unload.

v1.0.7

25 Jan 03:34

Choose a tag to compare

Bug Fixes

  • Fix listener iteration race condition - Create a snapshot of listeners before iterating to prevent issues if listeners modify the list during notification (e.g., unsubscribing during callback)
  • Add error handling for entity removal - Entity registry removal errors are now caught and logged as warnings instead of potentially crashing the deletion operation