Files
ledgrab/RELEASE_NOTES.md
T
alexei.dolgolyov d467eb5dae
Build Release / create-release (push) Successful in 3s
Build Android APK / build-android (push) Successful in 5m57s
Build Release / build-linux (push) Successful in 5m44s
Build Release / build-docker (push) Successful in 7m51s
Lint & Test / test (push) Successful in 8m59s
Build Release / build-windows (push) Successful in 8m51s
chore: release v0.4.0
2026-04-21 19:41:40 +03:00

9.7 KiB
Raw Blame History

v0.4.0 (2026-04-21)

This release introduces a full Android TV app that embeds the Python server via Chaquopy, with boot-time autostart, root-based screen capture, and a watchdog. New device support includes BLE LED controllers (SP110E, Triones, Zengge, Govee), Android USB-serial Adalight/AmbiLED controllers, and a Group device type for combining multiple devices. Metrics now include battery and thermal-zone readings with a dashboard temperature chart. Devices get a new per-provider typed configuration model, and the project has been renamed from led-grab to LedGrab with the Home Assistant integration split into a separate repository.

Features

Android TV App

  • Android TV app embedding Python server via Chaquopy (8574424)
  • Boot-time autostart, capture watchdog, versionCode derived from git (b3775b2)
  • Root-based screen capture bypassing MediaProjection (5fcb9f8)

Devices

  • BLE LED controller support — SP110E, Triones, Zengge, Govee (2b5dac2)
  • Android USB-serial support for Adalight/AmbiLED controllers (7fcb8dd)
  • Group device type for combining multiple devices (4940007)
  • Per-provider typed device configs (phases 14) (d3a6416)

Metrics

  • Battery + thermal-zone readings with dashboard temperature chart (ecae05d)

Sources

  • Support nesting for composite color strip sources (cc9900d)

Project

  • Rename project to LedGrab; split Home Assistant integration into a separate repository (02cd9d5)

Bug Fixes

  • SP110E vendor handshake + Windows/bleak robustness (45f93fd)
  • Coerce BindableFloat fps to int when snapshotting scenes (580bd69)
  • Add autocomplete attributes to credential inputs (488df98)
  • Register pattern-templates API route; responsive toolbar overflow menu (38f73ba)
  • HA Light Target cards no longer flicker on every poll cycle (83ceaed)
  • EntitySelect now shows the selected value in weather/processed CSS editors (d3cd48e)
  • Bundle bettercam/dxcam/windows-capture in the Windows installer (92585e7)
  • Launcher: set TCL_LIBRARY/TK_LIBRARY for embedded Python (0e09eaf)
  • Comprehensive security, stability, and code quality audit (123da1b)

Development / Internal

CI/Build

  • Android multi-ABI APK pipeline + pydantic-core wheel rebuild (151cea3)
  • Add Android APK row to release downloads table (2477e00)
  • Decouple Android release attach; add workflow_dispatch to release.yml (524e422)
  • Android: fix wheels find-links URL on Linux CI (5d6310f)
  • Android: fix missing python symlink parent; restrict to release tags (7ef17c1)

Refactoring

  • Route ESP-NOW client through SerialTransport (928d626)
  • MetricsProvider abstraction with Android /proc backend (546b24d)
  • Move build scripts to build/ directory (a0b65e3)

Documentation

  • Update TODO and frontend context docs (e678e55)

All Commits
Hash Message Author
524e422 ci: decouple android release attach, add workflow_dispatch to release.yml alexei.dolgolyov
5d6310f fix(android): make wheels find-links URL work on Linux CI alexei.dolgolyov
7ef17c1 ci(android): fix missing python symlink parent, restrict to release tags alexei.dolgolyov
b3775b2 feat(android): boot-time autostart, capture watchdog, versionCode from git alexei.dolgolyov
45f93fd fix(devices): SP110E vendor handshake + Windows/bleak robustness alexei.dolgolyov
2b5dac2 feat(devices): BLE LED controller support (SP110E/Triones/Zengge/Govee) alexei.dolgolyov
d3a6416 refactor(devices): per-provider typed configs (phases 1-4) alexei.dolgolyov
123da1b fix: comprehensive security, stability, and code quality audit alexei.dolgolyov
5fcb9f8 feat(android): root-based screen capture bypassing MediaProjection alexei.dolgolyov
928d626 refactor(devices): route ESP-NOW client through SerialTransport alexei.dolgolyov
580bd69 fix(scenes): coerce BindableFloat fps to int when snapshotting alexei.dolgolyov
7fcb8dd feat(devices): Android USB-serial support for Adalight/AmbiLED controllers alexei.dolgolyov
ecae05d feat(metrics): battery + thermal-zone readings with dashboard temp chart alexei.dolgolyov
546b24d refactor(metrics): MetricsProvider abstraction with Android /proc backend alexei.dolgolyov
488df98 fix(frontend): add autocomplete attrs to credential inputs alexei.dolgolyov
2477e00 ci: add Android APK row to release downloads table alexei.dolgolyov
151cea3 ci: Android multi-ABI APK pipeline + pydantic-core wheel rebuild alexei.dolgolyov
8574424 feat: Android TV app embedding Python server via Chaquopy alexei.dolgolyov
a0b65e3 refactor: move build scripts to build/ directory alexei.dolgolyov
02cd9d5 refactor: rename project to LedGrab, split HA integration into separate repo alexei.dolgolyov
38f73ba fix: register pattern-templates API route; add responsive toolbar overflow menu alexei.dolgolyov
e678e55 docs: update TODO and frontend context docs alexei.dolgolyov
83ceaed fix: HA Light Target cards flickering on every poll cycle alexei.dolgolyov
d3cd48e fix: EntitySelect not showing selected value in weather/processed CSS editors alexei.dolgolyov
cc9900d feat: support nesting for composite color strip sources alexei.dolgolyov
4940007 feat: add Group device type for combining multiple devices alexei.dolgolyov
92585e7 fix(build): bundle bettercam/dxcam/windows-capture in installer alexei.dolgolyov
0e09eaf fix(launcher): set TCL_LIBRARY/TK_LIBRARY for embedded Python alexei.dolgolyov