diff --git a/docs/release-control/v6/internal/subsystems/unified-resources.md b/docs/release-control/v6/internal/subsystems/unified-resources.md index 287a6ff91..862b7bf76 100644 --- a/docs/release-control/v6/internal/subsystems/unified-resources.md +++ b/docs/release-control/v6/internal/subsystems/unified-resources.md @@ -209,6 +209,10 @@ The resource drawer now applies the same rule to its investigation-context governance block: the default posture remains part of the canonical policy contract, but the drawer only surfaces the governance section when the policy state is non-default or otherwise consequential to operator understanding. +The drawer investigation summary line also follows that boundary now: default +`Cloud Summary` routing is not repeated in the collapsed summary text, while +non-default routing still appears when it materially changes how the operator +should read the resource. The shared routing policy itself now stays intentionally minimal: it carries only the routing scope and the redaction hints derived from canonical sensitivity, and the cloud-summary decision is derived from that scope 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 4c127257f..8b8e4f53e 100644 --- a/frontend-modern/src/components/Infrastructure/__tests__/ResourceDetailDrawer.history.test.tsx +++ b/frontend-modern/src/components/Infrastructure/__tests__/ResourceDetailDrawer.history.test.tsx @@ -370,10 +370,12 @@ describe('ResourceDetailDrawer change history section', () => { render(() => ); await screen.findByText('Investigation context'); + expect(screen.queryByText('Routing Cloud Summary')).toBeNull(); fireEvent.click(screen.getByRole('button', { name: 'Show context' })); expect(screen.queryByText('Data Governance')).toBeNull(); expect(screen.queryByText('AI-Safe Summary')).toBeNull(); + expect(screen.queryByText('Routing Cloud Summary')).toBeNull(); }); it('keeps details label-first without a summary sentence', () => { diff --git a/frontend-modern/src/components/Infrastructure/useResourceDetailDrawerDerivedState.ts b/frontend-modern/src/components/Infrastructure/useResourceDetailDrawerDerivedState.ts index 9fc9f4331..cc9fc8d53 100644 --- a/frontend-modern/src/components/Infrastructure/useResourceDetailDrawerDerivedState.ts +++ b/frontend-modern/src/components/Infrastructure/useResourceDetailDrawerDerivedState.ts @@ -202,7 +202,7 @@ export const useResourceDetailDrawerDerivedState = ( `${resourceCorrelations().length} correlation${resourceCorrelations().length === 1 ? '' : 's'}`, ); } - if (resource.policy?.routing.scope) { + if (resource.policy?.routing.scope && !hasDefaultResourcePolicyPosture(resource.policy)) { summary.push(`Routing ${getResourceRoutingScopeLabel(resource.policy.routing.scope)}`); }