diff --git a/openspec/changes/prometheus-direct-charting/spec.md b/openspec/changes/prometheus-direct-charting/spec.md index fb97a03..1d89f17 100644 --- a/openspec/changes/prometheus-direct-charting/spec.md +++ b/openspec/changes/prometheus-direct-charting/spec.md @@ -91,15 +91,15 @@ After the change, `grep -ri grafana backend/src --include='*.py'` MUST return no ### SC-116 — No grafana references in frontend source -After the change, `grep -ri grafana frontend/src` MUST return no matches. +After the change, `grep -ri grafana frontend/src` MUST return no matches, **excluding** (a) test fixtures where "Grafana" appears as a user-authored dashboard *shortcut label* unrelated to the grafana service type (e.g. `Dashboard.test.tsx`), and (b) `LinksTab.tsx` / `service-tabs/index.ts` lines that are themselves being deleted as part of SC-118. (Source finding: `ObservabilityPage.tsx` was refactored into `service-tabs/`.) ### SC-117 — Grafana service type is gone from registries Neither the backend `SERVICE_DEFINITIONS` / `SERVICE_ADAPTERS` nor the frontend `SERVICE_REGISTRY` / `BUILTIN_WIDGETS` MUST contain a `grafana` entry. The `integrations/grafana.py` file MUST be deleted. -### SC-118 — Grafana status checks are removed +### SC-118 — Grafana status checks and UI sections are removed -The `get_grafana_status` endpoint and its frontend hook (`useGrafanaStatus`) MUST be removed. The ObservabilityPage MUST NOT render a Grafana status section. +The `get_grafana_status` endpoint and its frontend hook (`useGrafanaStatus`) MUST be removed. The UI surface previously in `ObservabilityPage.tsx` has been refactored into a per-service-type `service-tabs/` architecture; the Grafana removal targets are therefore `service-tabs/LinksTab.tsx` + its test, the `grafana` case in `service-tabs/index.ts`, the grafana entry in `integrations/navEntries.ts`, the `grafana` member of `Dashboard.tsx`'s `OBSERVABILITY_TYPES` set, and any Grafana empty-state copy in `ServicesPage.tsx`. The literal `ObservabilityPage.tsx` no longer exists; SC-118's *intent* (no Grafana UI surface) is what is verified. ### SC-119 — Grafana widget instances degrade gracefully