docs(web): archive scope-preserving actions sprint
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
# Sprint 20260307-016 - FE Mission Control Scope-Preserving Actions
|
||||
|
||||
## Topic & Scope
|
||||
- Repair mission-control and mission-board summary/action links so they preserve the active tenant, region, environment, and time-window scope when routing into downstream surfaces.
|
||||
- Eliminate reliance on target-route redirects accidentally keeping or dropping query parameters depending on the destination module.
|
||||
- Add focused Angular coverage for the affected mission links, then replay the broken actions with live Playwright from `https://stella-ops.local`.
|
||||
- Working directory: `src/Web/StellaOps.Web`.
|
||||
- Expected evidence: focused Angular tests, live Playwright action checks on mission board/alerts/activity links, and sprint execution log updates.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Depends on the earlier mission-board route and environment-scope fixes (`SPRINT_20260307_012`, `SPRINT_20260307_013`, and `SPRINT_20260307_015`) because this iteration preserves the already-correct global scope instead of redefining it.
|
||||
- Safe parallelism: stay inside `src/Web/StellaOps.Web` plus this sprint file; do not touch unrelated navigation/settings/sidebar/user-menu work that other agents are editing.
|
||||
- Scope is limited to mission-control and mission-board action links, not downstream page data models.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `src/Web/StellaOps.Web/AGENTS.md`
|
||||
- `src/Web/StellaOps.Web/src/app/features/dashboard-v3/dashboard-v3.component.ts`
|
||||
- `src/Web/StellaOps.Web/src/app/features/mission-control/mission-alerts-page.component.ts`
|
||||
- `src/Web/StellaOps.Web/src/app/features/mission-control/mission-activity-page.component.ts`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### FE-MISSION-001 - Reproduce scope loss from mission action links
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: QA
|
||||
Task description:
|
||||
- Replay the live mission alerts/activity actions from the authenticated shell with Playwright.
|
||||
- Capture which links drop `tenant`, `regions`, and `environments` when leaving mission-control surfaces.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Live Playwright evidence shows the exact mission actions that lose active scope.
|
||||
- [x] The defect is reduced to a specific link-contract pattern instead of a generic downstream page issue.
|
||||
|
||||
### FE-MISSION-002 - Make mission action links explicitly preserve active scope
|
||||
Status: DONE
|
||||
Dependency: FE-MISSION-001
|
||||
Owners: Developer
|
||||
Task description:
|
||||
- Update mission-board and mission-control action links so they use explicit query-param merge semantics.
|
||||
- Keep the fix scoped to the action layer so downstream pages receive the already-selected global context without route-specific patches.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Mission-board summary, alert, activity, and cross-domain action links preserve active scope during navigation.
|
||||
- [x] Mission-control alerts and activity action links preserve active scope during navigation.
|
||||
|
||||
### FE-MISSION-003 - Add focused Angular coverage for scope-preserving links
|
||||
Status: DONE
|
||||
Dependency: FE-MISSION-002
|
||||
Owners: Test Automation
|
||||
Task description:
|
||||
- Add focused tests that assert the affected mission action links use the explicit query-param merge contract.
|
||||
- Keep the coverage under `src/app/core/testing` so it remains in the focused Angular test include set.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Focused Angular tests assert the relevant mission links use `queryParamsHandling="merge"`.
|
||||
- [x] The tests fail before the fix and pass after it.
|
||||
|
||||
### FE-MISSION-004 - Replay mission actions live after the patch
|
||||
Status: DONE
|
||||
Dependency: FE-MISSION-003
|
||||
Owners: QA
|
||||
Task description:
|
||||
- Re-run the previously broken mission alerts/activity actions against the live authenticated shell.
|
||||
- Confirm the downstream pages keep the original tenant/region/environment scope after navigation.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Live Playwright confirms approvals, disposition, data-integrity, and release-runs actions retain the scoped query string.
|
||||
- [x] Live Playwright confirms the fixed links no longer depend on destination-route behavior to keep context.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-07 | Sprint created after live Playwright from `/mission-control/alerts` and `/mission-control/activity` showed several actions dropping `tenant=demo-prod®ions=us-east&environments=stage` on navigation, while others kept it only by route-specific accident. | QA |
|
||||
| 2026-03-07 | Updated mission-board plus dedicated mission alerts/activity links to use explicit `queryParamsHandling=\"merge\"` and added focused coverage in `src/app/core/testing/mission-scope-links.component.spec.ts`; focused Angular run passed for `dashboard-v3`, mission-scope-links, and `platform-context.store`. | Developer |
|
||||
| 2026-03-07 | Live Playwright on the rebuilt stack confirmed the original broken mission links now keep `tenant`, `regions`, and `environments`, but a deeper race remained: fresh authenticated navigations could still collapse scoped URLs back to tenant-only during global context initialization. | QA |
|
||||
| 2026-03-07 | Fixed the context hydration race in `PlatformContextStore` by retaining the latest pending scope query until initialization completes, then added a focused store regression covering late-arriving route scope during bootstrap. | Developer |
|
||||
| 2026-03-07 | Rebuilt the Web bundle, synced `dist/stellaops-web/browser` into the live `compose_console-dist` volume, and re-ran live Playwright on `/mission-control/board`, `/mission-control/alerts`, and `/mission-control/activity` with `timeWindow=7d`. Source URLs and representative actions now retain `tenant=demo-prod®ions=us-east&environments=stage&timeWindow=7d` through downstream routes such as `/releases/approvals`, `/security/disposition`, and `/releases/runs`. | QA |
|
||||
|
||||
## Decisions & Risks
|
||||
- Decision: fix scope preservation at the mission-link layer with explicit query-param merge semantics rather than modifying every downstream route that currently receives an empty or partial query string.
|
||||
- Risk: the main dashboard uses the same static mission links, so the fix must cover both the dedicated mission-control pages and the mission-board surface in the same iteration.
|
||||
- Decision: treat the later tenant-only URL collapse as a context-initialization defect in `PlatformContextStore`, not another mission-page routing issue, because the scoped route arrived before context initialization completed and the store only remembered the first query override.
|
||||
- Decision: keep the default `24h` time window omission from `scopeQueryPatch()` unchanged; live verification used a non-default `7d` value to prove that explicit time-window scope now survives initialization and navigation.
|
||||
|
||||
## Next Checkpoints
|
||||
- 2026-03-07: land the scope-preserving mission action patch and focused Angular coverage.
|
||||
- 2026-03-07: replay the affected mission actions with live Playwright and continue the authenticated page/action sweep.
|
||||
Reference in New Issue
Block a user