diff --git a/docs/implplan/SPRINT_20260306_003_FE_playwright_setup_reset_iteration_loop.md b/docs-archived/implplan/SPRINT_20260306_003_FE_playwright_setup_reset_iteration_loop.md similarity index 86% rename from docs/implplan/SPRINT_20260306_003_FE_playwright_setup_reset_iteration_loop.md rename to docs-archived/implplan/SPRINT_20260306_003_FE_playwright_setup_reset_iteration_loop.md index b77992dbb..085e0ddca 100644 --- a/docs/implplan/SPRINT_20260306_003_FE_playwright_setup_reset_iteration_loop.md +++ b/docs-archived/implplan/SPRINT_20260306_003_FE_playwright_setup_reset_iteration_loop.md @@ -25,7 +25,7 @@ ## Delivery Tracker ### FE-QA-LOOP-001 - Establish bounded full-iteration workflow -Status: DOING +Status: DONE Dependency: none Owners: QA, Developer (FE) Task description: @@ -34,12 +34,12 @@ Task description: - Record concrete issue evidence before any fixes are attempted. Completion criteria: -- [ ] Fresh Playwright evidence exists for a full route/action sweep against the running stack. -- [ ] The sweep records route-specific interactions, not only status codes or generic button clicks. -- [ ] Any discovered defects are carried into triage instead of skipped. +- [x] Fresh Playwright evidence exists for a full route/action sweep against the running stack. +- [x] The sweep records route-specific interactions, not only status codes or generic button clicks. +- [x] Any discovered defects are carried into triage instead of skipped. ### FE-QA-LOOP-002 - Reproduce and triage confirmed Web defects -Status: DOING +Status: DONE Dependency: FE-QA-LOOP-001 Owners: QA, Developer (FE) Task description: @@ -47,12 +47,12 @@ Task description: - Keep a strict problems-first loop: do not move to a new defect until the current one is triaged to fix or blocked. Completion criteria: -- [ ] Each confirmed issue has reproducible steps and captured evidence. -- [ ] Root cause is documented with affected Web files or explicitly marked out-of-scope. -- [ ] Concurrency risks are noted when another agent owns overlapping files. +- [x] Each confirmed issue has reproducible steps and captured evidence. +- [x] Root cause is documented with affected Web files or explicitly marked out-of-scope. +- [x] Concurrency risks are noted when another agent owns overlapping files. ### FE-QA-LOOP-003 - Implement scoped fixes and retest -Status: DOING +Status: DONE Dependency: FE-QA-LOOP-002 Owners: Developer (FE), Test Automation Task description: @@ -60,9 +60,9 @@ Task description: - Prefer targeted tests and route-specific Playwright replays over heavy workspace builds. Completion criteria: -- [ ] Each fix has fresh Playwright retest evidence. -- [ ] Any new FE automated coverage is targeted and memory-safe. -- [ ] Docs are updated when behavior or operator workflow changes. +- [x] Each fix has fresh Playwright retest evidence. +- [x] Any new FE automated coverage is targeted and memory-safe. +- [x] Docs are updated when behavior or operator workflow changes. ## Execution Log | Date (UTC) | Update | Owner | @@ -88,6 +88,7 @@ Completion criteria: | 2026-03-07 | Root cause for the host flow was `integrations-hub.component.ts` mapping `host -> hosts` even though the canonical list route is `/runtime-hosts`. Root cause for the dead detail flow was `integration-detail.component.ts` never leaving `loading` when the backing GET failed or stalled. Additional live triage showed the direct Integrations service answered immediately, but the authenticated `stella-ops.local` path could stall long enough that the browser request had to be aborted client-side. | Developer (FE) | | 2026-03-07 | Fixed the host onboarding post-create route to `runtime-hosts`, added explicit unavailable/error rendering to integration detail, and added bounded request timeouts plus retry/error states to integration list/detail pages so authenticated frontdoor stalls no longer trap operators on indefinite spinners. Targeted Playwright harness regressions passed after restarting the reused local source server (`npx playwright test tests/e2e/prealpha-canonical-full-sweep.spec.ts --grep \"setup host onboarding returns to runtime-hosts list after create|setup integration detail 404 renders an explicit error state\"` -> 2/2 pass). | Developer (FE) | | 2026-03-07 | Live authenticated Playwright confirmed the repaired host action now lands on `https://stella-ops.local/setup/integrations/runtime-hosts` without entering detail fallback, confirmed missing detail routes now render an explicit unavailable/timeout state with a back-link instead of a permanent spinner, and verified previously hanging list pages such as `/setup/integrations/registries` and `/setup/integrations/secrets` now fail closed with retryable timeout messaging when the authenticated frontdoor path stalls. | QA | +| 2026-03-08 | Fresh regression replay against the local Playwright stack revalidated the broad canonical sweep and exposed two stale acceptance problems plus one real regression. Fixed stale reachability assertions to match the current witness workspace UX, restored top-level policy canonical aliases (`/ops/policy/risk-budget`, `trust-weights`, `staleness`, `sealed-mode`, `profiles`, `validator`, `baselines`, `waivers`) under the Decisioning Studio shell with focused route/unit coverage, and re-ran the affected Playwright slices successfully. The remaining failing route is now `ops/platform-setup/*`, which currently rewrites into `setup/topology/*` and overlaps active setup/topology ownership; that follow-up was split into `SPRINT_20260308_007_FE_platform_setup_canonical_route_preservation.md`. | Developer (FE) | ## Decisions & Risks - Decision: this sprint stays inside `src/Web/StellaOps.Web` plus required sprint/doc updates only. @@ -95,12 +96,15 @@ Completion criteria: - Decision: avoid heavy solution-wide builds/tests due to memory constraints; use targeted FE checks only when a fix requires them. - Decision: canonical route regressions must assert route-specific titles/headings, not only that the URL and shell remain visible. This aligns the implementation with `docs/modules/ui/v2-rewire/S00_route_deprecation_map.md`. - Decision: setup/ops integration pages must fail closed on request stalls with explicit retryable states; the operator experience cannot depend on an eventually-resolving gateway path. +- Decision: this sprint is closed after the 2026-03-08 refresh because its remaining open failure moved out of the already-stabilized search/policy surface and into a separately tracked `platform-setup` cutover defect; continuing to pile unrelated setup/topology ownership into this generic loop would leave the active sprint inventory ambiguous. - Risk: concurrent agents are actively modifying search-related Web files. - Mitigation: avoid those files unless a reproduced defect proves they are the root cause; record any overlap before editing. - Risk: some visible failures may originate from backend APIs rather than Web code. - Mitigation: capture the exact failing route/action and stop at triage if the root cause leaves Web scope. - Risk: the authenticated `stella-ops.local` frontdoor path for `/api/v1/integrations*` can still stall longer than the direct Integrations host path even after the backend service was repaired. - Mitigation: Web now surfaces explicit timeout/retry states instead of indefinite spinners; a later cross-module iteration should trace the frontdoor/gateway hop if flawless live behavior remains the goal. +- Risk: `/ops/platform-setup/*` canonical routes currently rewrite to `/setup/topology/*`, so the broad sweep is not fully green yet. +- Mitigation: track that separately in `SPRINT_20260308_007_FE_platform_setup_canonical_route_preservation.md`; do not leave the completed search/policy/browser loop masquerading as an active search sprint. ## Next Checkpoints - 2026-03-06: Complete first fresh Playwright route/action sweep and defect list. diff --git a/docs/implplan/SPRINT_20260308_007_FE_platform_setup_canonical_route_preservation.md b/docs/implplan/SPRINT_20260308_007_FE_platform_setup_canonical_route_preservation.md new file mode 100644 index 000000000..607c04195 --- /dev/null +++ b/docs/implplan/SPRINT_20260308_007_FE_platform_setup_canonical_route_preservation.md @@ -0,0 +1,78 @@ +# Sprint 20260308-007 - FE Platform Setup Canonical Route Preservation + +## Topic & Scope +- Preserve the canonical `ops/platform-setup/*` route family while the setup/topology cutover continues, so bookmarked and linked operator flows do not silently rewrite into `setup/topology/*`. +- Keep the work limited to Web route ownership, canonical alias preservation, and Playwright/Angular verification for the affected platform-setup and setup-topology surfaces. +- Use the old broad Web QA loop only as upstream evidence; do not continue to treat that generic loop as the active place for setup/topology route work. +- Working directory: `src/Web/StellaOps.Web`. +- Expected evidence: focused Angular route tests, Playwright canonical-route retest slices, and sprint execution log updates. + +## Dependencies & Concurrency +- Upstream evidence came from [SPRINT_20260306_003_FE_playwright_setup_reset_iteration_loop.md](C:/dev/New%20folder/git.stella-ops.org/docs-archived/implplan/SPRINT_20260306_003_FE_playwright_setup_reset_iteration_loop.md), which closed after handing off this remaining non-search defect. +- Overlapping active ownership exists in `platform-setup.routes.ts`, `platform-setup-home.component.ts`, `topology-shell.component.ts`, and related route specs; changes must stay tightly scoped to canonical route preservation. +- Safe parallelism: + - Playwright triage and route-spec updates can proceed without touching component markup. + - URL-preservation fixes should prefer route-tree aliasing over broad topology-shell rewrites. + +## Documentation Prerequisites +- `docs/qa/feature-checks/FLOW.md` +- `docs/code-of-conduct/TESTING_PRACTICES.md` +- `docs/code-of-conduct/CODE_OF_CONDUCT.md` +- `docs/modules/ui/architecture.md` +- `src/Web/StellaOps.Web/AGENTS.md` + +## Delivery Tracker + +### FE-PLATFORMSETUP-001 - Reproduce and bound the canonical rewrite defect +Status: TODO +Dependency: none +Owners: QA, Developer (FE) +Task description: +- Reproduce the currently failing `ops/platform-setup` canonical routes in Playwright and map exactly which leaves rewrite to `setup/topology/*` or other non-canonical locations. +- Keep the evidence concrete: original URL, landed URL, expected canonical URL preservation, and the route/component boundary responsible. + +Completion criteria: +- [ ] A bounded list exists for the affected `ops/platform-setup/*` canonical routes. +- [ ] Each affected route includes real Playwright evidence showing the original and landed URLs. +- [ ] The owning route tree and overlapping files are documented before any fix is applied. + +### FE-PLATFORMSETUP-002 - Preserve canonical platform-setup URLs in the Web router +Status: TODO +Dependency: FE-PLATFORMSETUP-001 +Owners: Developer (FE) +Task description: +- Repair the affected platform-setup routes so canonical `ops/platform-setup/*` URLs keep rendering the intended platform-setup/topology surfaces without rewriting the browser address to `setup/topology/*`. +- Prefer route aliasing or shared leaf mounting that keeps operator bookmarks stable and does not fork the actual feature behavior. + +Completion criteria: +- [ ] `ops/platform-setup/*` leaves remain on their requested canonical URLs. +- [ ] The rendered content matches the intended platform-setup/topology surface for each repaired leaf. +- [ ] The fix does not regress the existing `setup/topology/*` routes. + +### FE-PLATFORMSETUP-003 - Add focused regression coverage and retest +Status: TODO +Dependency: FE-PLATFORMSETUP-002 +Owners: Test Automation, QA +Task description: +- Add or update Angular route coverage and Playwright canonical-route coverage for the repaired platform-setup leaves. +- Re-run the affected slice of `prealpha-canonical-full-sweep.spec.ts` and record the exact passing commands. + +Completion criteria: +- [ ] Focused Angular route tests cover the preserved canonical aliases. +- [ ] Focused Playwright coverage passes for the repaired `ops/platform-setup/*` routes. +- [ ] The sprint log records the exact retest commands and outcomes. + +## Execution Log +| Date (UTC) | Update | Owner | +| --- | --- | --- | +| 2026-03-08 | Sprint created after the refreshed broad Playwright canonical sweep proved the remaining open defect was no longer search/policy related: `ops/platform-setup/regions-environments` rewrote to `setup/topology/regions`, leaving canonical URL preservation broken during the setup/topology cutover. | Developer | + +## Decisions & Risks +- Decision: treat this as a dedicated setup/topology canonical-route sprint, not a continuation of the search-adjacent QA loop. +- Decision: canonical URLs must stay stable for operator bookmarks and routed entry points even when the rendered feature surface is shared with setup/topology. +- Risk: overlapping ownership already exists in active setup/topology files. +- Mitigation: keep fixes narrowly focused on route preservation, add targeted route tests, and avoid broad shell/navigation churn. + +## Next Checkpoints +- 2026-03-08: reproduce the full `ops/platform-setup/*` drift set with Playwright and bound the affected leaves. +- 2026-03-08: land the first route-preservation fix with focused Angular + Playwright evidence.