Govern dashboard presentation helpers

This commit is contained in:
rcourtman
2026-03-24 15:39:10 +00:00
parent ab79f495b4
commit 15d30e4754
2 changed files with 36 additions and 0 deletions
@@ -92,6 +92,10 @@ work extends shared components instead of creating new local variants.
63. `frontend-modern/src/utils/reportableResourceTypes.ts`
64. `frontend-modern/src/utils/reportingResourceTypes.ts`
65. `frontend-modern/src/utils/problemResourcePresentation.ts`
66. `frontend-modern/src/utils/dashboardEmptyStatePresentation.ts`
67. `frontend-modern/src/utils/dashboardGuestPresentation.ts`
68. `frontend-modern/src/utils/dashboardKpiPresentation.ts`
69. `frontend-modern/src/utils/dashboardTrendPresentation.ts`
61. `frontend-modern/src/pages/__tests__/Operations.helpers.test.ts`
59. `frontend-modern/src/components/Settings/NetworkDiscoverySection.tsx`
60. `frontend-modern/src/components/Settings/NetworkBoundarySettingsSection.tsx`
@@ -250,6 +254,14 @@ must treat missing infrastructure history as a governed empty state rather than
as a silent blank sparkline box. Error copy and empty-history copy belong to
the feature shell, while the data path and chart-shaping logic must stay in the
owned hook/model layers that feed it.
That same dashboard boundary now also owns the shared dashboard presentation
helpers through `frontend-modern/src/utils/dashboardEmptyStatePresentation.ts`,
`frontend-modern/src/utils/dashboardGuestPresentation.ts`,
`frontend-modern/src/utils/dashboardKpiPresentation.ts`, and
`frontend-modern/src/utils/dashboardTrendPresentation.ts`. Dashboard loading,
disconnect, and empty states; guest backup/disk fallback copy; KPI card
framing; and trend palette/error copy must extend those helpers instead of
being redefined inline in route shells, guest rows, or overview cards.
That shell must also stay passive with respect to data ownership: dashboard
trend cards may render the summary-range controls and operator-facing empty or
error copy, but they must not reintroduce route-local metrics-history fetch
@@ -2351,6 +2351,10 @@
"frontend-modern/src/features/operations/OperationsPageSurface.tsx",
"frontend-modern/src/pages/Operations.tsx",
"frontend-modern/src/utils/aiSettingsPresentation.ts",
"frontend-modern/src/utils/dashboardEmptyStatePresentation.ts",
"frontend-modern/src/utils/dashboardGuestPresentation.ts",
"frontend-modern/src/utils/dashboardKpiPresentation.ts",
"frontend-modern/src/utils/dashboardTrendPresentation.ts",
"frontend-modern/src/utils/diagnosticsPresentation.ts",
"frontend-modern/src/utils/discoveryPresentation.ts",
"frontend-modern/src/utils/problemResourcePresentation.ts",
@@ -2495,6 +2499,26 @@
"frontend-modern/src/utils/__tests__/reportingResourceTypes.test.ts"
]
},
{
"id": "dashboard-presentation-helpers",
"label": "dashboard presentation helper proof",
"match_prefixes": [],
"match_files": [
"frontend-modern/src/utils/dashboardEmptyStatePresentation.ts",
"frontend-modern/src/utils/dashboardGuestPresentation.ts",
"frontend-modern/src/utils/dashboardKpiPresentation.ts",
"frontend-modern/src/utils/dashboardTrendPresentation.ts"
],
"allow_same_subsystem_tests": false,
"test_prefixes": [],
"exact_files": [
"frontend-modern/src/components/Settings/__tests__/monitoredSystemModelGuardrails.test.ts",
"frontend-modern/src/utils/__tests__/dashboardEmptyStatePresentation.test.ts",
"frontend-modern/src/utils/__tests__/dashboardGuestPresentation.test.ts",
"frontend-modern/src/utils/__tests__/dashboardKpiPresentation.test.ts",
"frontend-modern/src/utils/__tests__/dashboardTrendPresentation.test.ts"
]
},
{
"id": "ai-settings-presentation-helper",
"label": "AI settings presentation helper proof",