Preserve topology and triage scope in live setup flows

This commit is contained in:
master
2026-03-10 07:37:20 +02:00
parent b9aa1dbe24
commit 425bccf10a
17 changed files with 1077 additions and 52 deletions

View File

@@ -0,0 +1,74 @@
# Sprint 20260310_004 - Setup Topology Live Action Sweep
## Topic & Scope
- Verify the Setup/Topology slice against the rebuilt `https://stella-ops.local` stack with real Playwright interactions, not route-only checks.
- Treat scope preservation as part of correctness: topology tabs and operator actions must keep the active tenant/region/environment/time-window context.
- Working directory: `src/Web/StellaOps.Web`.
- Expected evidence: live Playwright sweep JSON, focused Angular tests, execution log updates, and a scoped commit.
## Dependencies & Concurrency
- Depends on the rebuilt web bundle and healthy frontdoor stack already running through `devops/compose/docker-compose.stella-ops.yml`.
- Safe to run in parallel with backend/search work as long as edits stay inside `src/Web/StellaOps.Web` and this sprint file.
## Documentation Prerequisites
- `docs/qa/feature-checks/FLOW.md`
- `docs/modules/platform/architecture-overview.md`
## Delivery Tracker
### FE-TOPO-LIVE-001 - Capture live topology action evidence
Status: DONE
Dependency: none
Owners: QA, Developer
Task description:
- Add a dedicated live Playwright script for Setup/Topology that exercises the shell tabs, overview CTAs, environment inventory actions, and environment detail actions on the authenticated frontdoor.
- The sweep must fail when routes misnavigate, when runtime errors surface, or when actions drop active scope query parameters that should remain stable across topology flows.
Completion criteria:
- [x] A committed live sweep script exists under `src/Web/StellaOps.Web/scripts/`.
- [x] The sweep captures fresh evidence under `src/Web/StellaOps.Web/output/playwright/`.
- [x] Any failures are diagnosed to code-level root causes before implementation changes begin.
### FE-TOPO-LIVE-002 - Repair topology scope-preserving navigation
Status: DONE
Dependency: FE-TOPO-LIVE-001
Owners: Developer
Task description:
- Apply the existing Stella Ops scope-preserving navigation pattern to the topology shell and topology operator actions so the live context survives shell navigation and drilldowns.
- Keep the fix scoped to topology unless a broader shared change is clearly required and low risk.
Completion criteria:
- [x] Topology shell navigation preserves active scope.
- [x] Topology CTA/drilldown actions preserve active scope while adding route-specific parameters.
- [x] Focused tests cover the changed navigation contracts.
### FE-TOPO-LIVE-003 - Reverify live topology slice after fixes
Status: DONE
Dependency: FE-TOPO-LIVE-002
Owners: QA
Task description:
- Rebuild the web bundle if needed, sync it into the live stack, rerun the exact topology sweep, and confirm the slice is clean.
Completion criteria:
- [x] The topology sweep passes with zero failed actions.
- [x] The topology sweep reports zero runtime issues.
- [x] Execution Log records the before/after evidence and the commit hash.
## Execution Log
| Date (UTC) | Update | Owner |
| --- | --- | --- |
| 2026-03-10 | Sprint created for the next live QA/developer iteration on Setup/Topology after the clean canonical frontdoor, policy, releases, notifications, and mission-control sweeps. | QA |
| 2026-03-10 | First authenticated live topology sweep failed 25 actions with 0 runtime issues. Every failure traced to scope loss across topology shell tabs, CTA/drilldown links, or environment detail operator actions; two tab failures were harness selector collisions on partial `Security` and `Evidence` matches. | QA |
| 2026-03-10 | Root cause analysis found two product defects: Topology links were not consistently using scope-preserving navigation, and `SecurityFindingsPageComponent.reloadFromFilters()` rewrote `/security/triage` without merge semantics, stripping the incoming topology scope. | Developer |
| 2026-03-10 | Added focused navigation regressions for topology and security findings. Focused Angular run passed `6/6` assertions across `2` spec files. | Test Automation |
| 2026-03-10 | Rebuilt the web bundle, synced `dist/stellaops-web/browser` into `compose_console-dist`, and reran the same live topology sweep. Final evidence is clean with `0` failed actions and `0` runtime issues in `src/Web/StellaOps.Web/output/playwright/live-setup-topology-action-sweep.json`. Commit hash pending local commit. | QA |
## Decisions & Risks
- Decision: treat scope preservation as a correctness requirement in topology because the active platform context changes the data surface on every page and drilldown.
- Risk: `TabbedNavComponent` is shared across multiple shells. If topology needs scope-preserving shell tabs, prefer an opt-in contract instead of a silent repo-wide behavior change.
- Decision: `TabItem` now supports opt-in `queryParamsHandling`, and Topology explicitly sets `merge` on its shell tabs. This preserves scope without changing every other shared tabbed navigation surface.
- Decision: fixing the destination rewrite in `/security/triage` is mandatory. Accepting a scoped entry link is not sufficient if the landing page immediately discards the topology context.
## Next Checkpoints
- Capture the first failing topology live sweep.
- Repair the navigation contracts and re-run the same sweep before committing.