Archive live search ingestion browser validation sprint
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
# Sprint 20260308_006_FE - Security Operations Leaves Cutover
|
||||
|
||||
## Topic & Scope
|
||||
- Complete the high-confidence security and operator leaves that are mounted but weakly surfaced: `Mission Alerts`, `Mission Activity`, `Unknowns`, and `Notifications`.
|
||||
- Replace stale `/analyze/unknowns*` and `/notify` links with mounted canonical routes while preserving bookmark compatibility and operator context.
|
||||
- Expose these leaves from the live shells so operators can reach them from current navigation instead of relying on typed URLs or overview-card luck.
|
||||
- Working directory: `src/Web/StellaOps.Web/`.
|
||||
- Expected evidence: targeted Angular tests, Playwright coverage for mission/security/notify journeys, checked-feature docs, and archived sprint notes.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Depends on the shipped `Platform Ops`, `Watchlist`, `Unified Audit`, and `Topology / Trust` cutovers already archived in `docs-archived/implplan/`.
|
||||
- Safe parallelism: backend contracts are already present; this sprint is frontend-only and limited to route ownership, navigation exposure, UI workflow repair, tests, and docs.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `AGENTS.md`
|
||||
- `docs/modules/ui/AGENTS.md`
|
||||
- `src/Web/StellaOps.Web/AGENTS.md`
|
||||
- `docs/modules/ui/README.md`
|
||||
- `docs/modules/ui/architecture.md`
|
||||
- `docs/modules/ui/implementation_plan.md`
|
||||
- `docs/modules/ui/component-preservation-map/RESTORATION_PRIORITIES.md`
|
||||
- `docs/modules/ui/component-preservation-map/components/weak-route/mission-control/README.md`
|
||||
- `docs/modules/ui/component-preservation-map/components/weak-route/notify/README.md`
|
||||
- `docs/modules/ui/component-preservation-map/components/weak-route/unknowns-tracking/README.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### FE-SOL-001 - Freeze canonical mission, unknowns, and notify route ownership
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Developer / Implementer
|
||||
Task description:
|
||||
- Make `Mission Control` the canonical owner for alerts and activity, `Security` the canonical owner for unknowns tracking, and `Ops > Operations` the canonical owner for notifications.
|
||||
- Add or repair alias coverage for stale `/analyze/unknowns*` and `/notify` entry points so bookmarks resolve into mounted pages with preserved query state.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Canonical owners and alias policy are defined for mission alerts/activity, security unknowns, and notifications.
|
||||
- [x] Stale `/analyze/unknowns*` and `/notify` links land on mounted canonical pages.
|
||||
- [x] Shared navigation config no longer points these leaves at dead paths.
|
||||
|
||||
### FE-SOL-002 - Surface the leaves from the live shells
|
||||
Status: DONE
|
||||
Dependency: FE-SOL-001
|
||||
Owners: Developer / Implementer
|
||||
Task description:
|
||||
- Expose the mounted leaves from current shell navigation so operators can reach them without memorizing routes.
|
||||
- Mission Control should surface alerts and activity, Security should surface unknowns, and Operations should surface notifications from active tabs/cards/submenus rather than leaving them as weak-route debt.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Mission Control exposes alerts and activity from the live shell.
|
||||
- [x] Security exposes unknowns from the live shell.
|
||||
- [x] Operations exposes notifications from the live shell.
|
||||
|
||||
### FE-SOL-003 - Repair leaf-local workflow links and actions
|
||||
Status: DONE
|
||||
Dependency: FE-SOL-001
|
||||
Owners: Developer / Implementer
|
||||
Task description:
|
||||
- Fix stale internal links inside the unknowns subtree and any leaf-local handoffs that still target dead routes.
|
||||
- Preserve the current operator flows inside mission alerts/activity and notifications, but ensure all deep links stay inside canonical owners and return-to-context behavior remains intact.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Unknowns dashboard, detail, grey queue, and determinization links stay inside canonical security routes.
|
||||
- [x] Mission alerts and activity handoffs remain usable and route-backed.
|
||||
- [x] Notifications shell keeps working watchlist and delivery drill-ins without stale owner routes.
|
||||
|
||||
### FE-SOL-004 - Verify cutover, sync docs, and archive
|
||||
Status: DONE
|
||||
Dependency: FE-SOL-002, FE-SOL-003
|
||||
Owners: Developer / Implementer, QA
|
||||
Task description:
|
||||
- Add focused tests for the repaired alias contract and surfaced leaves, then run targeted Angular and Playwright verification.
|
||||
- Record the shipped behavior in checked-feature docs and archive the sprint only when all delivery tasks are done.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Targeted Angular tests cover alias repair, surfacing, and local link fixes.
|
||||
- [x] Playwright verifies at least one end-to-end journey across mission, security unknowns, and notifications leaves.
|
||||
- [x] UI docs and checked-feature notes reflect the shipped behavior.
|
||||
- [x] Sprint moved to `docs-archived/implplan/` only after all tasks are marked DONE.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-08 | Sprint created and moved to DOING for the security operations leaves cutover. | Codex |
|
||||
| 2026-03-08 | Added canonical `/analyze/unknowns*` and `/notify` alias coverage, repaired shared navigation targets, and surfaced alerts/activity/unknowns/notifications from live sidebar shells. | Codex |
|
||||
| 2026-03-08 | Verified the cutover with focused Angular tests, Playwright UI flow coverage, and a production build; docs synced and sprint ready for archive. | Codex |
|
||||
|
||||
## Decisions & Risks
|
||||
- Risk: some of these pages are mounted already, but current navigation does not acknowledge them.
|
||||
- Mitigation: treat this as a surfacing and alias cutover, not a new product branch.
|
||||
- Risk: unknowns tracking still contains stale `/analyze/*` internal links that could leave the operator on broken paths.
|
||||
- Mitigation: repair both the bookmark aliases and the leaf-local links in the same sprint.
|
||||
- Risk: notifications has both setup-admin and ops-delivery concepts.
|
||||
- Mitigation: keep admin rule configuration under `Setup > Notifications`, but keep delivery and operator notification workflows under `Ops > Operations > Notifications`.
|
||||
- Risk: the local Angular dev proxy reserves `/notify`, which makes browser-level navigation to that alias unstable in Playwright even though the app route is correct.
|
||||
- Mitigation: keep `/notify` alias coverage in router-contract tests and use the mounted canonical notifications page for browser-level workflow verification.
|
||||
- Delivery rule: this sprint is only complete when these leaves are reachable from live shells, stale links are repaired, and the core operator journey is verified end to end.
|
||||
|
||||
## Next Checkpoints
|
||||
- 2026-03-08: canonical owners, alias contract, and shell exposure complete.
|
||||
- 2026-03-08: targeted verification passes, sprint archived, and commit created.
|
||||
@@ -0,0 +1,83 @@
|
||||
# Sprint 20260308-008 - FE Live Search Ingestion Browser Validation
|
||||
|
||||
## Topic & Scope
|
||||
- Bring the AdvisoryAI search corpus into a known-good ingested state for local verification instead of relying on stale or missing data.
|
||||
- Validate the shipped search experience through a real browser using Playwright against the live search endpoints, not only mocked FE lanes.
|
||||
- Keep the work centered on the Web search verification lane; only use AdvisoryAI startup/rebuild commands as operational prerequisites for the browser tests.
|
||||
- Working directory: `src/Web/StellaOps.Web`.
|
||||
- Expected evidence: corpus rebuild output, live Playwright browser results, and sprint execution log updates.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Depends on the archived search rollout/correction sprints in `docs-archived/implplan/SPRINT_20260306_001_*`, `002_*`, `004_*`, `005_*`, `006_*`, and the later archived 2026-03-07 search corrective set.
|
||||
- Safe parallelism: do not edit unrelated Router, topology, or shell cutover files while executing this validation lane.
|
||||
- Operational dependency: the local AdvisoryAI WebService must be running and reachable on the documented local port before the live browser suite starts.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `docs/qa/feature-checks/FLOW.md`
|
||||
- `docs/code-of-conduct/TESTING_PRACTICES.md`
|
||||
- `docs/modules/advisory-ai/knowledge-search.md`
|
||||
- `src/AdvisoryAI/__Tests/INFRASTRUCTURE.md`
|
||||
- `src/Web/StellaOps.Web/AGENTS.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### FE-LIVESEARCH-001 - Prepare the local ingestion corpus
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: QA, Developer (FE)
|
||||
Task description:
|
||||
- Start or verify the local AdvisoryAI WebService.
|
||||
- Run the documented `sources prepare` and index rebuild order so live search suggestions and grounded answers come from a fresh ingested corpus.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Local AdvisoryAI health responds successfully.
|
||||
- [x] `sources prepare` completes successfully or a documented equivalent local corpus path is used.
|
||||
- [x] Knowledge and unified search rebuilds succeed with recorded output.
|
||||
|
||||
### FE-LIVESEARCH-002 - Execute browser-level Playwright validation against the live search service
|
||||
Status: DONE
|
||||
Dependency: FE-LIVESEARCH-001
|
||||
Owners: QA, Test Automation
|
||||
Task description:
|
||||
- Run the existing live Playwright search suites that proxy browser search traffic into the local AdvisoryAI service.
|
||||
- Exercise real search flows from the browser and confirm grounded results, viable suggestions, and contextual handoff behavior.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Live Playwright search suites pass against the rebuilt local corpus.
|
||||
- [x] Browser verification covers suggestions, grounded answer panel, and Ask-AdvisoryAI handoff.
|
||||
- [x] Failures are triaged as data-ingestion, FE, or backend issues with exact evidence.
|
||||
|
||||
### FE-LIVESEARCH-003 - Record outcomes and close or follow up
|
||||
Status: DONE
|
||||
Dependency: FE-LIVESEARCH-002
|
||||
Owners: QA, Project Manager
|
||||
Task description:
|
||||
- Record the exact commands, routes, and outcomes from the live browser lane.
|
||||
- If defects remain, split them into focused follow-up sprints instead of leaving this ingestion-validation lane ambiguous.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Sprint execution log contains the live setup and browser evidence.
|
||||
- [x] Any remaining issues are translated into focused follow-up work with clear ownership.
|
||||
- [x] This sprint is archived only if all tasks are complete.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-08 | Sprint created to set up local AdvisoryAI ingestion and verify the shipped search UX from a real browser using Playwright against live endpoints. | Developer |
|
||||
| 2026-03-08 | Verified `sources prepare` from the locally built CLI against the repo root with `docs.documentCount=461`, `doctor.mergedSeedCount=31`, and `doctor.controlCount=31`; then started the source-run AdvisoryAI WebService on `http://127.0.0.1:10451` and confirmed `/health` returned `200`. | QA |
|
||||
| 2026-03-08 | Rebuilt the live search indexes against the source-run service and verified `POST /v1/search/query` for `database connectivity` returned `contextAnswer.status=grounded` with top card `PostgreSQL connectivity`. | QA |
|
||||
| 2026-03-08 | Ran `npx playwright test tests/e2e/unified-search-contextual-suggestions.live.e2e.spec.ts --config playwright.config.ts` with `LIVE_ADVISORYAI_SEARCH_BASE_URL=http://127.0.0.1:10451`; result `8 passed`, `3 skipped` where skips were explicit corpus-unready branches that are now bypassed because the routes are ready. | QA |
|
||||
|
||||
## Decisions & Risks
|
||||
- Decision: prefer the documented local ingestion/rebuild flow already used by the live search suites instead of inventing a second setup path.
|
||||
- Decision: use browser-level Playwright verification against live search endpoints as the acceptance lane for this sprint.
|
||||
- Decision: use the source-run AdvisoryAI WebService on `127.0.0.1:10451` for this lane instead of the compose-hosted service because the compose instance was reachable but returned an empty rebuild corpus in this workspace.
|
||||
- Decision: the Playwright test runner is sufficient browser evidence for this sprint; direct MCP browser control was unavailable because the Playwright MCP Bridge extension is not installed in this environment.
|
||||
- Risk: the local AdvisoryAI WebService may not be running or may lack database/env prerequisites.
|
||||
- Mitigation: treat service startup and rebuild as first-class setup work, record exact blockers, and only proceed to browser validation after health is green.
|
||||
- Risk: a reachable AdvisoryAI service can still be logically unready if it points at the wrong database or stale corpus.
|
||||
- Mitigation: require both rebuild output and a grounded direct query (`database connectivity`) before allowing the browser suite to count as valid evidence.
|
||||
|
||||
## Next Checkpoints
|
||||
- 2026-03-08: local AdvisoryAI service healthy and indexes rebuilt.
|
||||
- 2026-03-08: live Playwright search browser suite executed with recorded outcome.
|
||||
Reference in New Issue
Block a user