feat(ui): ship execution operations cutover
This commit is contained in:
79
docs/features/checked/web/execution-operations-ui.md
Normal file
79
docs/features/checked/web/execution-operations-ui.md
Normal file
@@ -0,0 +1,79 @@
|
||||
# Execution Operations UI
|
||||
|
||||
## Module
|
||||
Web
|
||||
|
||||
## Status
|
||||
VERIFIED
|
||||
|
||||
## Description
|
||||
Shipped the execution-operations cutover so `Ops > Operations` now owns usable JobEngine, Scheduler, and Dead-Letter flows, while the companion `Scanner Ops` pages no longer stop at placeholder console actions. The work repaired stale jobengine or scheduler aliases, completed the missing operator workflows, and kept execution drill-ins on mounted canonical routes.
|
||||
|
||||
## Implementation Details
|
||||
- **Feature directories**:
|
||||
- `src/Web/StellaOps.Web/src/app/features/jobengine/`
|
||||
- `src/Web.StellaOps.Web/src/app/features/scheduler-ops/`
|
||||
- `src/Web.StellaOps.Web/src/app/features/deadletter/`
|
||||
- `src/Web.StellaOps.Web/src/app/features/scanner-ops/`
|
||||
- `src/Web.StellaOps.Web/src/app/features/platform/ops/`
|
||||
- `src/Web.StellaOps.Web/src/app/core/api/jobengine-jobs.client.ts`
|
||||
- **Primary routes**:
|
||||
- `/ops/operations/jobs-queues`
|
||||
- `/ops/operations/jobengine`
|
||||
- `/ops/operations/jobengine/jobs`
|
||||
- `/ops/operations/jobengine/jobs/:jobId`
|
||||
- `/ops/operations/jobengine/jobs/:jobId/dag`
|
||||
- `/ops/operations/jobengine/quotas`
|
||||
- `/ops/operations/dead-letter`
|
||||
- `/ops/operations/dead-letter/queue`
|
||||
- `/ops/operations/dead-letter/entry/:entryId`
|
||||
- `/ops/operations/scheduler/runs`
|
||||
- `/ops/operations/scheduler/runs/:runId/stream`
|
||||
- `/ops/operations/scheduler/schedules`
|
||||
- `/ops/operations/scheduler/workers`
|
||||
- `/ops/scanner-ops`
|
||||
- `/ops/scanner-ops/offline-kits`
|
||||
- `/ops/scanner-ops/baselines`
|
||||
- `/ops/scanner-ops/analyzers`
|
||||
- `/ops/scanner-ops/performance`
|
||||
- **Legacy aliases**:
|
||||
- `/ops/jobengine/*`
|
||||
- `/ops/scheduler/*`
|
||||
- `/ops/scanner`
|
||||
- `/ops/scanner/:page`
|
||||
- `/platform-ops/*`
|
||||
- `/platform/ops/*`
|
||||
- **Notable repaired behaviors**:
|
||||
- JobEngine job detail and DAG drill-in stay on canonical routes
|
||||
- JobEngine quota actions export usable snapshots instead of placeholder buttons
|
||||
- dead-letter batch replay and resolve call the real client methods and hand back to canonical job detail
|
||||
- scheduler runs can open a route-backed live-stream view
|
||||
- scanner offline-kit, baseline, analyzer, and performance tools perform honest local workflows instead of `console.log`
|
||||
|
||||
## E2E Test Plan
|
||||
- **Setup**:
|
||||
- [x] Use the local Angular test server from Playwright `webServer` via `npm run serve:test`.
|
||||
- [x] Use a test session with Ops and orchestration scopes.
|
||||
- **Core verification**:
|
||||
- [x] Verify canonical JobEngine list and detail navigation.
|
||||
- [x] Verify dead-letter queue replay remains usable on the canonical queue page.
|
||||
- [x] Verify scheduler runs can open the new run-stream page.
|
||||
- [x] Verify scanner-support actions surface honest completion notices.
|
||||
- **Cutover verification**:
|
||||
- [x] Verify Angular tests cover alias inventory and the repaired execution workflows.
|
||||
- [x] Verify the production build still completes after the execution cutover.
|
||||
|
||||
## Verification
|
||||
- Run:
|
||||
- `npm run test -- --watch=false --include src/tests/platform-ops/platform-ops-routes.spec.ts --include src/tests/scheduler_ops/scheduler-orchestrator-ops-ui.behavior.spec.ts --include src/tests/deadletter/deadletter-queue.component.spec.ts --include src/tests/deadletter/deadletter-entry-detail.component.spec.ts --include src/tests/scanner_ops/scanner-ops-settings-ui.behavior.spec.ts --include src/tests/scanner_ops/scanner-ops-supporting-flows.behavior.spec.ts --include src/tests/jobengine/jobengine-execution-ops.behavior.spec.ts`
|
||||
- `npx playwright test tests/e2e/execution-operations-cutover.spec.ts --workers=1`
|
||||
- `npm run build`
|
||||
- Tier 0 (source): pass
|
||||
- Tier 1 (build/tests): pass
|
||||
- Tier 2 (behavior): pass
|
||||
- Notes:
|
||||
- Angular targeted tests passed: `7` files, `38` tests.
|
||||
- Playwright passed: `1` scenario.
|
||||
- Production build passed; existing initial bundle and setup-wizard style budget warnings remain unchanged from the baseline.
|
||||
- Verified on (UTC): 2026-03-08T07:26:09.3020863Z
|
||||
|
||||
@@ -8,6 +8,10 @@
|
||||
|
||||
The Console presents operator dashboards for scans, policies, VEX evidence, runtime posture, and admin workflows.
|
||||
|
||||
## Latest updates (2026-03-08)
|
||||
- Shipped the execution-operations cutover for canonical JobEngine, Scheduler, Dead-Letter, and companion Scanner Ops workflows under `Ops > Operations`.
|
||||
- Added checked-feature verification for execution operations at `../../features/checked/web/execution-operations-ui.md`.
|
||||
|
||||
## Latest updates (2026-03-07)
|
||||
- Generated the first-pass UI component preservation map at `component-preservation-map/README.md`.
|
||||
- The preservation map currently tracks 303 candidate components: 167 high-confidence dead surfaces and 136 routed-but-weakly-surfaced surfaces.
|
||||
@@ -75,6 +79,7 @@ The Console presents operator dashboards for scans, policies, VEX evidence, runt
|
||||
- ./platform-ops-consolidation/README.md
|
||||
- ./offline-operations/README.md
|
||||
- ./quota-health-aoc-operations/README.md
|
||||
- ./execution-operations/README.md
|
||||
- ./triage-explainability-workspace/README.md
|
||||
- ./workflow-visualization-replay/README.md
|
||||
- ./contextual-actions-patterns/README.md
|
||||
|
||||
@@ -96,6 +96,10 @@
|
||||
- [DONE] FE-QHA-002 Complete quota operator workflows
|
||||
- [DONE] FE-QHA-003 Complete health and AOC operator workflows
|
||||
- [DONE] FE-QHA-004 Verify cutover, sync docs, and archive
|
||||
- [DONE] FE-EXO-001 Freeze canonical execution route and alias contract
|
||||
- [DONE] FE-EXO-002 Complete JobEngine and scheduler operator workflows
|
||||
- [DONE] FE-EXO-003 Complete dead-letter and scanner-ops supporting workflows
|
||||
- [DONE] FE-EXO-004 Verify cutover, sync docs, and archive
|
||||
- [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
|
||||
|
||||
75
docs/modules/ui/execution-operations/README.md
Normal file
75
docs/modules/ui/execution-operations/README.md
Normal file
@@ -0,0 +1,75 @@
|
||||
# Execution Operations
|
||||
|
||||
## Purpose
|
||||
- Complete the execution cluster under the active UI instead of leaving JobEngine, Scheduler, Dead-Letter, and Scanner support flows split across stale aliases or half-wired pages.
|
||||
- Keep operator workflows usable end to end: inspect jobs, open DAG context, manage quotas, replay dead-letter entries, follow scheduler runs, and finish scanner-support actions without console-only placeholders.
|
||||
|
||||
## Canonical Owner
|
||||
- Owner shell: `Ops > Operations`
|
||||
- Primary routes:
|
||||
- `/ops/operations/jobs-queues`
|
||||
- `/ops/operations/jobengine`
|
||||
- `/ops/operations/jobengine/jobs`
|
||||
- `/ops/operations/jobengine/jobs/:jobId`
|
||||
- `/ops/operations/jobengine/jobs/:jobId/dag`
|
||||
- `/ops/operations/jobengine/quotas`
|
||||
- `/ops/operations/dead-letter`
|
||||
- `/ops/operations/dead-letter/queue`
|
||||
- `/ops/operations/dead-letter/entry/:entryId`
|
||||
- `/ops/operations/scheduler`
|
||||
- `/ops/operations/scheduler/runs`
|
||||
- `/ops/operations/scheduler/runs/:runId/stream`
|
||||
- `/ops/operations/scheduler/schedules`
|
||||
- `/ops/operations/scheduler/workers`
|
||||
- Companion execution tools:
|
||||
- `/ops/scanner-ops`
|
||||
- `/ops/scanner-ops/offline-kits`
|
||||
- `/ops/scanner-ops/baselines`
|
||||
- `/ops/scanner-ops/analyzers`
|
||||
- `/ops/scanner-ops/performance`
|
||||
- `/ops/scanner-ops/settings`
|
||||
|
||||
## Legacy Alias Policy
|
||||
- Preserve stale bookmarks and older navigation entry points by redirecting:
|
||||
- `/ops/jobengine/*`
|
||||
- `/ops/scheduler/*`
|
||||
- `/ops/scanner`
|
||||
- `/ops/scanner/:page`
|
||||
- `/platform-ops/jobengine/*`
|
||||
- `/platform-ops/scheduler/*`
|
||||
- `/platform-ops/scanner*`
|
||||
- `/platform/ops/jobengine/*`
|
||||
- `/platform/ops/scheduler/*`
|
||||
- `/platform/ops/dead-letter/*`
|
||||
- Redirects must preserve query params and fragments because job, queue, and stream pages use route-backed detail state.
|
||||
|
||||
## UX Rules
|
||||
- `Jobs & Queues` is the execution overview, not a dead-end card deck. It must deep-link into JobEngine, Scheduler, Dead-Letter, and related operator pages.
|
||||
- `JobEngine` owns queue health, job detail, DAG context, and quota controls.
|
||||
- `Scheduler` owns run monitoring, schedule management, worker fleet, and run-stream drill-in.
|
||||
- `Dead-Letter` owns queue browse, replay, resolve, export, and handoff back to canonical job detail.
|
||||
- `Scanner Ops` remains scanner-owned, but its supporting actions must be honest and usable because it is part of the same operator journey.
|
||||
|
||||
## Shipped In This Cut
|
||||
- Repaired canonical route helpers, navigation targets, and legacy aliases for JobEngine, Scheduler, Dead-Letter, and Scanner Ops entry points.
|
||||
- Replaced placeholder JobEngine dashboards with working summary, list, detail, DAG, and quota flows backed by the existing clients.
|
||||
- Added a route-backed Scheduler Run Stream page and kept scheduler schedules and worker-fleet links inside the canonical execution subtree.
|
||||
- Completed dead-letter batch replay, batch resolve, export, entry-detail replay handoff, and canonical job deep links.
|
||||
- Replaced scanner-support `console.log` actions with honest local verification, export, promote, and refresh flows.
|
||||
|
||||
## Preserved Value
|
||||
- Keep:
|
||||
- execution queue visibility and job DAG drill-in
|
||||
- quota operations and export snapshots
|
||||
- dead-letter replay and manual resolution
|
||||
- scheduler run stream visibility
|
||||
- scanner baseline, analyzer, and offline-kit support actions
|
||||
- Why:
|
||||
- these are not abandoned concepts; they are real operator workflows that were left partially unwired after the Operations-shell consolidation
|
||||
|
||||
## Related Docs
|
||||
- `docs/modules/ui/platform-ops-consolidation/README.md`
|
||||
- `docs/modules/ui/offline-operations/README.md`
|
||||
- `docs/modules/ui/quota-health-aoc-operations/README.md`
|
||||
- `docs/features/checked/web/execution-operations-ui.md`
|
||||
|
||||
@@ -30,10 +30,12 @@ Provide a living plan for UI deliverables, dependencies, and evidence.
|
||||
- `docs/features/checked/web/unified-audit-surfaces-ui.md` - shipped verification note for the Evidence-owned audit shell, admin bookmark redirects, repaired audit subview links, and secondary handoff entry points.
|
||||
- `docs/features/checked/web/offline-operations-ui.md` - shipped verification note for the canonical Offline Kit and Feeds & Airgap owner routes, repaired stale aliases, and completed offline shell actions.
|
||||
- `docs/features/checked/web/quota-health-aoc-operations-ui.md` - shipped verification note for canonical quota, health, and AOC owner routes, repaired deep links, route-backed filters, and completed operator actions.
|
||||
- `docs/features/checked/web/execution-operations-ui.md` - shipped verification note for canonical execution routes, repaired jobengine and scheduler aliases, completed dead-letter actions, and usable scanner-support workflows.
|
||||
- `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/offline-operations/README.md` - detailed owner-shell contract for Offline Kit, Feeds & Airgap, Evidence handoffs, and stale alias policy.
|
||||
- `docs/modules/ui/quota-health-aoc-operations/README.md` - canonical owner-shell contract for quota, health, and AOC operations cutover plus alias and action rules.
|
||||
- `docs/modules/ui/execution-operations/README.md` - canonical execution owner-shell contract for JobEngine, Scheduler, Dead-Letter, and companion Scanner Ops workflows.
|
||||
- `docs/modules/ui/triage-explainability-workspace/README.md` - detailed artifact workspace and audit-bundle UX dossier.
|
||||
- `docs/modules/ui/workflow-visualization-replay/README.md` - detailed run-detail graph, timeline, replay, and evidence UX dossier.
|
||||
- `docs/modules/ui/contextual-actions-patterns/README.md` - shared placement contract for stray actions, pages, drawers, and tabs.
|
||||
|
||||
Reference in New Issue
Block a user