From ba900dae122f6796c72fcf8748322fdf7283964f Mon Sep 17 00:00:00 2001 From: master <> Date: Sat, 28 Mar 2026 20:49:39 +0200 Subject: [PATCH] Add breadcrumbs to all policy section routes All policy child routes were missing data.breadcrumb, causing the breadcrumb trail to show only "Policy" regardless of depth. Added breadcrumbs to: Packs, Governance, Simulation, VEX & Exceptions, Gate Catalog, Gate Simulation, Environment/Release/Approval Gates, and Audit. Tab children intentionally omit breadcrumbs since the tab label provides that context. Breadcrumb trails now show e.g. "Policy > Governance" or "Policy > Simulation" matching the sidebar navigation hierarchy. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../policy-decisioning/policy-decisioning.routes.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Web/StellaOps.Web/src/app/features/policy-decisioning/policy-decisioning.routes.ts b/src/Web/StellaOps.Web/src/app/features/policy-decisioning/policy-decisioning.routes.ts index 7c7aa4315..4ea42e8ef 100644 --- a/src/Web/StellaOps.Web/src/app/features/policy-decisioning/policy-decisioning.routes.ts +++ b/src/Web/StellaOps.Web/src/app/features/policy-decisioning/policy-decisioning.routes.ts @@ -185,6 +185,7 @@ export const policyDecisioningRoutes: Routes = [ { path: 'packs', title: 'Policy Packs', + data: { breadcrumb: 'Packs' }, loadComponent: () => import('./policy-pack-shell.component').then( (m) => m.PolicyPackShellComponent, @@ -261,6 +262,7 @@ export const policyDecisioningRoutes: Routes = [ { path: 'governance', title: 'Policy Governance', + data: { breadcrumb: 'Governance' }, loadChildren: () => import('../policy-governance/policy-governance.routes').then( (m) => m.policyGovernanceRoutes, @@ -269,6 +271,7 @@ export const policyDecisioningRoutes: Routes = [ { path: 'simulation', title: 'Policy Simulation', + data: { breadcrumb: 'Simulation' }, loadChildren: () => import('../policy-simulation/policy-simulation.routes').then( (m) => m.policySimulationRoutes, @@ -277,6 +280,7 @@ export const policyDecisioningRoutes: Routes = [ { path: 'vex', title: 'VEX & Exceptions', + data: { breadcrumb: 'VEX & Exceptions' }, loadComponent: () => import('./policy-decisioning-vex-shell.component').then( (m) => m.PolicyDecisioningVexShellComponent, @@ -375,6 +379,7 @@ export const policyDecisioningRoutes: Routes = [ { path: 'gates/catalog', title: 'Policy Gate Catalog', + data: { breadcrumb: 'Gate Catalog' }, loadComponent: () => import('../policy-gates/components/policy-preview-panel/policy-preview-panel.component').then( (m) => m.PolicyPreviewPanelComponent, @@ -383,6 +388,7 @@ export const policyDecisioningRoutes: Routes = [ { path: 'gates/simulate/:promotionId', title: 'Gate Simulation', + data: { breadcrumb: 'Gate Simulation' }, loadComponent: () => import('../policy-gates/components/bundle-simulator/bundle-simulator.component').then( (m) => m.BundleSimulatorComponent, @@ -391,6 +397,7 @@ export const policyDecisioningRoutes: Routes = [ { path: 'gates/environments/:environment', title: 'Environment Gate Review', + data: { breadcrumb: 'Environment Gates' }, loadComponent: () => import('./policy-decisioning-gates-page.component').then( (m) => m.PolicyDecisioningGatesPageComponent, @@ -399,6 +406,7 @@ export const policyDecisioningRoutes: Routes = [ { path: 'gates/releases/:releaseId', title: 'Release Gate Review', + data: { breadcrumb: 'Release Gates' }, loadComponent: () => import('./policy-decisioning-gates-page.component').then( (m) => m.PolicyDecisioningGatesPageComponent, @@ -407,6 +415,7 @@ export const policyDecisioningRoutes: Routes = [ { path: 'gates/approvals/:approvalId', title: 'Approval Gate Review', + data: { breadcrumb: 'Approval Gates' }, loadComponent: () => import('./policy-decisioning-gates-page.component').then( (m) => m.PolicyDecisioningGatesPageComponent, @@ -415,6 +424,7 @@ export const policyDecisioningRoutes: Routes = [ { path: 'audit', title: 'Policy Audit', + data: { breadcrumb: 'Audit' }, loadComponent: () => import('./policy-decisioning-audit-shell.component').then( (m) => m.PolicyDecisioningAuditShellComponent,