Skip to content

CHANGELOG

v4.11.0 (2026-10-18)

Features

  • Raw payload bytes for undecodable packets in the activity log (#266, fe931c3)

v4.10.0 (2026-10-18)

Features

  • Shared location and group identifiers derived from labels (#264, 36c92b1)

  • Wildcard bind with interface filtering for LAN discovery (#263, 9265f74)

v4.9.0 (2026-10-18)

Features

  • frontend: Upgrade dashboard to SvelteKit 3 and adapter-static 4 (#261, 2fcf29a)

v4.8.0 (2026-10-18)

Features

  • Lazy transition engine for durations and waveforms (#259, 2169256)

v4.7.2 (2026-10-05)

Bug Fixes

  • core-scenarios: Reject firmware versions that do not fit uint16 (3d77c7c)

Documentation

  • Rewrite examples for the current API and move clients to lifx-async (#234, ba6c346)

  • cli: Call the device identifier the serial (c0a2a2c)

v4.7.1 (2026-10-01)

Bug Fixes

  • cli: Deprecate tile_width and tile_height options (401ec2b)

v4.7.0 (2026-10-01)

Bug Fixes

  • cli: Coerce an exported product ID with pydantic's int rules (d5586e3)

  • cli: Export a saved tile size only for chain products (101d3bb)

  • cli: Export only tile counts the product can have (e8ccb7d)

  • cli: Fail startup when a configured device cannot be built (7fca501)

  • cli: Read a saved product ID as config loading does on export (e8e8408)

  • core-devices: Treat a non-integer tile count as invalid, not a crash (4475788)

  • core-factories: Give non-chain matrix devices exactly one tile (9426b27)

  • frontend: Keep Mirror ring labels legible on bright zones (9825d7d)

Features

  • api: Expose the zone map and uplight zone count in DeviceInfo (71a5f6b)

  • frontend: Draw the LIFX Mirror as its front and back rings (feb1624)

v4.6.1 (2026-09-24)

Bug Fixes

  • api: Release event bridge listeners after lifespan (d8cfac2)

v4.6.0 (2026-09-10)

Features

  • Add IPv6 transport and Thread isolation (86e8499)

v4.5.2 (2026-08-11)

Bug Fixes

  • frontend: Pin cookie override to ^0.7.0 to restore build (e0ff918)

v4.5.1 (2026-08-11)

Bug Fixes

  • security: Resolve code scanning alerts (4096a23)

v4.5.0 (2026-06-13)

Features

  • Emit multi-service StateService discovery replies (91e58a9)

v4.4.0 (2026-03-18)

Bug Fixes

  • frontend: Add aria-expanded and aria-label to collapse buttons (8ffc547)

  • frontend: Add fallback for tile width/height in card calculations (69499ea)

  • frontend: Add full ARIA tab semantics to ScenarioPanel scope tabs (514f333)

  • frontend: Add keyboard navigation to tablist (e0b1a2b)

  • frontend: Derive auto-compact collapsed state from current devices (9029c55)

  • frontend: Display products error state in DeviceToolbar (2cf142a)

  • frontend: Explicitly type edge arrays as HsbkColor[] (e21e837)

  • frontend: Expose isLoading from products store (2365e6d)

  • frontend: Fix expandAllViz in auto-compact mode (1a8bd31)

  • frontend: Guard glow edge extraction against invalid tile dimensions (bd0a0df)

  • frontend: Handle errors in products store load() (cda2b4b)

  • frontend: Make loaded/loading reactive with $state in products store (ea671a1)

  • frontend: Use flex-start instead of start for cross-browser compat (45377db)

  • frontend: Use stable tabpanel ID for aria-controls (3ea070e)

  • frontend: Use void for fire-and-forget products.load() call (efa6214)

Features

  • frontend: Content-based card widths, auto-compact layout, and responsive fixes (cacd2a4)

  • frontend: Overhaul visualizer with Oklch color, ambilight glow, and compact layout (fcc7534)

Performance Improvements

  • frontend: Memoize hsbkToCss() for render loop performance (d10f39b)

  • frontend: Memoize hsbkToLinearRgb for glow calculation performance (d4e3151)

  • frontend: Use half-eviction instead of full cache clear (8ebc522)

v4.3.1 (2026-03-18)

Bug Fixes

  • dashboard: Broadcast metadata changes via WebSocket for live updates (6b933ae)

Documentation

  • event-bridge: Add metadata to _get_change_category return values (15e2dd1)

v4.3.0 (2026-02-04)

Bug Fixes

  • Address CodeRabbit review feedback (0bc07f5)

  • frontend: Clear pending updates on device removal and store clear (933d22e)

  • security: Update cookie to 0.7.0 to address CVE (dcb7460)

Features

  • dashboard: Add live device visualizer with real-time state updates (51fbcc0)

  • visualizer: Add dynamic grid layout with span-based sizing for matrix devices (9a7bb7e)

Performance Improvements

  • frontend: Improve dashboard performance for high-frequency updates (7433077)

v4.2.0 (2026-02-03)

Bug Fixes

  • Address CodeRabbit PR review feedback (e302407)

  • Correct $derived usage in ActivityLog.svelte for reactive filtering (a5e8280)

Features

  • api: Add WebSocket endpoint for real-time updates (b1e9889)

  • api: Complete WebSocket real-time event infrastructure (81cfa6f)

  • app: Add PyApp binary distribution support (Phase 5) (3c893a8)

  • dashboard: Add activity filtering and device toolbar (Phase 3) (249964a)

  • dashboard: Add scenario panel, pagination, and tabbed interface (Phase 4) (a50951d)

  • dashboard: Replace vanilla JS with SvelteKit frontend (a143c2c)

v4.1.0 (2026-02-03)

Features

  • api: Add device state update, bulk create, and pagination (1f7bb46)

v4.0.1 (2026-02-01)

Bug Fixes

  • app: Add products API, populate dashboard dropdown, remove stale TODOs (c49502a)

v4.0.0 (2026-02-01)

Bug Fixes

  • app: Pad zone_colors to zone_count with default color (46aed0a)

  • app: Preserve explicit empty devices/scenarios and truncate zone_colors (b5c420c)

Features

  • app: Add YAML config file support for CLI (fceb9af)

Breaking Changes

  • app: No devices are created by default anymore.

v3.1.0 (2026-01-11)

Features

  • Add Python 3.10 support (c19eee5)

v3.0.2 (2025-12-24)

Bug Fixes

  • api: Eliminate XSS vulnerabilities and extract dashboard JavaScript (8302a09)

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