Skip to content

CHANGELOG

v6.5.1 (2026-08-18)

Bug Fixes

  • themes: Extract the data contract and resync the catalogue (291e7e6)

v6.5.0 (2026-08-16)

Features

  • theme: Validate hardware fidelity (3d3e9f3)

v6.4.0 (2026-08-15)

Bug Fixes

  • theme: Retire legacy category names and record alias renames (0890917)

Documentation

  • Cross-AI review for phase 7 (7aecfa1)

  • Cross-AI review round 2 for phase 7 (9e2ad7b)

  • 07: Add code review report (9d72c48)

  • 07: Add security threat verification - 10 threats, 0 open (3e517aa)

  • 07: Capture phase context (70430a9)

  • 07: Close residual git-diff idempotence check and fix SPEC citation (a93820e)

  • 07: Close round-2 review defects R2-01..R2-05 in phase plans (7a985fb)

  • 07: Correct evening's category in the themes API example (b3d0c86)

  • 07: Correct the taxonomy version label to 6.4.0 (17021eb)

  • 07: Create phase plans for taxonomy and legacy dispositions (92d3740)

  • 07: Extract phase 7 learnings (a724ed7)

  • 07: Incorporate cross-AI review feedback into phase plans (fb49fb0)

  • 07: Mark phase 7 complete and transition to phase 8 (2034d10)

  • 07: Reconcile SPEC acceptance bullet 11 with R5 hashability contract (e3a0fa1)

  • 07: Record phase planned and add pattern map (0e09546)

  • 07: Record post-verification addendum in 07-VERIFICATION.md (60311bb)

  • 07: Record replanned phase state (9cd8fd0)

  • 07: Record the post-ship amendment in .planning (244e2b1)

  • 07: Refresh phase state after round-2 revision (b8fe011)

  • 07: Replace internal v1.2 milestone label with release 6.3.0 (1290799)

  • 07: Ship phase 07 — PR #202 [ci skip] (cd78121)

  • 07-01: Complete disposition schema plan (4d85cf9)

  • 07-02: Complete taxonomy rewrite plan (6202205)

  • 07-03: Add theme taxonomy v1.2 migration page (ef2c23f)

  • 07-03: Complete taxonomy migration docs plan (bc79061)

  • 07-03: Correct the two stale theme doc sites (6fb986e)

  • planning: Record Phase 6 merged (c460e6b)

  • state: Correct stale D-21 coverage record (ed0980c)

  • state: Record phase 7 context session (7224309)

Features

  • 07-01: Surface disposition and replaced_by on the public Theme (8f30fce)

  • 07-01: Wire disposition schema from JSONL through generator into THEMES (c479b80)

  • 07-02: Rewrite category navigation over the app's 9-category taxonomy (e80edc5)

v6.3.0 (2026-08-15)

Bug Fixes

  • 06: Resolve code review warnings WR-01 and WR-03 (5334155)

  • effects: Choose three distinct rule-trio primaries (1529446)

  • theme: Copy the caller's palette into every Theme (ef858bb)

  • theme: Harden the generator's validation and atomic write (5f836f2)

  • theme: Keep Theme hashable, compare palettes explicitly (947ee9b)

Documentation

  • Create milestone v1.2 roadmap (4 phases) (83fe3c8)

  • Cross-AI review for phase 6 (8506d7e)

  • Cross-AI review round 2 for phase 6 (3a40a41)

  • Cross-AI review round 3 for phase 6 (851b83f)

  • Define milestone v1.2 requirements (9c95d67)

  • Start milestone v1.2 Theme Library Update (2674466)

  • 06: Add code review report (ac4f350)

  • 06: Add pattern map and disable nyquist for phase 6 (8498f65)

  • 06: Capture phase context (9656270)

  • 06: Create phase plan (313dcfa)

  • 06: Create phase plan (225f717)

  • 06: Extract phase learnings (28b7ad5)

  • 06: Fix META-02/D-10 truth in 06-02 plan — 28 orphans, not 30 (a3afd1a)

  • 06: Incorporate round-2 review feedback into phase plans (a51c2c9)

  • 06: Revise phase plans with cross-AI review feedback (00a6a14)

  • 06-01: Complete generated theme library tracer plan (b777767)

  • 06-02: Complete full theme import and cutover plan (4ab48f6)

  • phase-06: Add security threat verification (e0e5344)

  • phase-06: Complete phase execution (57d547c)

  • phase-06: Evolve PROJECT.md after phase completion (c2d0554)

  • planning: Correct the PR #196 review tally in STATE.md (cee51bf)

  • planning: Resync theme equality and generator decisions (1fc942f)

  • state: Record phase 6 context session (4ebb8aa)

  • theme: Correct theme counts and retire the hand-listed inventory (47e2864)

Features

  • 06-01: Generate theme data module from committed JSONL seed (bf1008c)

  • 06-01: Implement palette-only multiset Theme equality (5ba5d4f)

  • 06-02: Build the full committed theme data file (60e7f20)

  • 06-02: Cut ThemeLibrary over to the generated theme data (36c77f7)

v6.2.0 (2026-08-09)

Features

  • protocol: Expose the COLOR_SWEEP matrix effect (856a1fe)

v6.1.4 (2026-08-03)

Bug Fixes

  • devices: Harden ceiling state file and power-off (f8ecc28)

  • devices: Power ceiling off when last component turns off (df6cef6)

v6.1.3 (2026-08-01)

Bug Fixes

  • themes: Use real tile geometry when rendering themes and canvases (f25ef11)

v6.1.2 (2026-08-01)

Bug Fixes

  • network: Keep response correlation intact while learning a serial (28cad4a)

  • network: Log the peer as discrete fields that stay current (1ab4c5a)

  • network: Name the device in transport error warnings (e85653d)

v6.1.1 (2026-07-31)

Bug Fixes

  • color: Accept device-reported kelvin 0 on inbound reads (7e33543)

  • network: Recover from UDP endpoint death instead of hanging forever (0251e08)

Documentation

  • Add project URLs and correct stale feature claims (8d9a666)

v6.1.0 (2026-07-31)

Bug Fixes

  • devices: Harden state fetches and correct set_group target (118b633)

Documentation

  • Correct refresh_state and ambient light sensor descriptions (d61f6e3)

  • Explain opt-in state fields on discovered devices (a7425b1)

  • devices: Correct refresh_state docstrings (2df05cb)

Features

  • Export symbols used by the Home Assistant integration (b85ab4a)

  • devices: Add ambient light to state and make fetch flags properties (23e27f7)

  • devices: Add wifi_info to DeviceState (3ddf7f0)

  • devices: Allow refresh_state to override fetch_wifi_info (aab64f7)

v6.0.1 (2026-07-29)

Bug Fixes

  • Switch all examples to use Device.connect() instead of from_ip() (6377cc2)

  • api: Apply themes once per device (2ee2f4c)

  • examples: Add a theme painting example (f4cf623)

  • matrix: Gate the SKY effect on capability and firmware (be28976)

  • products: Add the Ceiling 13" component layout (04405be)

v6.0.0 (2026-07-28)

Bug Fixes

  • color: Report at least brightness 1 for a lit light (f712d68)

  • devices: Build light state dicts from DeviceState.as_dict (71d47e1)

  • devices: Expand HSBK colors in every state's as_dict (b491339)

  • effects: Restore zones via set_all_color_zones (4f561e2)

  • examples: Call HSBK.as_dict as a property (c006899)

  • multizone: Make apply_theme work on legacy and long strips (8101d99)

  • multizone: Reject APPLY_ONLY in set_all_color_zones (632bb82)

Documentation

  • devices: Show set_all_color_zones in the multizone example (d73a530)

Features

  • color: Add scaled HSBK accessors and replace() (815f037)

  • multizone: Add set_all_color_zones (9cc7258)

Refactoring

  • color: Make HSBK.as_dict a property (626f688)

Breaking Changes

  • color: HSBK.as_dict is now a property. Callers using color.as_dict() must drop the parentheses; calling it raises TypeError: 'dict' object is not callable.

v5.6.4 (2026-07-26)

Bug Fixes

  • Address Home Assistant migration issues (5507c41)

  • devices: Address multizone review feedback (55de0d2)

v5.6.3 (2026-07-26)

Bug Fixes

  • discovery: Correct the idle-window docs and harden its tests (9afe8df)

Documentation

  • Curate the v1.1 milestone entry (fe8effc)

  • phase-04: Reconcile validation strategy and add the v1.1 milestone audit (f9929c3)

  • planning: Refresh the discovery idle-window commit refs (83f3d25)

  • quick-260726-824: Record the discovery idle-window fix and close two audit items (7337d0a)

v5.6.2 (2026-07-25)

Bug Fixes

  • discovery: Stop consumer time from expiring the discovery idle window (dca9e39)

v5.6.1 (2026-07-25)

Bug Fixes

  • devices: Narrow the MAC offset to firmware 3.70+ and add the audit script (bdb84f7)

Documentation

  • quick-260726-42c: Ship quick task — PR #175 [ci skip] (786ad34)

v5.6.0 (2026-07-18)

Features

  • Wire reliability improvements (v1.1) (d99a501)

v5.5.1 (2026-06-14)

Bug Fixes

  • ceiling: Compare stored state at uint16 wire granularity (08b7e8d)

  • color: Expose raw HSBK values instead of rounded ones (80b0b2f)

  • color: Stop rounding computed lerp/average outputs (515dd91)

v5.5.0 (2026-06-13)

Bug Fixes

  • 01: CR-01 drop size-invalid datagrams instead of aborting discovery (b33fde1)

  • 01: Finish review-fix pass — WR-03/WR-04/WR-05 (21c2b35)

  • 01: IN-01 remove no-cover pragma from exit-save except clause (282900c)

  • 01: IN-02 run exit-save via asyncio.to_thread (D-01 revised) (0e46531)

  • 01: IN-03 preserve port, timeout and max_retries in from_ip (fa5da87)

  • 01: Tolerate unknown DeviceService values from real hardware (0cb5dc6)

  • 01: WR-01 merge on-disk device entry instead of replacing on save (a176243)

  • 01: WR-01 reject all-zeros broadcast target in serial guard (76b00ef)

  • 01: WR-02 align mDNS idle-reset semantics with D-04 (74928f8)

  • 01: WR-02 assert state payload content in save-on-exit test (3c1c646)

  • 01: WR-03 write state file atomically via temp file and os.replace (fde7b20)

  • devices: Guarantee ceiling connection cleanup if save is cancelled (6c5933d)

  • discovery: Reject non-zero target padding in the serial guard (415006a)

Documentation

  • Add Phase 1 — unify duplicated discovery loops (426f018)

  • Create roadmap (1 phase) (c79fa7c)

  • Define v1 requirements (496ee75)

  • Initialize project (31ec39f)

  • Map existing codebase (ee7b4e0)

  • 01: Add code review fix report (03aa5b6)

  • 01: Add code review fix report (a876703)

  • 01: Add code review report (b9d7b8f)

  • 01: Add code review report (48bfa88)

  • 01: Capture phase context (d856de1)

  • 01: Capture phase context (20e0252)

  • 01: Create phase plan (052253b)

  • 01: Create phase plan (1b14726)

  • 01: Finalise phase plan artifacts (8fbb139)

  • 01: Mark Unify-discovery-loops phase complete & verified (0109677)

  • 01: Record D-01 revision and final code review fix report (086339f)

  • 01: Research ceiling save-on-exit phase (7456f22)

  • 01-01: Complete ceiling-save-on-exit plan (488dff5)

  • 01-01: Complete IdleDeadline plan (5748c49)

  • 01-02: Complete thin-discover-devices-wrapper plan (690fd20)

  • 01-03: Complete mDNS IdleDeadline adoption plan (74aa472)

  • 01-04: Complete deprecate-receive-many plan (4345760)

  • 01-05: Complete discovery error test gap plan (e23cec0)

  • phase-1: Add security threat verification (dbff129)

  • phase-1: Add security threat verification (608929d)

  • phase-1: Add validation strategy (f310ebf)

  • phase-1: Add validation strategy (b85ea2a)

  • phase-1: Complete phase execution (b941e14)

  • phase-1: Create phase plans for discovery loop unification (be081e5)

  • phase-1: Evolve PROJECT.md after phase completion (376bf9f)

  • phase-1: Research unify-duplicated-discovery-loops (e67c946)

  • state: Record phase 1 context session (262f8d3)

  • state: Record phase 1 context session (1aa4b2f)

  • v1.0: Add milestone audit (passed 7/7) and close out validation map (c99e9ad)

Features

  • 01-01: Add IdleDeadline unit tests in test_network/test_utils.py (40f9578)

  • 01-01: Implement CeilingLight.aexit to save state on exit (GREEN) (272d79b)

  • 01-01: Implement IdleDeadline in network/utils.py (28bb3d6)

  • 01-04: Deprecate UdpTransport.receive_many with DeprecationWarning (bc6c95d)

v5.4.9 (2026-05-21)

Bug Fixes

  • Add new products to the LIFX product list (f0e31c9)

v5.4.8 (2026-04-17)

Bug Fixes

  • Raise OSError in create_mdns_socket and handle exit in main() (5d036be)

Documentation

  • planning: Address code review nitpicks in codebase docs (5609034)

v5.4.7 (2026-04-17)

Bug Fixes

  • Ensure CeilingLightState exists before caliing set_power (48cef24)

v5.4.6 (2026-03-22)

Bug Fixes

  • Add MIT license header to effects ported from pkivolowitz/lifx (5830c98)

v5.4.5 (2026-03-22)

Bug Fixes

  • Device.connect() now returns Light for CCT and brightness-only products (df6d787)

  • Patch correct target for is_ceiling_product in tests (666a406)

v5.4.4 (2026-03-21)

Bug Fixes

  • Set a default value for duration_seconds for set_hev_cycle (f7fc708)

Documentation

  • Update docstring to provide more detail on hev config (02de0f0)

v5.4.3 (2026-03-21)

Bug Fixes

  • Defer is_on flag updates and add power-aware factory initialisation (3db28a3)

  • Defer is_on flags until after power-on and sync public fields on power-off (b412e40)

  • Defer stored state updates until after I/O succeeds in turn-off methods (01588ec)

  • Harden CeilingLightState against aliased mutations and stale snapshots (73a7275)

  • Move ceiling component state to CeilingLightState dataclass (06372b9)

  • Resolve remaining CodeRabbit review comments (cd450a8)

  • Return defensive copy of stored downlight colours (2575889)

  • Sync ceiling component is_on state in getter methods (8b83f35)

  • Sync public CeilingLightState fields in all mutators and getters (1eac576)

v5.4.2 (2026-03-21)

Bug Fixes

  • Guard against ValueError if signal is negative or 0 (a1085c6)

v5.4.1 (2026-03-19)

Bug Fixes

  • Asyncio and import pattern cleanup (review-critical_20260318) (07fed68)

  • Protocol correctness and code quality fixes (review-critical_20260318) (e3276bf)

  • animation: Validate HSBK input length in update_colors() (94b232f)

  • codecov: Allow coverage uploads from failing CI runs (1843d19)

  • color: Preserve full precision in with_* helpers (35f6229)

  • effects: Clear _last_generated_hsbk unconditionally after iteration (b6bf2bb)

  • test: Make source ID rejection test deterministic (3d93826)

  • test: Move noqa ARG001 to the actually unused config parameter (2c068bc)

  • transport: Rate-limit QueueFull warning to prevent log flooding (82378af)

Documentation

  • Fix remaining int RGB references and clean up long float literals (5880ad2)

  • Streamline CLAUDE.md from 907 to 381 lines (59769e8)

  • animator: Fix stale comment about source ID allocation (6336427)

  • effects: Consolidate effects content into user-guide (Phase 1) (71a5684)

  • effects: Document _last_frames limitation for protocol-direct path (257febf)

  • effects: Update FrameEffect docstrings for generate_protocol_frame (8e52cee)

  • mkdocs: Fix all documentation correctness issues (7a061e4)

  • nav: Update navigation and add progressive disclosure links (Phase 4) (42caf99)

  • plan: Fix task list checkbox spacing at line 25-26 (2f9e5e9)

  • plan: Fix task list checkbox spacing at line 39-40 (cb09448)

  • plan: Fix task list checkbox spacing at line 54-55 (5b3dd32)

  • plan: Fix task list checkbox spacing at line 70-71 (c0990aa)

  • plan: Fix task list checkbox spacing at line 75-79 (70440a2)

  • source: Fix misleading docstrings in base.py, api.py, exceptions.py (901d4aa)

  • structure: Relocate misplaced content and fix orphaned links (Phase 3) (25f2186)

  • tests: Fix misleading comment in idle timeout test (b76a418)

  • themes,animation: Deduplicate themes and animation content (Phase 2) (c489bc7)

Performance Improvements

  • animation: Avoid slice allocation in update_colors() hot loop (b3152e1)

  • animation: Use pre-compiled struct.Struct for HSBK writes (1b54956)

  • aurora: Add direct generate_protocol_frame() override (review-perf_20260318) (a01f289)

  • effects: Add generate_protocol_frame() to FrameEffect (review-perf_20260318) (24bb03c)

  • framebuffer: Pre-compute canvas-to-device LUT at init time (review-perf_20260318) (3b28194)

  • packets: Replace flat list building with direct struct.pack_into (review-perf_20260318) (ced40eb)

  • protocol: Guard asdict() in Packet.unpack() behind debug check (review-perf_20260318) (44617c1)

v5.4.0 (2026-03-18)

Documentation

  • effects: Add animated GIFs and effects gallery page (fbcaadc)

  • effects: Add documentation for 18 effects adapted from pkivolowitz/lifx (a4f47be)

Features

  • examples: Add effects demo script with device-type-aware selection (be36b95)

v5.3.0 (2026-03-18)

Bug Fixes

  • color: Clamp blend parameter in lerp methods (4c41ca4)

  • effects: Fix zones_per_bulb normalization, embers single-zone, CA restart, and test assertions (f049252)

  • effects: Polish ported effects and fix API surface issues (ee01ec9)

  • effects: Resolve Pyright possibly-unbound variable in Sine effect (b6629ad)

  • security: Skip bandit B311 globally and remove nosec comments (90e713b)

  • tests: Update registry test to use superset check (a9c3063)

  • tests: Update theme count from 42 to 57 after palette additions (e416341)

Documentation

  • Add design spec for porting pkivolowitz/lifx effects (2d17778)

  • Add implementation plan for effects port (70bfe89)

  • Address spec review findings (9a3ca10)

Features

  • color: Add lerp_oklab and lerp_hsb methods to HSBK (71a794a)

  • effects: Add Cylon (Larson scanner) effect (26e75d5)

  • effects: Add Double Slit (wave interference) effect (7617cca)

  • effects: Add Embers (fire simulation) effect (3a9ab6c)

  • effects: Add Fireworks effect (d509f4b)

  • effects: Add Jacob's Ladder (electric arcs) effect (c447011)

  • effects: Add Newton's Cradle effect (a414b37)

  • effects: Add Pendulum Wave effect (9315730)

  • effects: Add Plasma (electric tendrils) effect (6fed46d)

  • effects: Add Plasma2D effect for matrix devices (2a94fd7)

  • effects: Add Ripple (water drops) effect (d3a4a33)

  • effects: Add Rule 30 (cellular automaton) effect (13b9f07)

  • effects: Add Rule Trio (three CAs blended) effect (45346d4)

  • effects: Add Sine (traveling ease wave) effect (24a2ec9)

  • effects: Add Sonar (radar pulses) effect (575fed4)

  • effects: Add Spectrum Sweep effect (9aad95b)

  • effects: Add Spin (color migration) effect (9b91fc9)

  • effects: Add Twinkle (sparkle) effect (2660f19)

  • effects: Add Wave (standing wave) effect (63cdf9b)

  • effects: Register and export all 18 ported effects (c5caa0d)

  • theme: Add palette themes from pkivolowitz/lifx (4126ccf)

v5.2.1 (2026-03-18)

Bug Fixes

  • tests: Add pytest-timeout, retry flaky Windows emulator tests (4b6b3a9)

  • tests: Extend timeout to 120s for emulator tests (016e1aa)

Documentation

v5.2.0 (2026-02-07)

Bug Fixes

  • Address CodeRabbit review feedback (487f4ab)

Documentation

  • Fix duration_ms formula (1000 -> 1500/fps) in effects API docs (487f4ab)

Features

  • Add new effects, effect registry, and rename examples (2f8192d)

v5.1.1 (2026-02-06)

Performance Improvements

  • Optimize device initialization and packet sending (865c4e3)

  • Pure-Python optimizations for protocol, network, and animation layers (a9a4bd4)

v5.1.0 (2026-01-24)

Bug Fixes

  • animation: Load capabilities before checking has_chain (69e50b3)

Documentation

  • Add DeviceGroup usage example (9f85854)

  • Remove reference to deleted FieldSerializer class (5db0262)

Features

  • animation: Add high-performance animation module (afc8063)

v5.0.1 (2026-01-14)

Bug Fixes

  • Handle asyncio.TimeoutError on Python 3.10 (4438bc4)

v5.0.0 (2026-01-12)

Features

  • Add Python 3.10 support (7c39131)

Breaking Changes

  • Batch operations now raise first exception immediately (asyncio.gather behavior) instead of collecting all exceptions into an ExceptionGroup (TaskGroup behavior).

v4.9.0 (2025-12-30)

Features

  • api: Add HTML named colors and kelvin temperature presets (b631d43)

v4.8.1 (2025-12-24)

Bug Fixes

  • Tighten up the URL parsing to be even more specific (0222362)

v4.8.0 (2025-12-20)

Features

  • network: Add mDNS/DNS-SD discovery for LIFX devices (f25987d)

v4.7.5 (2025-12-16)

Bug Fixes

  • devices: Override set_color in CeilingLight to track component state (0d20563)

v4.7.4 (2025-12-16)

Performance Improvements

  • devices: Reduce get_all_tile_colors calls in CeilingLight (3936158)

v4.7.3 (2025-12-16)

Bug Fixes

  • devices: Capture component colors before set_power turns off light (a99abee)

v4.7.2 (2025-12-16)

Bug Fixes

  • api: Close device connections in DeviceGroup context manager (054bfee)

Documentation

  • api: Add dataclass documentation and improve navigation (c859c87)

v4.7.1 (2025-12-13)

Bug Fixes

  • devices: Add length parameter to copy_frame_buffer() (6a74690)

v4.7.0 (2025-12-13)

Features

  • devices: Add fast parameter to set_extended_color_zones() (0276fca)

v4.6.1 (2025-12-12)

Bug Fixes

  • devices: Check for power and brightness for Ceiling components (bd1b92f)

v4.6.0 (2025-12-11)

Features

  • devices: Add CeilingLightState dataclass for ceiling component state (607f15c)

v4.5.1 (2025-12-11)

Bug Fixes

  • devices: Export CeilingLight add add user guide and API documentation (10e0089)

v4.5.0 (2025-12-08)

Features

  • devices: Add CeilingLight with independent uplight/downlight component control (95fc5a6)

v4.4.1 (2025-12-03)

Bug Fixes

  • theme: Prevent color displacement in multi-tile matrix theme application (ca936ec)

v4.4.0 (2025-11-29)

Features

  • devices: Add factory pattern with automatic type detection and state management (4374248)

v4.3.9 (2025-11-27)

Bug Fixes

  • network: Propagate timeout from request() to internal methods (b35ebea)

v4.3.8 (2025-11-25)

Bug Fixes

  • network: Raise exception on StateUnhandled instead of returning False (5ca3e8a)

v4.3.7 (2025-11-25)

Bug Fixes

  • devices: Raise LifxUnsupportedCommandError on StateUnhandled responses (ec142cf)

v4.3.6 (2025-11-25)

Bug Fixes

  • network: Return StateUnhandled packets instead of raising exception (f27e848)

v4.3.5 (2025-11-22)

Bug Fixes

  • devices: Allow MatrixEffect without palette (fb31df5)

v4.3.4 (2025-11-22)

Bug Fixes

  • network: Exclude retry sleep time from timeout budget (312d7a7)

v4.3.3 (2025-11-22)

Bug Fixes

  • Give MatrixLight.get64() some default parameters (a69a49c)

  • themes: Apply theme colors to all zones via proper canvas interpolation (f1628c4)

v4.3.2 (2025-11-22)

Bug Fixes

  • effects: Add name property to LIFXEffect and subclasses (deb8a54)

v4.3.1 (2025-11-22)

Bug Fixes

  • Actually rename the matrix methods (061aaa7)

v4.3.0 (2025-11-22)

Features

  • effects: Unify effect enums and simplify API (df1c3c8)

v4.2.1 (2025-11-21)

Bug Fixes

  • Get_wifi_info now returns signal and rssi correctly (6db03b3)

v4.2.0 (2025-11-21)

Documentation

  • api: Remove obsolete reference to MessageBuilder (9847948)

Features

  • devices: Add ambient light sensor support (75f0673)

v4.1.0 (2025-11-20)

Features

  • network: Replace polling architecture with event-driven background receiver (9862eac)

v4.0.2 (2025-11-19)

Bug Fixes

  • Product registry generation (2742a18)

v4.0.1 (2025-11-18)

Bug Fixes

  • devices: Prevent connection leaks in temporary device queries (0ee8d0c)

v4.0.0 (2025-11-18)

Features

  • devices: Replace TileDevice with MatrixLight implementation (1b8bc39)

Breaking Changes

  • devices: TileDevice class has been removed and replaced with MatrixLight

v3.1.0 (2025-11-17)

Features

  • Remove connection pool in favor of lazy device-owned connections (11b3cb2)

v3.0.1 (2025-11-17)

Bug Fixes

  • Get_power() now returns an integer value not a boolean (3644bb9)

v3.0.0 (2025-11-16)

Features

  • Convert discovery methods to async generators (0d41880)

  • Replace event-based request/response with async generators (fa50734)

Breaking Changes

  • Internal connection architecture completely refactored

v2.2.2 (2025-11-14)

Bug Fixes

  • devices: Replace hardcoded timeout and retry values with constants (989afe2)

v2.2.1 (2025-11-14)

Bug Fixes

  • network: Resolve race condition in concurrent request handling (8bb7bc6)

v2.2.0 (2025-11-14)

Features

  • network: Add jitter to backoff and consolidate retry logic (0dfb1a2)

v2.1.0 (2025-11-14)

Features

  • Add mac_address property to Device class (bd101a0)

v2.0.0 (2025-11-14)

Refactoring

  • Simplify state caching and remove TTL system (fd15587)

v1.3.1 (2025-11-12)

Bug Fixes

  • Add Theme, ThemeLibrary, get_theme to main lifx package exports (6b41bb8)

Documentation

  • Add mkdocs-llmstxt to create llms.txt and llms-full.txt (4dd378c)

  • Remove effects release notes (2fdabc0)

v1.3.0 (2025-11-10)

Features

v1.2.1 (2025-11-08)

Bug Fixes

  • Implement tile effect parameters as local quirk (f4ada9b)

v1.2.0 (2025-11-07)

Features

v1.1.3 (2025-11-06)

Performance Improvements

  • Reduce network traffic when updating individual color values (679b717)

v1.1.2 (2025-11-05)

Bug Fixes

  • Dummy fix to trigger semantic release (86ad8b4)

v1.1.1 (2025-11-05)

Bug Fixes

  • Dummy fix to trigger semantic release (12786b5)

v1.1.0 (2025-11-05)

Features

  • Replace cache TTL system with timestamped state attributes (5ae147a)

v1.0.0 (2025-11-04)

  • Initial Release