diff --git a/docs/release-control/v6/internal/subsystems/registry.json b/docs/release-control/v6/internal/subsystems/registry.json index f64fd919a3..c836bb70fa 100644 --- a/docs/release-control/v6/internal/subsystems/registry.json +++ b/docs/release-control/v6/internal/subsystems/registry.json @@ -3866,6 +3866,7 @@ "frontend-modern/src/components/Infrastructure/useResourceDetailDrawerState.ts", "frontend-modern/src/components/Infrastructure/useUnifiedResourceTableState.ts", "frontend-modern/src/components/Infrastructure/useUnifiedResourceTableViewportSync.ts", + "frontend-modern/src/components/PMG/ServiceHealthBadge.tsx", "frontend-modern/src/features/infrastructure/infrastructurePageModel.ts", "frontend-modern/src/features/infrastructure/InfrastructurePageSurface.tsx", "frontend-modern/src/features/infrastructure/useInfrastructurePageRouteState.ts", @@ -3886,6 +3887,9 @@ "frontend-modern/src/utils/resourceStateAdapters.ts", "frontend-modern/src/utils/resourceTypeCompat.ts", "frontend-modern/src/utils/resourceTypePresentation.ts", + "frontend-modern/src/utils/serviceHealthPresentation.ts", + "frontend-modern/src/utils/sourceTypePresentation.ts", + "frontend-modern/src/utils/workloadTypePresentation.ts", "internal/api/resources.go" ], "verification": { @@ -4050,23 +4054,31 @@ }, { "id": "resource-type-badge-presentation-helpers", - "label": "resource type and badge presentation helper proof", + "label": "resource type, badge, and service-health presentation helper proof", "match_prefixes": [], "match_files": [ "frontend-modern/src/components/Infrastructure/resourceBadges.ts", + "frontend-modern/src/components/PMG/ServiceHealthBadge.tsx", "frontend-modern/src/utils/canonicalResourceTypes.ts", "frontend-modern/src/utils/resourceBadgePresentation.ts", "frontend-modern/src/utils/resourceTypeCompat.ts", - "frontend-modern/src/utils/resourceTypePresentation.ts" + "frontend-modern/src/utils/resourceTypePresentation.ts", + "frontend-modern/src/utils/serviceHealthPresentation.ts", + "frontend-modern/src/utils/sourceTypePresentation.ts", + "frontend-modern/src/utils/workloadTypePresentation.ts" ], "allow_same_subsystem_tests": false, "test_prefixes": [], "exact_files": [ "frontend-modern/src/components/Infrastructure/__tests__/resourceBadges.test.ts", "frontend-modern/src/utils/__tests__/canonicalResourceTypes.test.ts", + "frontend-modern/src/utils/__tests__/frontendResourceTypeBoundaries.test.ts", "frontend-modern/src/utils/__tests__/resourceBadgePresentation.test.ts", "frontend-modern/src/utils/__tests__/resourceTypeCompat.test.ts", - "frontend-modern/src/utils/__tests__/resourceTypePresentation.test.ts" + "frontend-modern/src/utils/__tests__/resourceTypePresentation.test.ts", + "frontend-modern/src/utils/__tests__/serviceHealthPresentation.test.ts", + "frontend-modern/src/utils/__tests__/sourceTypePresentation.test.ts", + "frontend-modern/src/utils/__tests__/workloadTypePresentation.test.ts" ] }, { diff --git a/docs/release-control/v6/internal/subsystems/unified-resources.md b/docs/release-control/v6/internal/subsystems/unified-resources.md index eba799c144..3c949994bc 100644 --- a/docs/release-control/v6/internal/subsystems/unified-resources.md +++ b/docs/release-control/v6/internal/subsystems/unified-resources.md @@ -87,9 +87,13 @@ cross-source deduplication. 65. `frontend-modern/src/utils/resourceStateAdapters.ts` 66. `frontend-modern/src/utils/resourceTypeCompat.ts` 67. `frontend-modern/src/utils/resourceTypePresentation.ts` -68. `frontend-modern/src/utils/resourceIdentity.ts` -69. `frontend-modern/src/components/Infrastructure/resourceDetailDrawerIdentityModel.ts` -70. `frontend-modern/src/hooks/useDashboardTrends.ts` +68. `frontend-modern/src/utils/serviceHealthPresentation.ts` +69. `frontend-modern/src/utils/sourceTypePresentation.ts` +70. `frontend-modern/src/utils/workloadTypePresentation.ts` +71. `frontend-modern/src/components/PMG/ServiceHealthBadge.tsx` +72. `frontend-modern/src/utils/resourceIdentity.ts` +73. `frontend-modern/src/components/Infrastructure/resourceDetailDrawerIdentityModel.ts` +74. `frontend-modern/src/hooks/useDashboardTrends.ts` ## Shared Boundaries @@ -860,6 +864,18 @@ resource tables, drawers, and infrastructure summary cards. Future resource type or badge wording changes should extend these unified-resource owners instead of rebuilding type-label or badge mapping logic inside infrastructure, settings, alerts, recovery, or dashboard-local helpers. +That same unified-resource presentation boundary also owns workload, source, +and service-health labeling now. `frontend-modern/src/utils/workloadTypePresentation.ts` +owns canonical workload-type alias handling plus badge labels/titles, +`frontend-modern/src/utils/sourceTypePresentation.ts` owns canonical source +labels and source badge styling, and +`frontend-modern/src/utils/serviceHealthPresentation.ts` owns canonical +service-health tone, dot, and compact-summary presentation. The PMG-facing +consumer `frontend-modern/src/components/PMG/ServiceHealthBadge.tsx` is part +of that same boundary and must stay a thin render shell over the canonical +service-health helper. Future workload/source/service-health wording changes +should extend these unified-resource owners instead of rebuilding status or +badge logic inside PMG, recovery, dashboard, or infrastructure-local views. The shared resource-runtime adapter boundary is also owned here now. `frontend-modern/src/utils/agentResources.ts` owns canonical actionable resource identities, agent-facet detection, cluster-name fallbacks, and