diff --git a/opencode/decisions.yaml b/opencode/decisions.yaml index 1c39028d..84b14a26 100644 --- a/opencode/decisions.yaml +++ b/opencode/decisions.yaml @@ -1150,3 +1150,22 @@ notes: - spoolman pin: true status: active + - id: 2026-10-16-cfs-lite-grafana-bar-colours-are-synced + date: 2026-10-16 + title: CFS Lite Grafana bar colours are synced by an in-HA job every 5 minutes + decision: The four CFS Lite bar colours on the Grafana 'Filament - Spools & Forecast' + dashboard are rewritten every 5 min by automation.grafana_colour_sync_cfs_lite_slots + -> shell_command.grafana_colour_sync -> /config/colour-sync.py, keyed on each + spool's 'CFS Lite N' location. + rationale: Grafana cannot colour bars from the metric (colour is absent from the + Prometheus data), so colour must be a literal in the dashboard JSON rewritten + externally. HA renders the mapping and passes it as --colours because a templated + shell_command runs without a shell (no redirect/pipes), and the in-container job + cannot call HA's API (Supervisor proxy returns 401). The Grafana token lives in + /config/.colour-sync.token. + entities: + - automation.grafana_colour_sync_cfs_lite_slots + files: + - colour-sync.py + - configuration.yaml + status: active