Skip to content

LightningROD 0.3.21

Choose a tag to compare

@github-actions github-actions released this 26 Apr 03:14
· 442 commits to main since this release

Added

  • ha_fordpass adapter with FIELD_CONTRACTS — single ingestion entry point replacing scattered hass_processor / hass_client logic.
  • Unit-detection layer: resolves HA signal units at ingestion time via a pure to_metric() conversion function and UnknownSourceUnit sentinel.
  • ingest_schema_version column on ev_session, ev_trip_metrics, and related models.
  • /admin/data-sources page listing all HA signal sources with contract details, contract/detection coverage, and raw last-seen values.
  • Developer Tools toggle in Settings → General; Data Sources sidebar link is hidden unless developer mode is enabled.
  • gen_data_sources_doc.py generator and committed data-sources.md reference doc.
  • FieldContract module for observable-contract validation and display-layer assertions.
  • mypy static type checking added to the dev toolchain (CI-enforced).
  • Ruff ruleset expanded (I, B, UP) with pre-commit hook; codebase-wide type fixes applied.
  • Cross-source match-and-enrich tests for ev_trip_metrics dedup.
  • Thermal field wiring (elvehcharging/outsidetemp) for trip ingestion.
  • Pre-commit reference-checking script under scripts/.
  • /healthz liveness + readiness endpoint (returns 503 if the database is unreachable) and HEALTHCHECK directives on both Docker images so docker ps reports container health.
  • About card on Settings → General showing the running LightningROD version with links to release notes, documentation, and source.

Changed

  • hass_processor and hass_client migrated into ha_fordpass adapter; legacy _fordpass_* feature flags removed.
  • Action buttons on review location rows clustered per row (UX polish).
  • Approved-tab edit dialog hoisted to page-scope modal (reuses shared edit-loc-modal).
  • Docker artifacts moved into a dedicated docker/ subfolder.

Fixed

  • Review queue D-B3 filter dropped on POST-merge Pending branches (WR-01 regression).
  • tripRangeRegeneration field name corrected to tripRangeRegenerated.

Install

Option A — Standalone (embedded PostgreSQL, simplest):

docker pull ghcr.io/squidbytes/lightningrod:0.3.21-standalone
docker run -d \
  --name lightningrod \
  -p 8000:8000 \
  -v lightningrod-data:/var/lib/postgresql/data \
  ghcr.io/squidbytes/lightningrod:0.3.21-standalone

Option B — Two-container (bring-your-own PostgreSQL):

curl -LO https://github.com/SquidBytes/LightningROD/releases/download/v0.3.21/lightningrod-0.3.21-compose.tar.gz
tar xzf lightningrod-0.3.21-compose.tar.gz
cd lightningrod-0.3.21
cp .env.example .env    # edit POSTGRES_PASSWORD etc.
docker compose up -d

Both images are multi-arch: linux/amd64 + linux/arm64 (Apple Silicon, Raspberry Pi 4/5).

Then open http://localhost:8000 and go to Settings → Home Assistant to connect your HA instance.

Documentation

Full documentation, setup guides, and feature reference:
https://squidbytes.github.io/LightningROD/

What's Changed

New Contributors

Full Changelog: https://github.com/SquidBytes/LightningROD/commits/v0.3.21