Repair live jobs queues action handoffs
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
# Sprint 20260310-034 - Jobs Queues Truthful Action Handoffs
|
||||
|
||||
## Topic & Scope
|
||||
- Repair the live `Ops > Operations > Jobs & Queues` page so it stops advertising fake row-level controls that loop back to itself.
|
||||
- Make the overview filters and copy actions behave honestly on the live shell instead of rendering inert UI.
|
||||
- Keep this iteration limited to the `Jobs & Queues` page family, its focused frontend regression coverage, live Playwright proof, and the supporting docs update.
|
||||
- Working directory: `src/Web/StellaOps.Web`.
|
||||
- Allowed coordination edits: `docs/implplan/SPRINT_20260310_034_FE_live_jobs_queues_truthful_action_handoffs.md`, `docs/modules/ui/execution-operations/README.md`.
|
||||
- Expected evidence: focused Angular feature spec coverage, rebuilt web bundle synced into the live compose frontdoor, and a Playwright action sweep for every tab/action on `/ops/operations/jobs-queues`.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Depends on `SPRINT_20260309_002_FE_live_frontdoor_canonical_route_sweep.md` for the authenticated live sweep harness and on `SPRINT_20260310_033_FE_live_frontdoor_unified_search_route_matrix.md` for the current healthy frontdoor baseline.
|
||||
- Safe parallelism: stay inside `src/Web/StellaOps.Web/**` plus the explicitly allowed docs files; do not take ownership of backend or unrelated route slices in parallel.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `AGENTS.md`
|
||||
- `src/Web/StellaOps.Web/AGENTS.md`
|
||||
- `docs/qa/feature-checks/FLOW.md`
|
||||
- `docs/modules/platform/architecture-overview.md`
|
||||
- `docs/modules/ui/platform-ops-consolidation/README.md`
|
||||
- `docs/modules/ui/execution-operations/README.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### FE-JOBSQUEUES-034-001 - Replace fake row actions with truthful execution handoffs
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Product Manager, Architect, Developer
|
||||
Task description:
|
||||
- The live page currently presents `View`, `Run Now`, `Edit`, `Pause`, `Replay`, and `Drain` controls that all navigate back to `/ops/operations/jobs-queues`. That is a product contract failure because the page is an overview shell, not the owner of those mutations.
|
||||
- Reframe the page as a truthful execution overview: every visible row action must hand off into the canonical JobEngine, Scheduler, Dead-Letter, or Data Integrity surfaces with labels that match what the destination actually does.
|
||||
|
||||
Completion criteria:
|
||||
- [x] No row action on `/ops/operations/jobs-queues` routes back to `/ops/operations/jobs-queues` unless it is explicitly labeled as staying on the overview.
|
||||
- [x] The action labels match the actual destination behavior instead of implying unsupported row-level mutations.
|
||||
- [x] The context copy on the page explains that execution control happens in canonical downstream surfaces.
|
||||
|
||||
### FE-JOBSQUEUES-034-002 - Make Jobs & Queues filters and inline feedback real
|
||||
Status: DONE
|
||||
Dependency: FE-JOBSQUEUES-034-001
|
||||
Owners: Developer, QA
|
||||
Task description:
|
||||
- The current search, status, and type controls are inert. The copy buttons also execute silently.
|
||||
- Wire the filters to the overview data for each tab, reset them safely when the user changes tabs, and surface explicit inline feedback for copy actions so the page is behaviorally testable.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Search and select filters change the rendered rows on every tab they appear on.
|
||||
- [x] Tab switches reset stale filters so one tab's facet state does not poison another tab.
|
||||
- [x] Copy correlation actions show an inline status message on success or a manual-copy fallback.
|
||||
|
||||
### FE-JOBSQUEUES-034-003 - Rebuild and prove the live page with Playwright
|
||||
Status: DONE
|
||||
Dependency: FE-JOBSQUEUES-034-002
|
||||
Owners: QA
|
||||
Task description:
|
||||
- Rebuild the web bundle, sync it into the live frontdoor static volume, and run a real authenticated Playwright sweep across every tab and every distinct visible action on the Jobs & Queues page.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Focused Angular feature coverage passes for the page.
|
||||
- [x] `npm run build` passes and the rebuilt bundle is synced into `compose_console-dist`.
|
||||
- [x] A live Playwright sweep artifact records passing checks for the Jobs, Runs, Schedules, Dead Letters, and Workers tabs without runtime errors.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-10 | Sprint created from the next post-search live QA iteration after Playwright proved `/ops/operations/jobs-queues` still exposes self-linking placeholder actions and inert filters. | Developer |
|
||||
| 2026-03-10 | Reframed `Jobs & Queues` into a truthful execution overview: self-linking fake actions were replaced with canonical JobEngine/Scheduler/Dead-Letter/Data Integrity handoffs, filters now work per tab with reset-on-tab-change behavior, and inline correlation-copy feedback was added. Focused Angular coverage passed (`5/5`), `npm run build` passed, the rebuilt bundle was synced into `compose_console-dist`, and `src/Web/StellaOps.Web/output/playwright/live-jobs-queues-action-sweep.json` recorded `11/11` live action checks passing with `runtimeIssueCount=0`. | QA |
|
||||
|
||||
## Decisions & Risks
|
||||
- Decision: `Jobs & Queues` remains an execution overview, not a fake CRUD surface. Real mutations belong to JobEngine, Scheduler, Dead-Letter, or Data Integrity pages, so the overview must hand off honestly instead of inventing unsupported per-row controls.
|
||||
- Decision: inert filters are a defect, not a cosmetic gap. If a control is rendered on the page, it must either work or be removed.
|
||||
- Decision: the page now treats clipboard restrictions as an operator-visible runtime condition. When browser clipboard APIs are unavailable, the UI surfaces a manual-copy fallback instead of failing silently.
|
||||
- Risk: the page still uses synthetic overview data rather than live backend records. This iteration makes the surface truthful and testable, but deeper backend-backed execution parity may still need a later slice.
|
||||
|
||||
## Next Checkpoints
|
||||
- 2026-03-10: land the page/model rewrite and focused frontend coverage.
|
||||
- 2026-03-10: rebuild and sync the web bundle into the live compose frontdoor.
|
||||
- 2026-03-10: rerun authenticated Playwright against `/ops/operations/jobs-queues` and commit the iteration locally.
|
||||
Reference in New Issue
Block a user