feat(ui): ship consolidated operations shell

This commit is contained in:
master
2026-03-07 20:31:32 +02:00
parent 55701483ea
commit a3f532359b
29 changed files with 1447 additions and 454 deletions

View File

@@ -0,0 +1,62 @@
# 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

View File

@@ -1,128 +0,0 @@
# Sprint 20260307-026 - Platform Ops Consolidation
## Topic & Scope
- Consolidate legacy `platform-ops` ideas into one canonical `Ops > Operations` shell.
- Ship a fully usable consolidated Operations shell with a working overview, child routes, legacy redirects, and absorbed high-value widgets from the old surfaces.
- Complete the missing operator functionality in the active shell instead of merely cataloging or grouping old pages.
- Working directory: `src/Web/StellaOps.Web/src/app/features/platform`.
- Allowed coordination edits: `src/Web/StellaOps.Web/src/app/features/platform-ops/`, `src/Web/StellaOps.Web/src/app/routes/operations.routes.ts`, `src/Web/StellaOps.Web/src/app/features/aoc-compliance/`, `docs/modules/ui/platform-ops-consolidation`, and `docs/modules/ui/TASKS.md`.
- Expected evidence: active Operations overview and child routes, absorbed legacy widgets, working redirects, targeted tests, and updated operator docs.
## Dependencies & Concurrency
- Depends on:
- `docs/modules/ui/platform-ops-consolidation/README.md`
- `docs/UI_GUIDE.md`
- `src/Web/StellaOps.Web/src/app/routes/operations.routes.ts`
- `src/Web/StellaOps.Web/src/app/features/platform/ops/platform-ops-overview-page.component.ts`
- `src/Web/StellaOps.Web/src/app/features/platform-ops/platform-ops-overview.component.ts`
- `src/Web/StellaOps.Web/src/app/features/aoc-compliance/aoc-compliance.routes.ts`
- Safe parallelism:
- overview taxonomy and child-route labeling should freeze before widget implementation begins
- grouped overview cards and route cleanup can proceed in parallel once taxonomy is stable
- Setup boundary work can proceed in parallel with legacy widget absorption
## Documentation Prerequisites
- `docs/modules/ui/platform-ops-consolidation/README.md`
- `docs/modules/ui/contextual-actions-patterns/README.md`
- `docs/modules/ui/restoration-topics/platform-ops-consolidation.md`
- `docs/modules/ui/component-preservation-map/RESTORATION_PRIORITIES.md`
## Delivery Tracker
### FE-PO-001 - Rebuild the Operations overview and submenu in the live shell
Status: TODO
Dependency: none
Owners: Product Manager, FE Architect
Task description:
- Implement the grouped overview taxonomy and submenu structure in the active `Ops > Operations` shell.
- Ensure the overview and submenu expose the real operator concerns rather than leaving them as a paper design.
Completion criteria:
- [ ] The live shell exposes the intended overview groups and submenu entries.
- [ ] Overview group labels and child-route labels are wired in code.
- [ ] No parallel `platform-ops` owner tree is required for operator access.
### FE-PO-002 - Ship the overview page and grouped blocking cards
Status: TODO
Dependency: FE-PO-001
Owners: Developer, FE Architect
Task description:
- Implement the overview page with blocking strip, grouped cards, trend summaries, and single-target drill-ins.
- Make the overview page usable as the real operator landing page rather than a placeholder around child routes.
Completion criteria:
- [ ] Blocking strip renders the required signals in the live shell.
- [ ] Grouped cards route into working child pages.
- [ ] Overview sections follow one consistent shipped pattern.
### FE-PO-003 - Absorb high-value legacy widgets and pages
Status: TODO
Dependency: FE-PO-001
Owners: Developer, Documentation author
Task description:
- Migrate the high-value legacy `platform-ops` widgets and pages into the overview or the correct child routes.
- Retire only the obsolete duplicates after the missing operational functionality is actually present in the live shell.
Completion criteria:
- [ ] High-value legacy widgets are visible in the active shell or child routes.
- [ ] Missing operational views are actually shipped into target pages.
- [ ] Only genuinely duplicated legacy routes remain candidates for retirement.
### FE-PO-004 - Cut over routes and legacy aliases
Status: TODO
Dependency: FE-PO-001
Owners: FE Architect, Developer
Task description:
- Implement canonical `/ops/operations/*` paths, legacy alias redirects, and route-label consistency.
- Ensure old bookmarks and legacy route trees redirect into working pages without reviving a second shell.
Completion criteria:
- [ ] Canonical route family is active in the router.
- [ ] Legacy aliases redirect into working operations pages.
- [ ] Sidebar, overview cards, and breadcrumb labels match in the shipped shell.
### FE-PO-005 - Complete Setup boundary and topology deep links
Status: TODO
Dependency: FE-PO-002
Owners: Product Manager, FE Architect
Task description:
- Implement the boundary between operations monitoring and setup ownership, especially for agent fleet and topology concerns.
- Wire deep links between `Ops > Operations` and `Setup > Topology` where operators need to cross that boundary.
Completion criteria:
- [ ] Agent fleet and topology ownership remain under Setup in the live UI.
- [ ] Operations-to-Setup deep links work from shipped pages.
- [ ] No duplicated topology management remains exposed under Ops.
### FE-PO-006 - Verify, document, and cut over the consolidated shell
Status: TODO
Dependency: FE-PO-004
Owners: QA, Documentation author
Task description:
- Add Playwright scenarios for the operations overview, grouped cards, child-route drill-ins, and legacy alias redirects.
- Update UI docs and operational runbooks so the consolidated shell ships as the usable owner surface.
Completion criteria:
- [ ] Verification covers overview groups and target routes.
- [ ] Legacy alias redirects are included in testing.
- [ ] Docs reflect the consolidated and shipped owner shell.
## Execution Log
| Date (UTC) | Update | Owner |
| --- | --- | --- |
| 2026-03-07 | Sprint created to ship a consolidated Operations shell with grouped overview cards, stable child routes, legacy-widget absorption, and explicit Setup boundaries. | Project Manager |
## Decisions & Risks
- Decision: `Ops > Operations` remains the one operator shell; legacy `platform-ops` becomes migration input only.
- Decision: overview cards should be grouped by operator concern, not by backend service naming alone.
- Risk: useful legacy widgets may be dropped if the merge matrix is shallow.
- Mitigation: require a legacy widget absorption matrix before implementation begins.
- Risk: topology and agent-fleet concerns may leak back into Ops ownership.
- Mitigation: freeze Setup boundaries and cross-links explicitly.
- Delivery rule: this sprint is only complete when the consolidated Operations shell is the usable owner surface and legacy pages are no longer needed for the restored operator workflows.
- Reference design note: `docs/modules/ui/platform-ops-consolidation/README.md`.
## Next Checkpoints
- 2026-03-08: confirm one-shell decision, overview groups, and Setup boundary.
- 2026-03-09: freeze overview card contract and legacy merge matrix.
- 2026-03-10: finalize route cleanup and QA contract.

View File

@@ -16,8 +16,12 @@ The Console presents operator dashboards for scans, policies, VEX evidence, runt
- Added restoration topic shape notes at `restoration-topics/README.md` for Watchlist, Reachability Witnessing, Platform Ops, Triage explainability, and Workflow Visualization placement.
- Added implementation-ready UX dossiers for Watchlist, Reachability Witnessing, Platform Ops Consolidation, Triage Explainability Workspace, Workflow Visualization and Replay, and shared contextual action patterns.
- Added FE sprint files for the five accepted restoration topics plus a shared sprint for single actions, drawers, tabs, and stray-page placement patterns.
- Shipped the canonical `Setup > Trust & Signing` watchlist shell, including entries, alerts, tuning, and Mission Control or Notifications deep links.
- Added checked-feature verification for watchlist management at `../../features/checked/web/identity-watchlist-management-ui.md`.
- Shipped the canonical `Security > Reachability` witness and proof-of-exposure shell, including cross-shell handoffs from findings, triage, evidence replay, and release detail.
- Added checked-feature verification for reachability witnessing at `../../features/checked/web/reachability-witnessing-ui.md`.
- Shipped the consolidated `Ops > Operations` shell with grouped overview cards, canonical `/ops/operations/*` routes, and legacy `platform-ops` alias cutover.
- Added checked-feature verification for operations consolidation at `../../features/checked/web/operations-consolidation-ui.md`.
## Latest updates (2026-02-21)
- Runtime mock cutover completed for policy simulation history/conflict/batch flows and graph explorer data loading in `src/Web/StellaOps.Web/src/app/**`.

View File

@@ -9,7 +9,6 @@
- `docs/implplan/SPRINT_20260307_009_DOCS_ui_component_preservation_map.md`
- `docs/implplan/SPRINT_20260307_022_FE_policy_vex_release_decisioning_studio.md`
- `docs/implplan/SPRINT_20260307_023_DOCS_ui_restoration_topic_shapes.md`
- `docs/implplan/SPRINT_20260307_026_FE_platform_ops_consolidation.md`
- `docs/implplan/SPRINT_20260307_027_FE_triage_explainability_workspace.md`
- `docs/implplan/SPRINT_20260307_028_FE_workflow_visualization_replay.md`
- `docs/implplan/SPRINT_20260307_029_FE_contextual_actions_and_stray_surfaces.md`
@@ -82,12 +81,12 @@
- [DONE] FE-RW-004 Cross-product deep links and release-context use for reachability proofs
- [DONE] FE-RW-005 Supporting evidence and export surfaces for witness UX
- [DONE] FE-RW-006 QA, rollout, and docs sync for reachability witnessing
- [TODO] FE-PO-001 Freeze Operations overview taxonomy and submenu structure
- [TODO] FE-PO-002 Overview page regrouping and blocking-card contract
- [TODO] FE-PO-003 Legacy widget absorption matrix for Platform Ops
- [TODO] FE-PO-004 Route cleanup and alias migration contract for Operations
- [TODO] FE-PO-005 Setup boundary and deep-link contract for Operations
- [TODO] FE-PO-006 QA, rollout, and docs sync for Platform Ops consolidation
- [DONE] FE-PO-001 Freeze Operations overview taxonomy and submenu structure
- [DONE] FE-PO-002 Overview page regrouping and blocking-card contract
- [DONE] FE-PO-003 Legacy widget absorption matrix for Platform Ops
- [DONE] FE-PO-004 Route cleanup and alias migration contract for Operations
- [DONE] FE-PO-005 Setup boundary and deep-link contract for Operations
- [DONE] FE-PO-006 QA, rollout, and docs sync for Platform Ops consolidation
- [TODO] FE-TX-001 Freeze artifact workspace route, lane, and panel contract
- [TODO] FE-TX-002 List-lane segmentation slice for Artifact Workspace
- [TODO] FE-TX-003 Detail-side explainability rail slice

View File

@@ -13,7 +13,6 @@ Provide a living plan for UI deliverables, dependencies, and evidence.
- `SPRINT_20260307_009_DOCS_ui_component_preservation_map.md` - per-component preservation dossiers for unused and weakly surfaced console UI components.
- `SPRINT_20260307_022_FE_policy_vex_release_decisioning_studio.md` - canonical Decisioning Studio shell to unify policy, simulation, VEX decisioning, and release-context gate explanation.
- `SPRINT_20260307_023_DOCS_ui_restoration_topic_shapes.md` - documentation prerequisite for shell/menu/tab placements; not a product-delivery sprint by itself.
- `SPRINT_20260307_026_FE_platform_ops_consolidation.md` - ship one Operations shell with grouped overview cards, legacy widget absorption, and legacy redirects.
- `SPRINT_20260307_027_FE_triage_explainability_workspace.md` - ship the artifact workspace lane model, explainability panels, and audit-bundle flows.
- `SPRINT_20260307_028_FE_workflow_visualization_replay.md` - ship run-detail graph, timeline, replay, and evidence tabs plus bounded workflow-editor preview reuse.
- `SPRINT_20260307_029_FE_contextual_actions_and_stray_surfaces.md` - ship the shared tabs, drawers, right rails, split views, and contextual detail primitives adopted by the restoration features.
@@ -27,6 +26,7 @@ Provide a living plan for UI deliverables, dependencies, and evidence.
- `docs/modules/ui/watchlist-operations/README.md` - detailed watchlist UX dossier and owner-shell contract.
- `docs/features/checked/web/reachability-witnessing-ui.md` - shipped verification note for the canonical Reachability witness and PoE shell.
- `docs/features/checked/web/identity-watchlist-management-ui.md` - shipped verification note for the Trust & Signing watchlist shell and its Mission Control / Notifications handoffs.
- `docs/features/checked/web/operations-consolidation-ui.md` - shipped verification note for the canonical Operations shell, overview grouping, and legacy alias cutover.
- `docs/modules/ui/reachability-witnessing/README.md` - detailed witness and proof UX dossier plus cross-shell deep-link contract.
- `docs/modules/ui/platform-ops-consolidation/README.md` - detailed Operations overview taxonomy and legacy absorption plan.
- `docs/modules/ui/triage-explainability-workspace/README.md` - detailed artifact workspace and audit-bundle UX dossier.

View File

@@ -1,5 +1,7 @@
# Platform Ops Consolidation
**Status:** Shipped on 2026-03-07
## Recommendation
Keep one consolidated operator shell under `Ops > Operations` and absorb the useful legacy `platform-ops` surfaces into it.
@@ -10,6 +12,14 @@ Keep one consolidated operator shell under `Ops > Operations` and absorb the use
This is not a restoration of an abandoned product. It is a consolidation of operator navigation, overview grouping, and missing widgets into the existing route tree.
## Shipped Scope
- Mounted one grouped `Ops > Operations` overview with blocking-strip status, quick submenu chips, pending-action callouts, and an explicit Setup ownership boundary.
- Standardized canonical route helpers under `/ops/operations/*` and rewired active overview and child-page links away from dead `/platform/ops/*` paths.
- Added legacy alias redirects for both `/platform-ops/*` and `/platform/ops/*` into the live Operations shell.
- Preserved agent-fleet and topology ownership under `Setup > Topology` while adding direct Operations handoffs where runtime monitoring needs to cross that boundary.
- Added focused route, component, and Playwright verification plus a checked-feature note at `docs/features/checked/web/operations-consolidation-ui.md`.
## Why This Is The Right Shape
- The current app already routes operators through `/ops/operations`.
@@ -115,6 +125,15 @@ Prefer the current route family and tighten it rather than creating new paths.
- duplicate overview routes should be retired once card parity is reached
- child-route labels should match the sidebar and overview cards exactly
## Verification
- Angular:
- `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:
- `PLAYWRIGHT_PORT=4410 npx playwright test tests/e2e/operations-consolidation.spec.ts --workers=1`
- Checked feature record:
- `docs/features/checked/web/operations-consolidation-ui.md`
## What To Merge
### Preserve as the main shell