feat(ui): ship quota health aoc operations cutover
This commit is contained in:
@@ -0,0 +1,122 @@
|
||||
# Sprint 20260308_003_FE - Quota Health AOC Operations Cutover
|
||||
|
||||
## Topic & Scope
|
||||
- Complete the `Ops > Operations` ownership cutover for `Quotas & Limits`, `Health & SLO`, and `AOC Compliance`.
|
||||
- Replace stale `/ops/*`, `/platform/ops/*`, and `/platform-ops/*` deep links with canonical `/ops/operations/*` routes while preserving bookmarks and query state.
|
||||
- Finish the missing operator workflows inside these surfaces so filters, drill-ins, exports, and handoff actions are actually usable.
|
||||
- Working directory: `src/Web/StellaOps.Web/`.
|
||||
- Expected evidence: targeted Angular tests, Playwright route-and-flow coverage, checked-feature documentation, and archived sprint notes.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Depends on the shipped Operations shell and contextual primitives from archived Operations and Offline Kit sprints.
|
||||
- Safe parallelism: backend modules are out of scope; only frontend code, frontend docs, and verification assets are permitted.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `AGENTS.md`
|
||||
- `docs/modules/ui/AGENTS.md`
|
||||
- `src/Web/StellaOps.Web/AGENTS.md`
|
||||
- `docs/modules/ui/README.md`
|
||||
- `docs/modules/ui/architecture.md`
|
||||
- `docs/modules/ui/implementation_plan.md`
|
||||
- `docs/modules/ui/platform-ops-consolidation/README.md`
|
||||
- `docs/modules/platform/architecture-overview.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### FE-QHA-001 - Freeze canonical route and alias contract
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Developer / Implementer
|
||||
Task description:
|
||||
- Reconcile the quota, health, and AOC surfaces with the existing `Ops > Operations` owner shell. Add any missing shorthand or legacy aliases required for stale links that still exist in the UI and for known bookmark patterns.
|
||||
- Ensure redirects preserve query params and fragments, and cover both root-level `/ops/*` aliases and old `platform` paths where operators still land today.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Canonical helpers exist for quota, health, and AOC operations routes.
|
||||
- [ ] Old quota, health, and AOC bookmarks land on the canonical owner pages without losing query state.
|
||||
- [ ] Navigation config no longer points AOC to stale `/ops/aoc` paths.
|
||||
- [x] Canonical helpers exist for quota, health, and AOC operations routes.
|
||||
- [x] Old quota, health, and AOC bookmarks land on the canonical owner pages without losing query state.
|
||||
- [x] Navigation config no longer points AOC to stale `/ops/aoc` paths.
|
||||
|
||||
### FE-QHA-002 - Complete quota operator workflows
|
||||
Status: DONE
|
||||
Dependency: FE-QHA-001
|
||||
Owners: Developer / Implementer
|
||||
Task description:
|
||||
- Finish the missing quota workflows so dashboard drill-ins, forecast actions, alert configuration, tenant detail actions, and report export behave as real operator flows rather than placeholders or dead links.
|
||||
- Any fallback for missing backend endpoints must still be usable offline and must not present fake success as if an integration happened.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Quota drill-ins and back links use canonical operations routes.
|
||||
- [ ] Dashboard and forecast query-driven filters work and preserve intent across pages.
|
||||
- [ ] Tenant detail export and report actions are usable.
|
||||
- [ ] Quota alert test/preview flow is usable without relying on a nonexistent backend endpoint.
|
||||
- [ ] Quota report history no longer renders as a permanent placeholder-only section.
|
||||
- [x] Quota drill-ins and back links use canonical operations routes.
|
||||
- [x] Dashboard and forecast query-driven filters work and preserve intent across pages.
|
||||
- [x] Tenant detail export and report actions are usable.
|
||||
- [x] Quota alert test/preview flow is usable without relying on a nonexistent backend endpoint.
|
||||
- [x] Quota report history no longer renders as a permanent placeholder-only section.
|
||||
|
||||
### FE-QHA-003 - Complete health and AOC operator workflows
|
||||
Status: DONE
|
||||
Dependency: FE-QHA-001
|
||||
Owners: Developer / Implementer
|
||||
Task description:
|
||||
- Repair the remaining health and AOC page actions so breadcrumbs, drill-ins, provenance validation, filter controls, and incident navigation stay inside the mounted owner shell.
|
||||
- Wire any ignored filter state to API calls or deterministic client-side behavior so the pages do what they claim.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Platform Health service and incident pages return to canonical health routes.
|
||||
- [ ] Health overview cards and drill-ins use canonical routes.
|
||||
- [ ] AOC provenance validation navigates through Angular routing and preserves query intent.
|
||||
- [ ] AOC violations filters actually affect the loaded results.
|
||||
- [ ] AOC child pages use canonical owner-shell breadcrumbs and links.
|
||||
- [x] Platform Health service and incident pages return to canonical health routes.
|
||||
- [x] Health overview cards and drill-ins use canonical routes.
|
||||
- [x] AOC provenance validation navigates through Angular routing and preserves query intent.
|
||||
- [x] AOC violations filters actually affect the loaded results.
|
||||
- [x] AOC child pages use canonical owner-shell breadcrumbs and links.
|
||||
|
||||
### FE-QHA-004 - Verify cutover, sync docs, and archive
|
||||
Status: DONE
|
||||
Dependency: FE-QHA-002, FE-QHA-003
|
||||
Owners: Developer / Implementer, QA
|
||||
Task description:
|
||||
- Add focused tests for the repaired routes and flows, then run targeted Angular and Playwright verification. Record the shipped behavior in the checked-feature docs and archive the sprint only when every task is done.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Targeted Angular tests cover redirect contracts and the repaired quota/health/AOC behaviors.
|
||||
- [ ] Playwright verifies at least one end-to-end journey through the restored surfaces.
|
||||
- [ ] UI docs and checked-feature notes reflect the shipped behavior.
|
||||
- [ ] Sprint moved to `docs-archived/implplan/` only after all tasks are marked DONE.
|
||||
- [x] Targeted Angular tests cover redirect contracts and the repaired quota/health/AOC behaviors.
|
||||
- [x] Playwright verifies at least one end-to-end journey through the restored surfaces.
|
||||
- [x] UI docs and checked-feature notes reflect the shipped behavior.
|
||||
- [x] Sprint moved to `docs-archived/implplan/` only after all tasks are marked DONE.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-08 | Sprint created and moved to DOING for Quota/Health/AOC operations cutover. | Codex |
|
||||
| 2026-03-08 | Added canonical route helpers and repaired `ops`, `platform-ops`, and `platform/ops` aliases for quota, health, and AOC child routes. | Codex |
|
||||
| 2026-03-08 | Completed quota query-driven actions, tenant-detail export, alert payload generation, health drill-ins, and AOC route-backed provenance or filter flows. | Codex |
|
||||
| 2026-03-08 | Verified targeted Angular coverage with `npm test -- --watch=false --include src/tests/platform-ops/platform-ops-routes.spec.ts --include src/tests/quotas/quota-operations-cutover.spec.ts --include src/tests/aoc_verification/guard-violations-list.component.spec.ts --include src/tests/platform_health/platform-health-dashboard.spec.ts`: 13 tests passed. | QA |
|
||||
| 2026-03-08 | Verified browser flows with a prestarted local Angular test server plus `PLAYWRIGHT_BASE_URL=https://127.0.0.1:4400 npx playwright test tests/e2e/quota-health-aoc-operations.spec.ts --workers=1`: 3 scenarios passed. | QA |
|
||||
| 2026-03-08 | Production build passed via `npm run build`; existing bundle-budget warnings remain unchanged from the baseline. | QA |
|
||||
|
||||
## Decisions & Risks
|
||||
- Risk: some quota and alert behaviors have no dedicated backend endpoint. Mitigation: ship honest offline-safe fallbacks such as route-aware prefill, downloadable artifacts, or clipboard payloads instead of fake API success.
|
||||
- Risk: quota status filtering is not represented in the existing client signature. Mitigation: use deterministic client-side filtering when the backend cannot filter directly, and document the limitation if discovered in verification.
|
||||
- Risk: stale bookmarks may exist outside the currently searched UI files. Mitigation: add alias coverage at the route layer instead of only fixing component links.
|
||||
- Delivery rule satisfied: the canonical routes are mounted, the operator actions are usable, and targeted Tier 1 plus Tier 2 UI verification passed.
|
||||
- Docs synced:
|
||||
- `docs/modules/ui/quota-health-aoc-operations/README.md`
|
||||
- `docs/features/checked/web/quota-health-aoc-operations-ui.md`
|
||||
- `docs/modules/ui/README.md`
|
||||
- `docs/modules/ui/implementation_plan.md`
|
||||
- `docs/modules/ui/TASKS.md`
|
||||
|
||||
## Next Checkpoints
|
||||
- 2026-03-08: archive sprint and commit the delivered cutover.
|
||||
Reference in New Issue
Block a user