Releases: L3DigitalNet/ha-light-controller
Releases · L3DigitalNet/ha-light-controller
v0.4.1
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
What's Changed
Added
- Diagnostics support —
async_get_config_entry_diagnostics()returns a preset summary for HA diagnostics downloads, satisfying the IQS Golddiagnosticsrule - Exception translation keys — All
ServiceValidationErrorandHomeAssistantErrorraises now carrytranslation_domain,translation_key, andtranslation_placeholdersfor localizable UI error messages (IQS Goldexception-translations) PARALLEL_UPDATES = 0in button and sensor platforms — allows HA to update all preset entities simultaneously (IQS Silverparallel-updates)- Community health files —
SECURITY.md,CODE_OF_CONDUCT.md,CONTRIBUTING.md, and.github/pull_request_template.mdadded to repository
Fixed
- Preset status timestamps now use timezone-aware
datetime.now(tz=UTC)instead of deprecated naivedatetime.utcnow()(Python 3.12+) - Removed deprecated
homeassistantkey frommanifest.json(hassfest compliance) - Workflow jobs now declare explicit
permissions: contents: read(resolves CodeQL alerts)
Changed
- Removed dynamic
iconproperty fromPresetButton— icons are fully declared viaicons.jsonicon translations (IQS Goldicon-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
[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/HomeAssistantErrorinstead of returning error dicts — IQS Silver compliance - Removed
STATUS_ICONSdict andiconproperty 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/, andui-test-*.pngto.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
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
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
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
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
Bump version to 1.0.9 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
v1.0.8
Improvements
- Make
set_status()fully async - Changed from sync method withasync_create_taskto 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
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