1.9.0 (2026-01-29)
- fix!: AirQuality sensor conformance - enable all feature flags (d037659)
Bug Fixes
- add .nojekyll file and copy to docs build output for GitHub Pages (cf96b0c)
- add AirQualityServer to PM2.5/PM10 sensors to satisfy mandatory airQuality attribute (2d9b3a1)
- add asLocalActor to preUpdateRunningMode for thermostat systemMode writes (fixes #24) (fd4cd11)
- add asLocalActor to thermostat setpoint handlers (fixes #9) (a567cf7)
- add environment config for GitHub Pages deployment (87101a8)
- add error handling for bridge icon existence check (26172d2)
- add explicit docs build step with BASE_URL env for GitHub Pages (259d57b)
- add global error handler to suppress async endpoint storage errors during bridge deletion (a21c32e)
- add minSetpointDeadBand and absolute limits to thermostat defaults (e925164)
- add missing await to super.initialize() in behavior servers (#8) (803dd35)
- add null checks for entity.state in all behavior servers to prevent crashes when entities are deleted (477da9c)
- add null checks in StatusIndicator to prevent crash (e64b9a6)
- add smokeCoAlarm to ClusterId enum (868558c)
- add uniqueId to BridgedDeviceBasicInformation for Alexa deduplication (fixes #53) (4b7a7e5)
- adjust thermostat setpoint limits to satisfy Matter.js 200 deadband constraint (e92b485)
- auto-detect Overkiz covers and suppress transaction conflicts for stable position display (ecde728)
- avoid fatal crash when endpoint storage is temporarily inaccessible (0552e1d)
- biome formatting for .releaserc.json (5ca1c4d)
- BridgeWizard sends wrong filter format - use HomeAssistantMatcher (fixes #33) (5de5221)
- bundle Matter.js packages to include access control patch (2791246)
- call HA action before thermostatRunningMode update to prevent blocking (#24) (1759fb2)
- check HVAC mode for temperature range support (fixes #9) (c1244b9)
- clamp maxHeatSetpointLimit for heating-only thermostats to satisfy Matter.js constraints (a57a0f9)
- clamp maxHeatSetpointLimit when maxCoolSetpointLimit would exceed 35°C (066b726)
- clamp thermostat setpoints to valid limits to prevent Matter.js validation errors (2d190b5)
- climate mode change from Apple Home fails with read-only error (#24) (856e1ea)
- correct alarm_control_panel action format with domain prefix (fixes #35) (a151091)
- correct API URLs for Home Assistant ingress support (8d6a8b5)
- correct thermostat deadband constraint logic with 2.5C margin (fde0e98)
- correct unit mismatch in thermostat deadband (0.1°C vs 0.01°C) (7b88ee3)
- correct vendor ID mapping - 4996 is iCloud Keychain, not Google (fixes #47) (55cfd51)
- cover position comparison, thermostat offline status, valve actions (4388383)
- enable PhysicalContact feature for OccupancySensing cluster (required since revision 5) (89ff72e)
- ensure minCoolSetpointLimit >= minHeatSetpointLimit + deadband for Heating+Cooling thermostats (00dbb46)
- entity mapping delete using array index instead of entityId (20b4d46)
- expand thermostat setpoint limits instead of restricting them (6957c46)
- FanControl step command not calling Home Assistant (91acf08)
- graceful handling of /api/system/info 404 and restore missing components (26e396d)
- handle endpoint storage errors during bridge deletion (43c7527)
- handle Home Assistant action errors to prevent unhandled promise rejections (fixes #17) (1f35169)
- handle Matter.js endpoint storage errors gracefully to prevent crashes (2a059bc)
- handle missing entity-mappings storage data (21674ab)
- handle missing transitionTime in LevelControl commands for Google Home compatibility (622787a)
- handle mutex-closed error gracefully during shutdown (e23bcee)
- handle null transitionTime from Google Home (fixes #41) (f4a0ff3)
- handle transaction conflict in fan control state updates (91b967f)
- improve brightness persistence by checking entity on/off state and add debug logging (9cc3cf0)
- improve humidity sensor limits, light type detection, and media player power control (30c94de)
- include hidden entities when explicitly matched by filter (#26) (8bb96b8)
- minSetpointDeadBand int8 overflow (250 -> 25) (3110267)
- move multer to runtime dependencies (01e46a1)
- move super.initialize() to beginning in rvc behavior servers (1fb48f8)
- only apply thermostat deadband when currently in Auto mode, not just when feature is supported (#21) (0f0db53)
- pass APP_VERSION environment variable to Docker containers (79bde68)
- patch Matter.js FabricAccessControl to grant Operate access when cluster undefined (ca490e2)
- pin archiver and unzipper versions and add to app dependencies (65fd739)
- preserve light brightness on turn-on and correct thermostat setpoint handling (fixes #37, #38) (3723d32)
- prevent crash when entity is enabled from disabled state (missing state) (e7901c9)
- prevent thermostat init crash by setting default deadband and improve version reporting (1fd5260)
- remove AutoMode feature to prevent Matter.js permission error on thermostatRunningMode (fixes #24) (36d50b2)
- remove broken Pump device (missing mandatory PumpConfigurationAndControl cluster) (b1bd5b9)
- remove deadband offset from thermostat setpoint limits (c2a5290)
- remove Matter.js patch workaround - now using asLocalActor per Matter.js team advice (0b6c6c0)
- resolve lint errors (parseInt radix, useless switch case) (20fe6d8)
- resolve lint formatting errors in SystemInfo and BackupRestore (b6057c0)
- return minimum level instead of null for Apple Home compatibility (c3cb384)
- return minimum level instead of null for humidifier controller compatibility (dfb36a7)
- revert thermostat deadband changes - Matter.js enforces constraint on limits (313e5d6)
- round fan percentage to nearest valid step (#8) (292cc91)
- satisfy CI lint (export server bases, organize imports) (1c06a53)
- separate Smoke and CO alarm types to prevent duplicate sensors (#7) (53e7d03)
- set controlSequenceOfOperation based on features in initialize() (#28) (627191c)
- set initial RVC state before super.initialize() to satisfy Matter.js validation (23dcd5e)
- set thermostat controlSequenceOfOperation before first update (7a47ff4)
- set thermostat defaults at behavior creation to prevent conformance errors (a898cb9)
- show all leaf endpoints in card view, not just aggregator (669557d)
- StatusIndicator health API structure mismatch (5b43fbb)
- stub Bun imports to prevent runtime errors in Node.js (53db982)
- support auto-only thermostats by treating them as heating devices (fixes #54) (bf0281c)
- suppress transient endpoint storage errors in applyPatchState during behavior initialization (4ab6f94)
- sync frontend components from testing (AppTopBar, EndpointList, BridgeDetails) (f2dded5)
- thermostat deadband constraint violation causing boot loop with climate entities (a680be8)
- thermostat init deadband ordering and robust filter preview error parsing (39a7222)
- trigger release for Bun import stub fix (66818ab)
- use asLocalActor for attribute change handlers to fix access control issues (per Matter.js team) (f9334e4)
- use asLocalActor in thermostat reactors to fix access control issues (1fd1023)
- use pre-commit handlers for thermostat setpoint changes (#9) (8070297)
- use pre-commit reactor to set thermostatRunningMode before Matter.js internal handler (#24) (79b2f6c)
- use relative API paths for Home Assistant ingress compatibility (a791fd9)
- use relative API URL for bridge-icons (Ingress compatibility) (a9d630b)
- use setImmediate for thermostat mode changes to bypass transaction conflicts (#24) (cfe325a)
- use setImmediate for thermostat setpoint changes (#9) (73bef52)
- WebSocket URL includes Ingress path for proper routing (d6c8a6a)
Features
- add Add Controller button for multi-fabric re-pairing (a9a6829)
- Add Air Purifier as selectable Matter device type (fixes #43) (67fa949)
- add AirPurifier and Pump Matter device types (cherry-pick from main) (1b1346f)
- add Alarm Control Panel device type (db96ffb)
- add All Devices button to EndpointList in bridge details (6c8f1d4)
- Add All Devices overview with entity mapping support (18b6f62)
- add Backup/Restore section to Health page (b4ea8d5)
- add backup/restore system, smoke/CO detector, filter preview, dark mode, sorting, and update docs (5bcc9a0)
- add BasicVideoPlayer device type for TV/media player support (fixes #45) (5537472)
- add bridge export/import functionality (fbd42bd)
- Add CO2 sensor with numeric ppm value (fixes #42) (fc73081)
- add comprehensive REST API with Home Assistant, Logs, and Metrics endpoints (128a070)
- add configurable icon field to bridge config with dropdown selection (99900a4)
- add coverUseHomeAssistantPercentage flag for Alexa-friendly cover percentage display (883ce66)
- add custom image upload for bridge icons (PNG, JPG, GIF, WebP, SVG) (6687fca)
- add dark mode toggle, device list sorting, and filter preview (b4fe7e0)
- add domain-based bridge icons, entity mapping in card view, and clean up UI (fixes #44) (48f6933)
- add entity mapping customization (0e89fd0)
- add exponential backoff retry, circuit breaker, and config validation (1fb6d03)
- add fan preset mode support and fix script filtering (#26) (f63b715)
- add Full Backup with Identity option and fix API paths in BackupRestore (8822468)
- add full backup with Matter identity files (#31) (29c934e)
- add health check API and WebSocket live updates (bbbfd18)
- add migration support for importing stable exports into alpha (331f11d)
- add PM2.5 and PM10 concentration measurement sensors with numeric values (b52a4c3)
- add Pressure, Flow, Air Quality sensors and Water Valve (330d4e3)
- add ProductName filter for Include/Exclude entity filtering (dccf818)
- add Pump device with proper PumpConfigurationAndControl cluster (ebc989e)
- add restart prompt after backup restore and fix error message display (769edaf)
- add Smoke/CO Alarm device type and update entity mappings (5d405e4)
- add structured logging, retry utilities, and UI improvements (a0b21ec)
- add Tuya, LG ThinQ, and Aqara vendor IDs to health dashboard (6a11695)
- Add TVOC sensor with numeric ppb value (related to #42) (c512976)
- add WebSocket live updates and status indicator (227edc8)
- capture application logs in buffer for Log Viewer API (d58c7fb)
- complete entity mapping UI integration (48d0ace)
- comprehensive UI enhancements - logs, system info, device overview, and devices page (9e21ba7)
- enhance System Info with version, environment detection, CPU model (20dc7e1)
- graceful error handling for failed entities with frontend display (521f7f3)
- health monitoring dashboard, auto-recovery, bridge wizard (3800813)
- improve Fan speed control, add Media Player playback (0de6198)
- improve system info API with more parameters (CPU, load, process info) (8c60bc3)
- integrate structured logging with context and retry utilities into backend (44bcb9f)
- sort bridges alphabetically in UI (#30) (2b38f06)
Performance Improvements
- parallelize state updates for faster Alexa/Google Home response (dea2e62)
BREAKING CHANGES
- Alpha version bump to 2.0.0 series. This release includes major new features like Health Monitoring Dashboard, Auto-Recovery, and Bridge Wizard.