CHANGELOG¶
v3.15.0 (2026-10-18)¶
Features¶
v3.14.0 (2026-10-18)¶
Bug Fixes¶
Features¶
-
Shared location and group identifiers derived from labels (#264,
36c92b1) -
Wildcard bind with interface filtering for LAN discovery (#263,
9265f74)
v3.13.0 (2026-10-18)¶
Features¶
v3.12.7 (2026-10-08)¶
Bug Fixes¶
v3.12.6 (2026-10-08)¶
Bug Fixes¶
v3.12.5 (2026-10-08)¶
Bug Fixes¶
- handlers: Preserve effect speed, duration and parameters across SetEffect/GetEffect
(
9ccc9d3)
v3.12.4 (2026-10-05)¶
Bug Fixes¶
-
devices: Apply the firmware_version scenario to StateHostFirmware (
1825589) -
scenarios: Reject firmware versions that do not fit uint16 (
3d77c7c)
v3.12.3 (2026-10-05)¶
Bug Fixes¶
Documentation¶
v3.12.2 (2026-10-05)¶
Bug Fixes¶
- devices: Derive mac_address from serial and firmware
(
db6ddb4)
Documentation¶
-
devices: Call the device identifier the serial (
8c48fb0) -
devices: Describe mac_address as the network MAC address (
29bacd4) -
devices: Stop calling the serial a MAC in persistence (
70274df)
v3.12.1 (2026-10-01)¶
Bug Fixes¶
- factories: Deprecate tile_width and tile_height
(
5478554)
v3.12.0 (2026-10-01)¶
Bug Fixes¶
-
devices: Never restore a tile count the product cannot have (
cec4cfc) -
devices: Quote a rejected tile count in its error message (
f360dd9) -
devices: Reject a null saved tile count instead of crashing (
0a323f1) -
devices: Restore non-chain matrix devices at their own size (
e4ec7af) -
devices: Treat a non-integer tile count as invalid, not a crash (
4475788) -
factories: Apply the zone map only at the product's own dimensions (
7760334) -
factories: Give non-chain matrix devices exactly one tile (
9426b27)
Features¶
- specs: Model the LIFX Mirror as a 4x13 matrix with its zone map
(
df54557)
v3.11.0 (2026-09-24)¶
Bug Fixes¶
-
deps: Allow compatible zeroconf installations (
da4f302) -
mdns: Preserve ownership and cancellation boundaries (
f532e98) -
mdns: Retain shutdown failures and enforce network immutability (
d2b940f)
Documentation¶
- mdns: Accept and document Linux receive-scope limitation
(
29f5197)
Features¶
-
devices: Add isolated ordered lifecycle listeners (
41396ef) -
mdns: Add opt-in zeroconf responder and raw discovery tests (
6fe2cbb) -
mdns: Reconcile membership with explicit recovery and owned cleanup (
6dff9c6) -
mdns: Resolve validated mixed-family advertisements (
ed2938a) -
mdns: Validate immutable device advertisement settings (
0ec41a8)
v3.10.0 (2026-09-10)¶
Features¶
- Add IPv6 transport and Thread isolation
(
86e8499)
v3.9.0 (2026-09-09)¶
Features¶
- protocol: Add Thread device identity
(
6d4e61c)
v3.8.0 (2026-08-11)¶
Bug Fixes¶
-
devices: Gate Button packets and apply ButtonSet payloads (
f28404c) -
handlers: Gate Button.Set/SetConfig responses on res_required (
aba1443) -
persistence: Persist button config across save/restore (
2562173) -
products: Gate extended multizone and curate new product specs (
87126a7) -
protocol: Pack enum fields at their declared wire width (
52fdd4f) -
protocol: Tolerate undeclared enum values when unpacking (
75d3b6b) -
specs: Default Ceiling 265/266 firmware to 4.10 for Sky (
591ffb1) -
specs: Repair specs.yml YAML + correct Mirror/Path/Spot matrix dims (
b051adb)
Features¶
-
devices: Add ambient-light, button and uplight state + builder seeding (
d36967c) -
handlers: Ambient-light sensor handler (always answers, lux 0 when sensorless) (
66a7d41) -
handlers: Button get/set + config handlers gated on has_buttons (
813a81b) -
products: Regenerate registry from upstream (
717c9b2) -
protocol: Regenerate + enable Button/Sensor packets (Relay still filtered) (
ad6c3cd) -
specs: Add uplight_zone_count for Ceiling + Mirror (
b5ed8d9) -
tile: Allow Sky effect on new Ceiling pids 265/266 (
b3d95c3)
v3.7.1 (2026-08-11)¶
Bug Fixes¶
- security: Resolve code scanning alerts
(
4096a23)
v3.7.0 (2026-06-13)¶
Bug Fixes¶
- Tolerate unknown enum values when decoding packets
(
2516180)
Features¶
- Emit multi-service StateService discovery replies
(
91e58a9)
v3.6.3 (2026-03-18)¶
Bug Fixes¶
- dashboard: Broadcast metadata changes via WebSocket for live updates
(
6b933ae)
v3.6.2 (2026-02-06)¶
Bug Fixes¶
- server: Check drop_packets before sending early ack
(
6e3f494)
v3.6.1 (2026-02-06)¶
Bug Fixes¶
- server: Skip early ack for packets that will get StateUnhandled
(
33ec469)
v3.6.0 (2026-02-04)¶
Bug Fixes¶
-
Address CodeRabbit review feedback (
0bc07f5) -
tile: Correct user_x coordinate calculation for tile positioning (
0b7ac27)
Features¶
- dashboard: Add live device visualizer with real-time state updates
(
51fbcc0)
v3.5.0 (2026-02-03)¶
Bug Fixes¶
- Address CodeRabbit PR review feedback
(
e302407)
Features¶
-
api: Complete WebSocket real-time event infrastructure (
81cfa6f) -
dashboard: Add scenario panel, pagination, and tabbed interface (Phase 4) (
a50951d)
v3.4.0 (2026-02-03)¶
Features¶
- core: Add has_chain capability flag to DeviceState
(
66c639c)
v3.3.0 (2026-02-03)¶
Bug Fixes¶
- device: Apply error scenarios to unhandled-packet responses
(
7571ab7)
Features¶
- server: Send acks immediately before device processing
(
3d4ec66)
v3.2.0 (2026-02-02)¶
Bug Fixes¶
- tests: Replace flaky probabilistic drop rate tests with deterministic mocks
(
5070d6e)
Features¶
- core: Wire partial_responses scenario through packet handlers
(
a799dba)
v3.1.1 (2026-02-01)¶
Bug Fixes¶
- tests: Relax timing threshold in test_no_delay_by_default
(
dd1b416)
v3.1.0 (2026-01-11)¶
Features¶
- Add Python 3.10 support
(
c19eee5)
v3.0.3 (2025-11-27)¶
Bug Fixes¶
- core: Update device port to match server port when adding devices
(
db68eef)
v3.0.2 (2025-11-27)¶
Bug Fixes¶
- core: Add missing pydantic dependency to lifx-emulator-core
(
7cd2309)
v3.0.1 (2025-11-26)¶
Bug Fixes¶
- Adjust uv build for new monorepo layout
(
a0d5b7c)
v3.0.0 (2025-11-26)¶
Refactoring¶
- Split into monorepo with separate library and CLI packages
(
402fe6e)
Breaking Changes¶
- The project is now split into two packages:
v2.4.0 (2025-11-26)¶
- Initial Release