CHANGELOG¶
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¶
- Add security policy
(
4e6c152)
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¶
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¶
- Add software effects
(
be768fb)
v1.2.1 (2025-11-08)¶
Bug Fixes¶
- Implement tile effect parameters as local quirk
(
f4ada9b)
v1.2.0 (2025-11-07)¶
Features¶
- Add theme support
(
82477cd)
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