Repair live JobEngine runtime contracts
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
# Sprint 20260309-007 - FE Live Release Control And JobEngine Contract Repair
|
||||
|
||||
## Topic & Scope
|
||||
- Repair the post-rebuild live frontdoor drift where release-control and approvals routes still point at the retired `orchestrator` host instead of JobEngine, causing browser `404` failures on approval and release actions.
|
||||
- Repair the live JobEngine SQL contract failures behind `/ops/operations/jobengine` and `/ops/operations/packs`: enum-vs-text status counts and missing `packs` schema search path.
|
||||
- Remove the web approval queue's dependency on the broken legacy list route by keeping queue filtering on the v2 platform projection while retaining canonical approval detail/decision actions.
|
||||
- Working directory: `src/Web/StellaOps.Web`.
|
||||
- Allowed coordination edits: `src/JobEngine/StellaOps.JobEngine/**`, `devops/compose/router-gateway-local.json`, `devops/compose/router-gateway-local.reverseproxy.json`, `src/Router/StellaOps.Gateway.WebService/appsettings.json`, `docs/modules/jobengine/architecture.md`, `docs/modules/router/architecture.md`, `docs/implplan/SPRINT_20260309_007_FE_live_release_control_and_jobengine_contract_repair.md`.
|
||||
- Expected evidence: focused frontend approval-client tests, targeted JobEngine verification, rebuilt/redeployed web and affected services, and refreshed live Playwright/browser probes.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Depends on `SPRINT_20260309_001_Platform_scratch_setup_bootstrap_restore.md` for the rebuilt baseline, `SPRINT_20260309_003_Router_live_frontdoor_contract_repair.md` for prior frontdoor ownership fixes, and `SPRINT_20260309_005_JobEngine_live_scratch_reset_and_ops_scope_repair.md` for the restored JobEngine runtime.
|
||||
- Safe parallelism: avoid unrelated search/reachability/component-revival work already in the tree; this pass is limited to release-control/approval routing, approval client behavior, and JobEngine repository runtime contracts.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `AGENTS.md`
|
||||
- `src/Web/StellaOps.Web/AGENTS.md`
|
||||
- `src/JobEngine/AGENTS.md`
|
||||
- `docs/code-of-conduct/CODE_OF_CONDUCT.md`
|
||||
- `docs/qa/feature-checks/FLOW.md`
|
||||
- `docs/modules/jobengine/architecture.md`
|
||||
- `docs/modules/router/architecture.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### LIVE-CONTRACT-007-001 - Restore release-control and approval frontdoor ownership
|
||||
Status: DOING
|
||||
Dependency: none
|
||||
Owners: Developer, QA
|
||||
Task description:
|
||||
- Align the live compose router manifest and source router defaults so release-control and approval browser paths route to JobEngine, including the canonical `/api/v1/approvals` family and the still-supported legacy `/api/v1/release-orchestrator` paths used by some flows.
|
||||
- Keep the mounted compose manifest and source appsettings in sync so the next scratch rebuild does not regress the same family.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] The live compose router manifest points `/api/v1/release-orchestrator`, `/api/release-orchestrator`, `/api/releases`, `/api/approvals`, and `/api/v1/approvals` to JobEngine.
|
||||
- [ ] Source router defaults are aligned to the same route ownership.
|
||||
- [ ] Direct live probes no longer return `404` for the repaired release-control families.
|
||||
|
||||
### LIVE-CONTRACT-007-002 - Keep the approval queue on canonical live contracts
|
||||
Status: TODO
|
||||
Dependency: LIVE-CONTRACT-007-001
|
||||
Owners: Developer, QA
|
||||
Task description:
|
||||
- Repair the Angular approval client so queue listing relies on the v2 releases approvals projection and client-side filtering instead of dropping to the legacy list route whenever the filter shape is richer than the v2 API.
|
||||
- Preserve canonical `/api/v1/approvals` detail and decision actions, and make batch actions execute against live-supported approval decisions rather than dead batch endpoints.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Approval queue listing does not call `/api/v1/release-orchestrator/approvals`.
|
||||
- [ ] Approval detail and decision actions continue to target live canonical approval endpoints.
|
||||
- [ ] Focused frontend tests lock the repaired list and batch behaviors.
|
||||
|
||||
### LIVE-CONTRACT-007-003 - Repair JobEngine SQL runtime contracts for ops pages
|
||||
Status: DOING
|
||||
Dependency: LIVE-CONTRACT-007-001
|
||||
Owners: Developer, QA
|
||||
Task description:
|
||||
- Fix the repository/runtime contract issues surfaced by the live stack: `jobs/summary` must compare against the PostgreSQL enum correctly, and the embedded pack-registry repository must operate inside the `packs` schema instead of assuming the default search path.
|
||||
- Prefer durable repository/runtime fixes over UI workarounds.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] `/api/v1/jobengine/jobs/summary` no longer throws `job_status = text`.
|
||||
- [ ] `/api/v1/jobengine/registry/packs` no longer throws `relation "packs" does not exist`.
|
||||
- [ ] The fix is documented in the JobEngine architecture dossier.
|
||||
|
||||
### LIVE-CONTRACT-007-004 - Rebuild, redeploy, and rerun live Playwright verification
|
||||
Status: TODO
|
||||
Dependency: LIVE-CONTRACT-007-002
|
||||
Owners: QA
|
||||
Task description:
|
||||
- Rebuild the affected web and backend/runtime images, redeploy the live compose slice, rerun direct probes and the authenticated live route/action checks, and record the narrowed failure inventory for the next iteration.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Updated router/jobengine/web artifacts are rebuilt and redeployed without disturbing unrelated dirty work.
|
||||
- [ ] Direct live probes for approvals and JobEngine routes succeed after redeploy.
|
||||
- [ ] The live Playwright route/action sweep is rerun from the rebuilt stack and the remaining backlog is recorded.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-09 | Sprint created after the full rebuild and live sweep exposed a shared release-control frontdoor drift plus two confirmed JobEngine runtime SQL failures (`job_status = text` and missing `packs` relation). | Developer |
|
||||
| 2026-03-09 | Resumed after the full stack rebuild. Confirmed the live `jobs/summary` and dead-letter summary failures come from raw SQL opening without the preserved `orchestrator` search path, and confirmed `/ops/operations/packs` is blocked by a missing startup-migrated `packs` schema contract. | Developer |
|
||||
|
||||
## Decisions & Risks
|
||||
- Decision: fix the browser frontdoor ownership in router config instead of teaching the UI to paper over wrong service bindings. The live compose gateway is part of the product contract.
|
||||
- Decision: keep approval queue listing on the platform v2 projection and use client-side filtering for unsupported filter combinations rather than relying on the legacy list endpoint as a hidden fallback.
|
||||
- Decision: fix JobEngine runtime behavior in repository/session code instead of masking the failures with empty-state UI.
|
||||
- Risk: the doctor/context `503` cluster seen in the sweep may still remain after this pass because those failures appear to involve gateway instance health, not just route ownership. That should become the next iteration if still present after redeploy.
|
||||
|
||||
## Next Checkpoints
|
||||
- 2026-03-09: land router ownership and approval-client contract repairs.
|
||||
- 2026-03-09: land JobEngine repository/runtime fixes.
|
||||
- 2026-03-09: rebuild/redeploy the affected slice and rerun live Playwright verification.
|
||||
Reference in New Issue
Block a user