From 77b43e42d152de4401c13d8e8feeab9d3fc3dfdc Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Fri, 15 May 2026 21:10:53 +0000
Subject: [PATCH 1/2] Initial plan
From 574d042cbdbbe6428ec48c763c62947b86f72df3 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Fri, 15 May 2026 21:17:25 +0000
Subject: [PATCH 2/2] style: align ingress dashboard with Home Assistant theme
conventions
Agent-Logs-Url: https://github.com/DarinShapiro/ThreadObservabilityPOC/sessions/88a653f5-c72d-4253-8806-c945aeabf971
Co-authored-by: DarinShapiro <23219821+DarinShapiro@users.noreply.github.com>
---
addons/thread-observability/README.md | 5 +
.../thread_observability/api/dashboard.html | 141 ++++++++++++------
.../app/tests/test_dashboard_http.py | 11 ++
3 files changed, 108 insertions(+), 49 deletions(-)
diff --git a/addons/thread-observability/README.md b/addons/thread-observability/README.md
index c3bac1f..9c7a8db 100644
--- a/addons/thread-observability/README.md
+++ b/addons/thread-observability/README.md
@@ -55,3 +55,8 @@ For API-surface regression without a Home Assistant deployment, run `PYTHONPATH=
- Legacy node-shaping reference exports now live under `../../samples/addon/`. They are retained for offline inspection only and are not runtime inputs for the add-on.
- The ad hoc OTBR parser smoke helper lives at `../../scripts/test_real_logs.py` rather than the repository root.
- `app/src/thread_observability/pipeline/reasoner.py` intentionally retains the pre-redesign rule body as reference code while the active runtime keeps issue detection paused pending GitHub issue #5.
+
+## Ingress dashboard styling notes
+
+- The dashboard now prefers Home Assistant theme variables (for example `--primary-background-color`, `--ha-card-background`, `--primary-text-color`, `--secondary-text-color`, and `--accent-color`) so ingress surfaces track active HA light/dark themes.
+- We intentionally keep product-specific diagnostic colors for Thread role classes (Leader/Router/REED/FED/SED/phantom) and graph/risk overlays because those hues encode operational meaning across table pills, graph legend, and topology rendering.
diff --git a/addons/thread-observability/app/src/thread_observability/api/dashboard.html b/addons/thread-observability/app/src/thread_observability/api/dashboard.html
index 7f12907..be36131 100644
--- a/addons/thread-observability/app/src/thread_observability/api/dashboard.html
+++ b/addons/thread-observability/app/src/thread_observability/api/dashboard.html
@@ -10,10 +10,32 @@