doctor and setup fixes
This commit is contained in:
158
docs/implplan/SPRINT_20260220_040_FE_ui_advisory_gap_closure.md
Normal file
158
docs/implplan/SPRINT_20260220_040_FE_ui_advisory_gap_closure.md
Normal file
@@ -0,0 +1,158 @@
|
||||
# Sprint 040 - UI Advisory Gap Closure
|
||||
|
||||
## Topic & Scope
|
||||
- Close the identified UI implementation gaps from the advisory review so canonical IA, scope behavior, and run-centric operations are consistent in code and docs.
|
||||
- Implement missing runtime contracts for global scope URL sync, degraded/offline UX surfaces, route migration telemetry alignment, and run-detail live refresh.
|
||||
- Update verification artifacts (docs and targeted tests) for navigation/RBAC/search/telemetry/scope behavior.
|
||||
- Working directory: `src/Web/StellaOps.Web/` (with required docs updates in `docs/modules/ui/v2-rewire/`).
|
||||
- Expected evidence: passing targeted frontend tests, updated IA/contracts docs, and migration/verification documentation.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Depends on active Pack-22/23 canonical IA references in `docs/modules/ui/v2-rewire/`.
|
||||
- Safe to run in parallel with unrelated Doctor/platform-health feature work as long as edits stay scoped to files listed in this sprint.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `docs/modules/ui/v2-rewire/source-of-truth.md`
|
||||
- `docs/modules/ui/v2-rewire/authority-matrix.md`
|
||||
- `docs/modules/ui/v2-rewire/S00_route_deprecation_map.md`
|
||||
- `docs/modules/ui/v2-rewire/pack-23.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### 040-T1 - Canonical IA ownership alignment in nav/routes/docs
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Developer (FE), Documentation author
|
||||
Task description:
|
||||
- Align canonical ownership language and root menu expectations across route comments, sidebar labels, and v2-rewire source-of-truth/authority docs.
|
||||
- Ensure Administration remains alias-window compatibility, not a conflicting primary operator root in canonical UX framing.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Sidebar and canonical docs use a consistent root-module story
|
||||
- [x] Route annotations no longer conflict with canonical ownership model
|
||||
|
||||
### 040-T2 - RBAC visibility matrix and enforcement for root/major surfaces
|
||||
Status: DONE
|
||||
Dependency: 040-T1
|
||||
Owners: Developer (FE), Documentation author
|
||||
Task description:
|
||||
- Add explicit UI RBAC matrix for root modules and key sub-surfaces.
|
||||
- Apply scope gates to sidebar visibility and major route domains where currently auth-only.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Documented matrix exists in v2-rewire docs
|
||||
- [x] Route and nav gating reflects the documented matrix
|
||||
|
||||
### 040-T3 - Global scope contract and URL synchronization
|
||||
Status: DONE
|
||||
Dependency: 040-T1
|
||||
Owners: Developer (FE)
|
||||
Task description:
|
||||
- Define and implement URL-sync behavior for global scope (`regions`, `environments`, `timeWindow`) with deterministic merge semantics.
|
||||
- Ensure deep links can hydrate scope and context changes persist back into URL without clobbering unrelated params.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Scope state can be hydrated from URL query parameters
|
||||
- [x] Scope updates write canonical query parameters back to current route
|
||||
|
||||
### 040-T4 - Mobile scope controls behavior
|
||||
Status: DONE
|
||||
Dependency: 040-T3
|
||||
Owners: Developer (FE)
|
||||
Task description:
|
||||
- Replace “hide scope entirely under 1200px” behavior with an explicit mobile/tablet scope entry point.
|
||||
- Provide keyboard and screen-reader-friendly mobile interaction for scope controls.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Scope remains operable on mobile/tablet layouts
|
||||
- [x] Desktop behavior remains unchanged for full scope bar
|
||||
|
||||
### 040-T5 - Standard degraded/offline UI state component
|
||||
Status: DONE
|
||||
Dependency: 040-T1
|
||||
Owners: Developer (FE)
|
||||
Task description:
|
||||
- Implement shared degraded/offline decision-impact component supporting `BLOCKING`, `DEGRADED`, `INFO`, retry action, correlation ID, and last-known-good context.
|
||||
- Integrate into at least one high-value run-centric surface.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Shared component exists and is reusable
|
||||
- [x] Integrated surface shows standardized degraded contract fields
|
||||
|
||||
### 040-T6 - Legacy route telemetry alignment and cutover consistency
|
||||
Status: DONE
|
||||
Dependency: 040-T1
|
||||
Owners: Developer (FE), Documentation author
|
||||
Task description:
|
||||
- Align legacy-route telemetry mapping with active redirect templates and alias-window routes.
|
||||
- Remove stale target mappings and codify deterministic mapping behavior.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Telemetry mapping reflects canonical redirect map
|
||||
- [x] Docs include updated cutover/alias telemetry expectations
|
||||
|
||||
### 040-T7 - Wire global search to real search client
|
||||
Status: DONE
|
||||
Dependency: 040-T1
|
||||
Owners: Developer (FE)
|
||||
Task description:
|
||||
- Replace mock timeout-based search with API-backed search via existing search client.
|
||||
- Keep keyboard navigation, grouped results, and recent-search persistence behavior.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Global search issues client-backed queries
|
||||
- [x] Existing keyboard and selection UX still works
|
||||
|
||||
### 040-T8 - Release Run detail live refresh contract
|
||||
Status: DONE
|
||||
Dependency: 040-T5
|
||||
Owners: Developer (FE)
|
||||
Task description:
|
||||
- Add run-detail live refresh model (poll cadence, stale/degraded indication, retry/manual refresh) while preserving deterministic rendering and non-destructive fallbacks.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Run detail auto-refreshes while active
|
||||
- [x] Stale/degraded state is visible with explicit operator action
|
||||
|
||||
### 040-T9 - A11y and performance acceptance criteria documentation
|
||||
Status: DONE
|
||||
Dependency: 040-T1
|
||||
Owners: Documentation author
|
||||
Task description:
|
||||
- Add explicit acceptance gates for accessibility and performance in v2-rewire docs.
|
||||
- Define measurable criteria and mandatory checks for shell/search/scope/nav interactions.
|
||||
|
||||
Completion criteria:
|
||||
- [x] A11y/perf gates are documented with pass/fail criteria
|
||||
- [x] Sprint links to those gates in decisions/risks
|
||||
|
||||
### 040-T10 - UI verification plan and targeted tests
|
||||
Status: DONE
|
||||
Dependency: 040-T2, 040-T3, 040-T6, 040-T7, 040-T8
|
||||
Owners: Developer (FE), QA
|
||||
Task description:
|
||||
- Update/add targeted unit tests for changed behaviors (nav model, search wiring, telemetry map behavior, context URL sync, run-detail refresh signals where feasible).
|
||||
- Add UI verification plan doc for deterministic re-check of this sprint scope.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Targeted tests for changed contracts are present and passing
|
||||
- [x] Verification plan doc captures deterministic execution path
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-02-20 | Sprint created and task 040-T1 moved to DOING. | Developer (FE) |
|
||||
| 2026-02-20 | Implemented canonical IA/RBAC/scope/search/legacy telemetry/run-live contracts; added and updated targeted unit tests for nav, context URL sync, global search, route migration, telemetry, topology routes, and release live refresh. | Developer (FE) |
|
||||
| 2026-02-20 | Verification run completed: `npm run test -- --watch=false --include src/tests/navigation/legacy-redirects.spec.ts --include src/tests/routes/legacy-route-migration-framework.component.spec.ts --include src/tests/navigation/legacy-route-telemetry.service.spec.ts --include src/tests/context/platform-context-url-sync.service.spec.ts --include src/tests/navigation/nav-model.spec.ts --include src/tests/navigation/nav-route-integrity.spec.ts --include src/tests/global_search/global-search.component.spec.ts --include src/tests/topology/topology-routes.spec.ts --include src/tests/releases/release-detail.live-refresh.spec.ts` (9 files, 55 tests, all pass). | QA/Developer (FE) |
|
||||
| 2026-02-20 | Updated route deprecation contract docs and migration mappings for run-centric redirects (`/releases/runs`) and topology setup aliases (`/topology/promotion-graph`, `/topology/regions`, `/topology/workflows`). | Documentation author |
|
||||
|
||||
## Decisions & Risks
|
||||
- Cross-module doc edits are required under `docs/modules/ui/v2-rewire/` to keep canonical contracts in sync with FE implementation.
|
||||
- Work is intentionally layered over an already dirty frontend tree per user direction (“do it on top”); unrelated changes are preserved.
|
||||
- Risk: route-scope guards can hide pages for low-scope users if matrix assumptions are wrong. Mitigation: keep fallback redirects and add explicit matrix docs plus targeted tests.
|
||||
- Risk: context URL sync can loop if merge semantics are incorrect. Mitigation: idempotent query diffing and scoped key updates only.
|
||||
- Decision: legacy redirect telemetry is now derived entirely from `LEGACY_REDIRECT_ROUTE_TEMPLATES`, and template entries were updated to canonical Pack22/23 targets to keep route behavior and telemetry in lockstep.
|
||||
- Decision: topology operator entry points now deep-link to run-centric release flows (`/releases/runs`) instead of activity/deployment aliases, matching advisory UX language.
|
||||
|
||||
## Next Checkpoints
|
||||
- Sprint 040 delivered; maintain alias telemetry during cutover window and remove obsolete alias routes in the planned cutover sprint after hit-rate review.
|
||||
Reference in New Issue
Block a user