# Operations Consolidation UI ## Module Web ## Status VERIFIED ## Description Shipped the canonical `Ops > Operations` owner shell with grouped overview cards, blocking-strip signals, canonical `/ops/operations/*` child routes, absorbed legacy data-integrity and queue links, and explicit deep links into `Setup > Topology` for agent-fleet ownership. Legacy `platform-ops/*` and `platform/ops/*` aliases now resolve into the consolidated shell instead of requiring a parallel product tree. ## Implementation Details - **Feature directory**: `src/Web/StellaOps.Web/src/app/features/platform/ops/` - **Primary components**: - `platform-ops-overview-page` (`src/Web/StellaOps.Web/src/app/features/platform/ops/platform-ops-overview-page.component.ts`) - `platform-feeds-airgap-page` (`src/Web/StellaOps.Web/src/app/features/platform/ops/platform-feeds-airgap-page.component.ts`) - `platform-jobs-queues-page` (`src/Web/StellaOps.Web/src/app/features/platform/ops/platform-jobs-queues-page.component.ts`) - **Canonical routes**: - `/ops/operations` - `/ops/operations/data-integrity` - `/ops/operations/jobs-queues` - `/ops/operations/health-slo` - `/ops/operations/feeds-airgap` - `/ops/operations/offline-kit` - `/ops/operations/quotas` - `/ops/operations/aoc` - `/ops/operations/doctor` - `/ops/operations/signals` - `/ops/operations/packs` - `/ops/operations/notifications` - **Legacy aliases**: - `/platform-ops/*` - `/platform/ops/*` - **Secondary entry points**: - `Mission Control` - `Setup > Topology` - `Evidence` - `Releases` ## E2E Test Plan - **Setup**: - [ ] Log in with a user that can access `Ops` and `Setup`. - [ ] Navigate to `/ops/operations`. - [ ] Ensure doctor trend and approvals fixtures or seeded data exist. - **Core verification**: - [ ] Verify `Blocking`, `Execution`, `Health`, `Supply And Airgap`, and `Capacity And Setup Boundary` groups render. - [ ] Verify overview cards drill into the intended canonical child routes. - [ ] Verify Setup-boundary links send agent and topology work to `Setup > Topology`. - **Legacy verification**: - [ ] Verify `platform-ops/*` and `platform/ops/*` aliases land in canonical `/ops/operations/*` routes. - [ ] Verify query-string state survives redirect into tabbed child pages. - [ ] Verify data-integrity drill-ins and job detail routes keep working after alias cutover. ## Verification - Run: - `npx ng test --watch=false --include src/tests/platform-ops/platform-ops-routes.spec.ts --include src/tests/platform-ops/platform-ops-overview-page.component.spec.ts --include src/tests/platform-ops/platform-feeds-airgap-page.component.spec.ts --include src/tests/platform-ops/data-integrity-pages.spec.ts --include src/tests/navigation/legacy-redirects.spec.ts` - `PLAYWRIGHT_PORT=4410 npx playwright test tests/e2e/operations-consolidation.spec.ts --workers=1` - Tier 0 (source): pass - Tier 1 (build/tests): pass - Tier 2 (behavior): pass - Note: under the local Angular dev server, `/platform*` first-request URLs are intercepted by `proxy.conf.json`, so the Playwright legacy-alias check uses client-side navigation after app bootstrap to validate Angular redirect behavior deterministically. - Verified on (UTC): 2026-03-07T18:28:16Z