diff --git a/docs/release-control/v6/internal/subsystems/unified-resources.md b/docs/release-control/v6/internal/subsystems/unified-resources.md index 7f021e0ca..fe23d558f 100644 --- a/docs/release-control/v6/internal/subsystems/unified-resources.md +++ b/docs/release-control/v6/internal/subsystems/unified-resources.md @@ -283,6 +283,9 @@ The identity card now follows the same rule: canonical identity rows stay in the primary summary, while aliases, IPs, and tags live in a smaller `Supporting context` block so the drawer answers "what is this resource" before showing every attached label. +When that card has no owned identity rows or supporting labels yet, the sparse +fallback now stays terse (`No identity metadata yet.`) so empty state chrome +does not read heavier than the data it is standing in for. Type-specific Docker, PBS, and PMG operational panels now also live inside a collapsed `Service details` support block, so lane-specific controls and breakdowns stay available without displacing the common runtime and identity diff --git a/frontend-modern/src/components/Infrastructure/ResourceDetailDrawer.tsx b/frontend-modern/src/components/Infrastructure/ResourceDetailDrawer.tsx index 1564ea9c5..cadaf3e0e 100644 --- a/frontend-modern/src/components/Infrastructure/ResourceDetailDrawer.tsx +++ b/frontend-modern/src/components/Infrastructure/ResourceDetailDrawer.tsx @@ -1120,7 +1120,7 @@ const DrawerContent: Component = (props) => {
- No enriched identity metadata yet. + No identity metadata yet.
diff --git a/frontend-modern/src/components/Infrastructure/__tests__/ResourceDetailDrawer.history.test.tsx b/frontend-modern/src/components/Infrastructure/__tests__/ResourceDetailDrawer.history.test.tsx index 5ec9f7ac5..44669e324 100644 --- a/frontend-modern/src/components/Infrastructure/__tests__/ResourceDetailDrawer.history.test.tsx +++ b/frontend-modern/src/components/Infrastructure/__tests__/ResourceDetailDrawer.history.test.tsx @@ -190,6 +190,7 @@ describe('ResourceDetailDrawer change history section', () => { expect(screen.queryByText('Host details')).toBeNull(); expect(screen.queryByText('Service details')).toBeNull(); expect(screen.queryByText('Supporting context')).toBeNull(); + expect(screen.queryByText('No identity metadata yet.')).toBeNull(); expect(screen.getByText('Discovery context')).toBeInTheDocument(); expect( screen.queryByText('Supporting metadata only. The web interface path above stays primary.'), diff --git a/frontend-modern/src/components/Infrastructure/__tests__/ResourceDetailDrawer.identity-runtime.test.tsx b/frontend-modern/src/components/Infrastructure/__tests__/ResourceDetailDrawer.identity-runtime.test.tsx index 6107f0a0c..d65f05cf8 100644 --- a/frontend-modern/src/components/Infrastructure/__tests__/ResourceDetailDrawer.identity-runtime.test.tsx +++ b/frontend-modern/src/components/Infrastructure/__tests__/ResourceDetailDrawer.identity-runtime.test.tsx @@ -250,7 +250,7 @@ describe('ResourceDetailDrawer runtime and identity cards', () => { expect(getByText('Supporting context')).toBeInTheDocument(); expect(getByText('Aliases')).toBeInTheDocument(); expect(getAllByText('pmg-main').length).toBeGreaterThan(0); - expect(queryByText('No enriched identity metadata yet.')).toBeNull(); + expect(queryByText('No identity metadata yet.')).toBeNull(); const sparse = baseResource({ id: 'host-min', @@ -267,7 +267,7 @@ describe('ResourceDetailDrawer runtime and identity cards', () => { }); const sparseRender = render(() => ); - expect(sparseRender.getByText('No enriched identity metadata yet.')).toBeInTheDocument(); + expect(sparseRender.getByText('No identity metadata yet.')).toBeInTheDocument(); }); it('shows canonical metrics target identity for docker-backed host resources', () => {