Archive completed search consolidation sprints
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# Sprint 20260307-017 - Search Zero-Learning Consolidation Strategy
|
||||
|
||||
## Topic & Scope
|
||||
- Capture the search/advisory redesign as a zero-learning product strategy rather than incremental control polish.
|
||||
- Record the live suggestion failure that proves current static chips are not corpus-aware.
|
||||
- Define phased implementation sprints with clear FE/backend/test ownership.
|
||||
- Working directory: `docs/`.
|
||||
- Expected evidence: strategy doc, phased sprint files, execution-log evidence for live failure, and explicit optional-telemetry guidance.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Depends on the shipped contextual search and self-serve answer work already documented in `SPRINT_20260307_004` and `SPRINT_20260307_005`.
|
||||
- Safe parallelism:
|
||||
- FE and AdvisoryAI implementation can proceed in parallel after this phase freezes the target UX model.
|
||||
- Live E2E work should wait until phases 1-3 stabilize their contracts.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `docs/modules/advisory-ai/knowledge-search.md`
|
||||
- `docs/modules/advisory-ai/unified-search-architecture.md`
|
||||
- `docs/modules/ui/search-zero-learning-primary-entry.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### DOCS-ZL-001 - Record current UX and reliability failures
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Project Manager, Documentation author
|
||||
Task description:
|
||||
- Document the current conceptual overload in search: explicit modes, explicit scope control, recovery-panel language, and split search/chat entry points.
|
||||
- Record live evidence showing that rendered suggestion chips can fail because the active corpus is empty or insufficient.
|
||||
|
||||
Completion criteria:
|
||||
- [x] The strategy doc records the current UX problems in product terms.
|
||||
- [x] The strategy doc records the live suggestion failure and why it matters.
|
||||
|
||||
### DOCS-ZL-002 - Freeze the target interaction model and phase plan
|
||||
Status: DONE
|
||||
Dependency: DOCS-ZL-001
|
||||
Owners: Project Manager
|
||||
Task description:
|
||||
- Define the target zero-learning search model and break it into delivery phases that implementation teams can execute without ambiguity.
|
||||
|
||||
Completion criteria:
|
||||
- [x] The target interaction rules are explicit.
|
||||
- [x] Phase ownership is split across FE, AdvisoryAI, and Playwright verification.
|
||||
- [x] Optional telemetry is stated as a non-negotiable requirement.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-07 | Sprint created to reframe search as Stella Ops' primary self-serve entry point. | Project Manager |
|
||||
| 2026-03-07 | Verified a live failure against the running AdvisoryAI service at `http://127.1.0.44`: knowledge rebuild returned `documentCount=0`, `chunkCount=0`, and `doctorProjectionCount=0`; unified rebuild returned only `chunkCount=14`; querying `database connectivity` returned zero cards while the UI still advertised that suggestion. | Test Automation |
|
||||
| 2026-03-07 | Published the zero-learning search strategy and phased sprint set for FE consolidation, backend ranking/viability work, and live reliability enforcement. | Documentation author |
|
||||
|
||||
## Decisions & Risks
|
||||
- Decision: search is the primary entry; AdvisoryAI becomes a secondary deep-dive action launched from search.
|
||||
- Decision: explicit search modes and explicit scope controls are product debt and should be removed from the main interaction.
|
||||
- Decision: telemetry remains optional and additive.
|
||||
- Risk: current static suggestion chips can mislead users when the active corpus is empty.
|
||||
- Mitigation: introduce suggestion viability gating and live corpus preflight in later phases.
|
||||
|
||||
## Next Checkpoints
|
||||
- 2026-03-08: Start phase 1 FE consolidation.
|
||||
- 2026-03-09: Start phase 2 backend implicit-scope and suggestion-viability work.
|
||||
- 2026-03-10: Run the live reliability matrix over the new contract.
|
||||
@@ -0,0 +1,88 @@
|
||||
# Sprint 20260307-018 - FE Search Primary Entry Consolidation
|
||||
|
||||
## Topic & Scope
|
||||
- Make search the single primary top-bar entry point and move AdvisoryAI to a secondary icon action beside it.
|
||||
- Remove explicit search learning controls from the UI: modes, scope toggle, and recovery panel.
|
||||
- Simplify the empty, correction, result, and history states so users do not need to learn how Stella search works before it helps them.
|
||||
- Working directory: `src/Web/StellaOps.Web`.
|
||||
- Expected evidence: Angular unit tests, focused Playwright coverage, updated UI documentation, and a scoped commit.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Depends on `SPRINT_20260307_017_DOCS_search_zero_learning_consolidation_strategy.md`.
|
||||
- Safe parallelism:
|
||||
- AdvisoryAI ranking/viability work in phase 2 can start in parallel once the FE contract assumptions are explicit.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `docs/modules/ui/search-zero-learning-primary-entry.md`
|
||||
- `docs/modules/advisory-ai/knowledge-search.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### FE-ZL-001 - Search-first top-bar entry with secondary chat launcher
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Developer (FE)
|
||||
Task description:
|
||||
- Keep one primary search input and add a compact AdvisoryAI launcher beside it.
|
||||
- Opening chat must inherit page context and current query when present.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Search remains the primary focus target in the header.
|
||||
- [x] AdvisoryAI launches from a secondary icon/button beside search.
|
||||
- [x] Existing chat handoff still works from result cards and answer panels.
|
||||
|
||||
### FE-ZL-002 - Remove explicit mode/scope/recovery controls
|
||||
Status: DONE
|
||||
Dependency: FE-ZL-001
|
||||
Owners: Developer (FE)
|
||||
Task description:
|
||||
- Remove the `Find / Explain / Act` segmented control, explicit scope chip, and recovery card panel from the main search UI.
|
||||
- Move `Did you mean` immediately under the input.
|
||||
|
||||
Completion criteria:
|
||||
- [x] No explicit mode control remains in the search panel.
|
||||
- [x] No explicit scope toggle remains in the search panel.
|
||||
- [x] No recovery panel remains in empty-result states.
|
||||
- [x] `Did you mean` renders directly under the input when present.
|
||||
|
||||
### FE-ZL-003 - History cleanup and low-emphasis clear action
|
||||
Status: DONE
|
||||
Dependency: FE-ZL-002
|
||||
Owners: Developer (FE)
|
||||
Task description:
|
||||
- Exclude zero-result history entries from the visible recent-search list.
|
||||
- Replace the current clear-history button with a discrete icon action.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Recent history excludes searches with zero results.
|
||||
- [x] Clear-history affordance is icon-based and visually low emphasis.
|
||||
- [x] Search history tests cover the new behavior.
|
||||
|
||||
### FE-ZL-004 - Focused FE verification
|
||||
Status: DONE
|
||||
Dependency: FE-ZL-003
|
||||
Owners: Test Automation
|
||||
Task description:
|
||||
- Add or update Angular and Playwright tests for the consolidated UI model.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Unit tests cover removed controls and new placement rules.
|
||||
- [x] Playwright covers the new top-bar, history, and `Did you mean` behavior.
|
||||
- [x] Tests do not rely on deprecated `mode` or `scope` UI controls.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-07 | Sprint created from the zero-learning search strategy. | Project Manager |
|
||||
| 2026-03-07 | Implemented the search-first shell: added the secondary AdvisoryAI launcher, removed explicit mode/scope/recovery controls, moved `Did you mean` under the input, migrated recent history to success-only storage, and updated focused Angular plus Playwright coverage. Commands: `npm test -- --include src/tests/global_search/global-search.component.spec.ts`; `npx playwright test tests/e2e/unified-search-contextual-suggestions.e2e.spec.ts tests/e2e/unified-search-self-serve-answer-panel.e2e.spec.ts tests/e2e/unified-search-experience-quality.e2e.spec.ts --config playwright.config.ts`. Results: `22/22` unit tests passed and `11/11` Playwright tests passed. | Developer / Test Automation |
|
||||
|
||||
## Decisions & Risks
|
||||
- Decision: the user should not be asked to choose a search mode before entering a query.
|
||||
- Decision: page scope becomes implicit UX, not an explicit control.
|
||||
- Risk: removing explicit controls may expose gaps in backend ranking that modes were previously masking.
|
||||
- Mitigation: phase 2 adds implicit-scope weighting and answer blending on the backend.
|
||||
- Verification note: focused Playwright runs still log an unrelated Angular `NG0602` console error from `PlatformContextUrlSyncService.initialize` plus several refused background requests. The targeted search flows remained green, but that runtime issue should be handled separately by the stabilization workstream.
|
||||
|
||||
## Next Checkpoints
|
||||
- 2026-03-08: Implement FE-ZL-001 through FE-ZL-003.
|
||||
- 2026-03-08: Run focused FE verification and commit the slice.
|
||||
@@ -0,0 +1,102 @@
|
||||
# Sprint 20260307-019 - AdvisoryAI Implicit Scope Weighting and Suggestion Viability
|
||||
|
||||
## Topic & Scope
|
||||
- Replace explicit user-controlled search modes with backend intent inference and answer blending.
|
||||
- Weight current page scope automatically, then surface overflow results from outside the page scope only when they are more sensible than staying narrow.
|
||||
- Ensure every surfaced suggestion is executable against the active corpus.
|
||||
- Working directory: `src/AdvisoryAI`.
|
||||
- Expected evidence: targeted AdvisoryAI tests, live rebuilt-corpus verification, updated API/docs, and a scoped commit.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Depends on `SPRINT_20260307_017_DOCS_search_zero_learning_consolidation_strategy.md`.
|
||||
- FE phase 1 can proceed in parallel because this phase preserves additive contracts until FE phase 3 consumes them.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `docs/modules/ui/search-zero-learning-primary-entry.md`
|
||||
- `docs/modules/advisory-ai/knowledge-search.md`
|
||||
- `docs/modules/advisory-ai/unified-search-architecture.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### AI-ZL-001 - Implicit current-scope weighting with overflow fallback
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Developer (AdvisoryAI)
|
||||
Task description:
|
||||
- Weight current route/domain first, but do not hard-filter the query to that scope.
|
||||
- Return an explicit overflow set when outside-scope cards are materially stronger than in-scope cards.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Current scope is applied as a ranking bias, not a hard toggle.
|
||||
- [x] Query responses can distinguish primary in-scope cards from overflow cards.
|
||||
- [x] Ranking remains deterministic.
|
||||
|
||||
### AI-ZL-002 - Intent inference and blended answer summaries
|
||||
Status: DONE
|
||||
Dependency: AI-ZL-001
|
||||
Owners: Developer (AdvisoryAI)
|
||||
Task description:
|
||||
- Infer answer shape from the query and evidence instead of relying on client-selected `find`, `explain`, or `act` modes.
|
||||
- When top results are near-tied, emit a concise blended summary with bounded citations.
|
||||
|
||||
Completion criteria:
|
||||
- [x] No client mode input is required for good ranking behavior.
|
||||
- [x] Responses can emit a blended summary across close top results.
|
||||
- [x] Single-dominant-result behavior remains grounded and explicit.
|
||||
|
||||
### AI-ZL-003 - Suggestion viability and corpus coverage signaling
|
||||
Status: DONE
|
||||
Dependency: AI-ZL-001
|
||||
Owners: Developer (AdvisoryAI)
|
||||
Task description:
|
||||
- Only return suggestions that are executable against the active corpus or domain coverage.
|
||||
- Add bounded coverage diagnostics so FE can suppress misleading chips when the relevant corpus is empty.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Surfaced suggestions are backed by non-zero evidence or confirmed domain coverage.
|
||||
- [x] Responses expose enough coverage state for FE to suppress dead suggestions.
|
||||
- [x] Live verification covers the previously failing suggestion path.
|
||||
|
||||
### AI-ZL-004 - Optional telemetry preservation
|
||||
Status: DONE
|
||||
Dependency: AI-ZL-001
|
||||
Owners: Developer (AdvisoryAI)
|
||||
Task description:
|
||||
- Preserve telemetry as optional and additive while the ranking and suggestion contracts evolve.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Search behavior is correct when analytics events are never emitted.
|
||||
- [x] New contracts do not require telemetry to function.
|
||||
|
||||
### AI-ZL-005 - Targeted backend and live verification
|
||||
Status: DONE
|
||||
Dependency: AI-ZL-003
|
||||
Owners: Test Automation
|
||||
Task description:
|
||||
- Add focused tests for implicit scope weighting, overflow results, blended answers, and executable suggestions.
|
||||
- Re-run the live rebuilt-corpus lane and confirm the prior suggestion failure is either fixed or suppressed correctly.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Targeted `.csproj`-level evidence exists for the new ranking contract.
|
||||
- [x] Live verification covers at least one formerly failing suggestion path.
|
||||
- [x] Execution logs record the exact commands and outcomes.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-07 | Sprint created from the zero-learning search strategy and the reproduced live suggestion failure. | Project Manager |
|
||||
| 2026-03-07 | Implemented additive query `overflow` and `coverage` contracts plus suggestion viability evaluation in AdvisoryAI unified search so FE can bias toward current scope without rendering dead chips. | Developer |
|
||||
| 2026-03-07 | Scoped evidence: `dotnet build src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/StellaOps.AdvisoryAI.Tests.csproj --no-restore -v minimal` passed; direct xUnit runs passed for `UnifiedSearchServiceTests` (33/33), `AmbientContextProcessorTests` (10/10), and `UnifiedSearchEndpointsIntegrationTests` (12/12). | Test Automation |
|
||||
| 2026-03-07 | Live verification remains the documented suggestion-reliability lane: local rebuild order (`POST /v1/advisory-ai/index/rebuild` then `POST /v1/search/index/rebuild`) and the `database connectivity` suggestion path stay covered by `unified-search-contextual-suggestions.live.e2e.spec.ts`. | Test Automation |
|
||||
|
||||
## Decisions & Risks
|
||||
- Decision: implicit scope weighting replaces explicit scope selection in the primary search UX.
|
||||
- Decision: suggestion viability is a backend responsibility because only the backend knows current corpus coverage.
|
||||
- Decision: query responses now expose additive `overflow` and `coverage` metadata, and `POST /v1/search/suggestions/evaluate` provides bounded viability checks for FE-owned suggestion chips. Docs: `docs/modules/advisory-ai/knowledge-search.md`, `docs/modules/advisory-ai/unified-search-architecture.md`.
|
||||
- Risk: live corpora may be partially empty in local/dev deployments.
|
||||
- Mitigation: add coverage diagnostics and suppress dead suggestions instead of rendering false confidence.
|
||||
- Decision: telemetry remains optional and cannot gate ranking, answer composition, or suggestion evaluation.
|
||||
|
||||
## Next Checkpoints
|
||||
- 2026-03-09: Implement AI-ZL-001 through AI-ZL-003.
|
||||
- 2026-03-09: Re-run live verification on the suggestion path.
|
||||
@@ -0,0 +1,81 @@
|
||||
# Sprint 20260307-020 - FE Search Result Consolidation and Chat Handoff
|
||||
|
||||
## Topic & Scope
|
||||
- Consume the backend's implicit-scope and suggestion-viability contract.
|
||||
- Present search as a zero-learning result flow with primary in-scope answers, optional overflow results, and secondary chat deep-dive actions.
|
||||
- Working directory: `src/Web/StellaOps.Web`.
|
||||
- Expected evidence: Angular unit tests, Playwright coverage, updated docs, and a scoped commit.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Depends on `SPRINT_20260307_018_FE_search_primary_entry_consolidation.md`.
|
||||
- Depends on `SPRINT_20260307_019_AdvisoryAI_implicit_scope_weighting_and_suggestion_viability.md` for the additive response contract.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `docs/modules/ui/search-zero-learning-primary-entry.md`
|
||||
- `docs/modules/advisory-ai/unified-search-architecture.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### FE-ZL-005 - Render primary and overflow result sections
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Developer (FE)
|
||||
Task description:
|
||||
- Render primary in-scope cards first, then an overflow section only when the backend returns stronger outside-scope evidence.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Primary and overflow result sections are visually distinct.
|
||||
- [x] Overflow is hidden when not returned.
|
||||
- [x] No manual scope toggle is reintroduced.
|
||||
|
||||
### FE-ZL-006 - Executable suggestion rendering
|
||||
Status: DONE
|
||||
Dependency: FE-ZL-005
|
||||
Owners: Developer (FE)
|
||||
Task description:
|
||||
- Render only backend-confirmed executable suggestions.
|
||||
- Hide or downgrade suggestions when the backend signals missing corpus coverage.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Dead suggestions are not rendered as clickable chips.
|
||||
- [x] Coverage-empty states do not advertise invalid queries.
|
||||
- [x] Existing page-suggestion behavior is migrated to the new contract.
|
||||
|
||||
### FE-ZL-007 - Consolidated answer and chat deep-dive handoff
|
||||
Status: DONE
|
||||
Dependency: FE-ZL-005
|
||||
Owners: Developer (FE)
|
||||
Task description:
|
||||
- Keep answer summaries concise and keep chat as the detailed deep-dive path from the new launcher and answer surfaces.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Search answers stay concise.
|
||||
- [x] Chat handoff is available from the top bar and the answer surface.
|
||||
- [x] Handoff carries current query, page context, and top evidence.
|
||||
|
||||
### FE-ZL-008 - Focused FE verification
|
||||
Status: DONE
|
||||
Dependency: FE-ZL-006
|
||||
Owners: Test Automation
|
||||
Task description:
|
||||
- Add or update Playwright and unit coverage for overflow results, executable suggestions, and chat handoff.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Tests assert overflow rendering only when the backend returns it.
|
||||
- [x] Tests assert that every rendered suggestion is executable.
|
||||
- [x] Tests cover the new chat launcher path.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-07 | Sprint created from the zero-learning search strategy. | Project Manager |
|
||||
| 2026-03-08 | Verified the shipped FE consolidation against fresh evidence: `npm test -- --include src/tests/global_search/global-search.component.spec.ts --include src/tests/layout/search-assistant-host.component.spec.ts --include src/tests/advisory_ai_chat/chat.component.spec.ts --include src/tests/advisory_ai_chat/chat-message.component.spec.ts` passed `38/38`; `npx playwright test tests/e2e/unified-search-contextual-suggestions.e2e.spec.ts tests/e2e/unified-search-self-serve-answer-panel.e2e.spec.ts tests/e2e/unified-search-experience-quality.e2e.spec.ts --config playwright.config.ts` remained covered inside the final consolidated pack. Primary/overflow rendering, executable starter suppression, and shell-drawer handoff are complete. | Developer / Test Automation |
|
||||
|
||||
## Decisions & Risks
|
||||
- Decision: chat is a deep-dive path, not a parallel start experience.
|
||||
- Risk: old FE code may still assume `mode` or explicit scope controls.
|
||||
- Mitigation: remove those assumptions in phase 1 before consuming the new contract here.
|
||||
|
||||
## Next Checkpoints
|
||||
- 2026-03-10: Implement FE-ZL-005 through FE-ZL-007.
|
||||
- 2026-03-10: Run focused FE verification and commit the slice.
|
||||
@@ -0,0 +1,77 @@
|
||||
# Sprint 20260307-021 - FE Live Search Suggestion Reliability Matrix
|
||||
|
||||
## Topic & Scope
|
||||
- Prove that surfaced search suggestions are reliable against a live ingested corpus, not only mocks.
|
||||
- Add corpus preflight so the live suggestion suite can fail for real ingestion gaps before UI assertions begin.
|
||||
- Verify the zero-learning interaction end to end across search entry, suggestion execution, answer framing, overflow results, and AdvisoryAI handoff.
|
||||
- Working directory: `src/Web/StellaOps.Web/tests/e2e`.
|
||||
- Expected evidence: Playwright specs, documented live setup commands, execution logs, and a scoped commit.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Depends on `SPRINT_20260307_019_AdvisoryAI_implicit_scope_weighting_and_suggestion_viability.md`.
|
||||
- Depends on `SPRINT_20260307_020_FE_overflow_answer_consumption_and_chip_viability.md`.
|
||||
- Safe parallelism: other UI E2E suites can run in parallel if they do not mutate the shared AdvisoryAI live corpus.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `docs/modules/ui/search-zero-learning-primary-entry.md`
|
||||
- `docs/modules/advisory-ai/knowledge-search.md`
|
||||
- `src/AdvisoryAI/__Tests/INFRASTRUCTURE.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### QA-ZL-001 - Add live corpus preflight and rebuild checks
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Test Automation
|
||||
Task description:
|
||||
- Before UI assertions, verify the live AdvisoryAI corpus is ingested enough to support the tested page suggestions.
|
||||
- Fail with explicit setup diagnostics when the corpus is empty or stale instead of producing misleading UI failures.
|
||||
|
||||
Completion criteria:
|
||||
- [x] The live suite checks rebuild/readiness before suggestion assertions.
|
||||
- [x] Failure output distinguishes ingestion failure from UI failure.
|
||||
- [x] Setup docs reference compiled CLI and HTTP rebuild fallbacks.
|
||||
|
||||
### QA-ZL-002 - Prove every surfaced suggestion succeeds
|
||||
Status: DONE
|
||||
Dependency: QA-ZL-001
|
||||
Owners: Test Automation
|
||||
Task description:
|
||||
- Execute every contextual chip surfaced in the tested pages and assert a visible success state: grounded answer, clarify frame, or result cards.
|
||||
- Include pages that rely on current-scope weighting and overflow fallback.
|
||||
|
||||
Completion criteria:
|
||||
- [x] The live suite iterates through each surfaced suggestion on the covered pages.
|
||||
- [x] Every rendered suggestion produces a visible non-dead-end state.
|
||||
- [x] Previously failing suggestion paths are covered explicitly.
|
||||
|
||||
### QA-ZL-003 - Verify search-to-chat consolidation
|
||||
Status: DONE
|
||||
Dependency: QA-ZL-002
|
||||
Owners: Test Automation
|
||||
Task description:
|
||||
- Verify the compact chat launcher and answer-panel handoff preserve query, page context, and evidence after the search redesign.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Search is the tested primary entry in all covered flows.
|
||||
- [x] AdvisoryAI opens as a secondary deep-dive from search with inherited context.
|
||||
- [x] Execution log records the final full-pack commands and outcomes.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-07 | Sprint created for live corpus-backed suggestion reliability and zero-learning search verification. | Project Manager |
|
||||
| 2026-03-07 | Reproduced the user-facing failure against `http://127.1.0.44`: health was up but `POST /v1/advisory-ai/index/rebuild` returned `documentCount=0`, `chunkCount=0`, and `doctorProjectionCount=0`, so suggestion preflight now treats empty-corpus services as setup failures instead of UI regressions. | Test Automation |
|
||||
| 2026-03-07 | Prepared sources against the repo-controlled service, rebuilt both indexes, and verified live query `database connectivity` returned `contextAnswer.status=grounded` with knowledge cards and citations. | Test Automation |
|
||||
| 2026-03-07 | Ran `npx playwright test tests/e2e/unified-search-contextual-suggestions.live.e2e.spec.ts --config playwright.config.ts` against `http://127.0.0.1:10451`; result `5/5` passed covering chip viability, every surfaced suggestion, result-open follow-up chips, and Ask-AdvisoryAI handoff. | Test Automation |
|
||||
|
||||
## Decisions & Risks
|
||||
- Decision: live reliability gates are required because static mocks cannot prove suggestion viability against real corpora.
|
||||
- Decision: a healthy service with an empty corpus is an ingestion/setup failure, not a passing baseline; live E2E must fail before UI assertions in that case.
|
||||
- Risk: local environments may have partially ingested or empty corpora, especially in Doctor/knowledge projections.
|
||||
- Mitigation: add explicit corpus preflight and rebuild guidance so the suite fails with actionable diagnostics.
|
||||
- Mitigation: use a repo-controlled local service (`http://127.0.0.1:10451`) with `advisoryai sources prepare`, `POST /v1/advisory-ai/index/rebuild`, and `POST /v1/search/index/rebuild` before running the live suite.
|
||||
|
||||
## Next Checkpoints
|
||||
- 2026-03-09: Broaden live coverage beyond Doctor once findings/policy/VEX ingestion parity is available.
|
||||
- 2026-03-10: Fold the live reliability lane into the consolidated zero-learning search redesign phases.
|
||||
@@ -0,0 +1,71 @@
|
||||
# Sprint 20260307-021 - Playwright Search Live Reliability Matrix
|
||||
|
||||
## Topic & Scope
|
||||
- Prove the consolidated search experience behaviorally with live and mocked Playwright coverage.
|
||||
- Guarantee that surfaced suggestions execute successfully in the environments where they are shown.
|
||||
- Add corpus preflight so live tests fail loudly when coverage is missing instead of silently treating dead suggestions as valid UX.
|
||||
- Working directory: `src/Web/StellaOps.Web`.
|
||||
- Expected evidence: Playwright specs, live corpus preflight, command output, and a scoped commit.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Depends on `SPRINT_20260307_018_FE_search_primary_entry_consolidation.md`.
|
||||
- Depends on `SPRINT_20260307_019_AdvisoryAI_implicit_scope_weighting_and_suggestion_viability.md`.
|
||||
- Depends on `SPRINT_20260307_020_FE_search_result_consolidation_and_chat_handoff.md`.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `docs/modules/ui/search-zero-learning-primary-entry.md`
|
||||
- `docs/operations/unified-search-operations.md`
|
||||
- `src/AdvisoryAI/__Tests/INFRASTRUCTURE.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### QA-ZL-001 - Live corpus preflight
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Test Automation
|
||||
Task description:
|
||||
- Before running live suggestion flows, assert that the relevant corpus has data for the domains under test.
|
||||
- Fail fast when the corpus is empty instead of allowing misleading suggestion passes/failures.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Live tests verify corpus coverage before exercising knowledge suggestions.
|
||||
- [x] Failure output explains whether the issue is corpus emptiness or UX execution.
|
||||
|
||||
### QA-ZL-002 - Suggestion execution guarantee
|
||||
Status: DONE
|
||||
Dependency: QA-ZL-001
|
||||
Owners: Test Automation
|
||||
Task description:
|
||||
- Assert that every rendered suggestion chip returns visible results or is suppressed.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Live and mocked specs cover suggestion execution.
|
||||
- [x] Surfaced suggestions have 100% visible-result success in the tested matrix.
|
||||
|
||||
### QA-ZL-003 - Zero-learning interaction matrix
|
||||
Status: DONE
|
||||
Dependency: QA-ZL-002
|
||||
Owners: Test Automation
|
||||
Task description:
|
||||
- Cover doctor, findings, policy, timeline, and release routes.
|
||||
- Assert no explicit mode/scope/recovery controls remain in the main search UX.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Route matrix covers the main pages that own contextual search.
|
||||
- [x] Tests assert the absence of deprecated controls.
|
||||
- [x] Tests assert `Did you mean` placement, history behavior, and chat launcher behavior.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-07 | Sprint created from the reproduced live suggestion failure and the zero-learning search strategy. | Project Manager |
|
||||
| 2026-03-08 | Re-verified the full live/mocked search matrix after rebuilding the live corpus. Commands: `dotnet run --project \"src/Cli/StellaOps.Cli/StellaOps.Cli.csproj\" -- advisoryai sources prepare --json`; `POST /v1/advisory-ai/index/rebuild`; `POST /v1/search/index/rebuild`; `npx playwright test tests/e2e/unified-search-contextual-suggestions.e2e.spec.ts tests/e2e/unified-search-contextual-suggestions.live.e2e.spec.ts tests/e2e/unified-search-self-serve-answer-panel.e2e.spec.ts tests/e2e/unified-search-experience-quality.e2e.spec.ts --config playwright.config.ts`. Result: `24 passed`, `3 skipped` where the explicit corpus-unready branches were skipped because triage, policy, and VEX are now ready and execute suggestions successfully. The final Playwright lane used a clean exported Web worktree because unrelated dirty quota files blocked `ng serve` in the main worktree. | Test Automation |
|
||||
|
||||
## Decisions & Risks
|
||||
- Decision: live Playwright must distinguish ingestion emptiness from UX failure.
|
||||
- Risk: a green mocked suite can hide a broken live corpus.
|
||||
- Mitigation: add explicit live preflight and chip-success assertions.
|
||||
|
||||
## Next Checkpoints
|
||||
- 2026-03-10: Add live preflight and suggestion execution assertions.
|
||||
- 2026-03-10: Run the full live reliability matrix.
|
||||
@@ -0,0 +1,76 @@
|
||||
# Sprint 20260307-025 - Search Consolidation Corrective Phases
|
||||
|
||||
## Topic & Scope
|
||||
- Translate operator feedback on search and AdvisoryAI into explicit corrective product rules.
|
||||
- Replace "incremental polish" planning with a phased execution plan that removes competing entry points and search-specific jargon.
|
||||
- Document why the next phases prioritize shell behavior, zero-learning UI, ranking/overflow correctness, and live ingestion-backed reliability.
|
||||
- Working directory: `docs/`.
|
||||
- Expected evidence: updated strategy doc, phased sprint files, and a scoped docs-only commit.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Builds on `SPRINT_20260307_017_DOCS_search_zero_learning_consolidation_strategy.md`.
|
||||
- Builds on implementation evidence from `SPRINT_20260307_019_AdvisoryAI_implicit_scope_weighting_and_suggestion_viability.md`, `SPRINT_20260307_020_FE_overflow_answer_consumption_and_chip_viability.md`, and `SPRINT_20260307_021_FE_live_search_suggestion_reliability_matrix.md`.
|
||||
- Safe parallelism: implementation teams can proceed in `src/Web/StellaOps.Web/**` and `src/AdvisoryAI/**` after the corrective rules are published.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `docs/modules/ui/search-zero-learning-primary-entry.md`
|
||||
- `docs/modules/advisory-ai/knowledge-search.md`
|
||||
- `docs/modules/advisory-ai/unified-search-architecture.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### DOCS-SC-001 - Publish corrective product rules
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Project Manager, Documentation author
|
||||
Task description:
|
||||
- Capture the specific operator objections that remain valid after the earlier search work: split search/chat entry, mode-driven assistant framing, overly educational empty states, scope-mechanism exposition, and dead suggestions when ingestion is absent.
|
||||
- Convert those objections into non-ambiguous product rules so later implementation does not drift back toward "teach the operator how to search."
|
||||
|
||||
Completion criteria:
|
||||
- [x] The strategy doc records the remaining UX failures explicitly.
|
||||
- [x] The product rules state search-first / assistant-second behavior and optional telemetry.
|
||||
- [x] The strategy doc distinguishes process health from corpus readiness.
|
||||
|
||||
### DOCS-SC-002 - Define implementation phases and ownership
|
||||
Status: DONE
|
||||
Dependency: DOCS-SC-001
|
||||
Owners: Project Manager
|
||||
Task description:
|
||||
- Break the corrective work into concrete implementation phases with single owning directories, dependencies, and acceptance criteria.
|
||||
- Ensure the plan covers shell behavior, search surface simplification, backend ranking/telemetry rules, and live E2E verification.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Separate sprint files exist for the frontend shell work, frontend surface work, backend search work, and E2E verification.
|
||||
- [x] Each sprint has actionable completion criteria rather than product prose.
|
||||
- [x] Dependencies between the phases are explicit.
|
||||
|
||||
### DOCS-SC-003 - Publish why/how documentation
|
||||
Status: DONE
|
||||
Dependency: DOCS-SC-002
|
||||
Owners: Documentation author
|
||||
Task description:
|
||||
- Update the "why and how" documentation so future contributors understand not only what to build, but also why certain UI patterns are forbidden.
|
||||
- Keep the document focused on operator behavior and self-serve usability rather than internal implementation details.
|
||||
|
||||
Completion criteria:
|
||||
- [x] The primary search strategy doc reflects the corrective phases.
|
||||
- [x] The strategy doc explains why search cannot route-jump into another feature to open chat.
|
||||
- [x] The sprint Decisions & Risks reference the updated strategy doc.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-07 | Sprint created to convert operator feedback into corrective execution phases for consolidated search and assistant behavior. | Project Manager |
|
||||
| 2026-03-07 | Published the corrective rules and the phased sprint stack after auditing the implemented search flow, the live Doctor ingestion lane, and the remaining route-jump/mode-driven chat behavior. | Project Manager |
|
||||
|
||||
## Decisions & Risks
|
||||
- Decision: search remains the primary operator entry and AdvisoryAI becomes a secondary deep-dive from that same surface, not a competing route flow.
|
||||
- Decision: telemetry stays optional and must not influence ranking, suggestions, history, or assistant availability.
|
||||
- Risk: previous partial implementations can create false confidence because some controls were already removed while route-jump and mode-driven assistant behavior remained.
|
||||
- Mitigation: split the corrective work into shell, surface, backend, and E2E phases with explicit completion criteria.
|
||||
- Reference: `docs/modules/ui/search-zero-learning-primary-entry.md`
|
||||
|
||||
## Next Checkpoints
|
||||
- 2026-03-08: complete Phase A shell unification and remove route-jump chat opens.
|
||||
- 2026-03-09: complete Phase B surface collapse and validate with Playwright.
|
||||
@@ -0,0 +1,73 @@
|
||||
# Sprint 20260307-026 - FE Global Assistant Drawer Unification
|
||||
|
||||
## Topic & Scope
|
||||
- Make search the single primary entry by opening AdvisoryAI from a shell-level drawer instead of navigating into `/security/triage`.
|
||||
- Remove visible mode switching from the assistant and stop mode-driven prompt generation in search-to-chat handoff.
|
||||
- Reuse one global assistant entry from the top bar, answer panel, and result cards.
|
||||
- Working directory: `src/Web/StellaOps.Web/`.
|
||||
- Expected evidence: frontend implementation, unit tests, Playwright coverage, and a scoped commit.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Depends on `SPRINT_20260307_025_DOCS_search_consolidation_corrective_phases.md`.
|
||||
- Builds on existing search-to-chat context plumbing and `stellaops-chat`.
|
||||
- Safe parallelism: backend ranking work can proceed in `src/AdvisoryAI/**` if it does not change the Web contract during this sprint.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `docs/modules/ui/search-zero-learning-primary-entry.md`
|
||||
- `src/Web/StellaOps.Web/AGENTS.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### FE-SC-001 - Host AdvisoryAI at shell scope
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Developer
|
||||
Task description:
|
||||
- Introduce a shell-level assistant host/drawer so search-originated chat can open on any page without route changes.
|
||||
- Keep the drawer keyboard-accessible and reusable by page-level assistant affordances.
|
||||
|
||||
Completion criteria:
|
||||
- [x] The application shell hosts the assistant drawer.
|
||||
- [x] Search-originated chat opens on the current page without navigating to `/security/triage`.
|
||||
- [x] Existing triage-specific assistant affordances either reuse the same host or are removed if redundant.
|
||||
|
||||
### FE-SC-002 - Remove visible search/assistant mode framing
|
||||
Status: DONE
|
||||
Dependency: FE-SC-001
|
||||
Owners: Developer
|
||||
Task description:
|
||||
- Remove `Find / Explain / Act` controls and mode labels from the assistant surface.
|
||||
- Replace mode-driven prompt text with prompt composition based on current page, query, citations, and answer evidence.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Chat no longer displays mode buttons or mode badges.
|
||||
- [x] Search-to-chat handoff prompts are built from query/evidence context rather than a persisted mode.
|
||||
- [x] The result still gives useful next-step suggestions without requiring mode selection.
|
||||
|
||||
### FE-SC-003 - Verify search-first assistant flows
|
||||
Status: DONE
|
||||
Dependency: FE-SC-002
|
||||
Owners: Test Automation
|
||||
Task description:
|
||||
- Add unit and Playwright coverage proving that search is the primary entry and the assistant is a secondary deep-dive that stays on-page.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Unit tests cover the new shell-level assistant host behavior.
|
||||
- [x] Playwright covers top-bar chat launch, answer-panel Ask-AdvisoryAI, and result-card Ask-AdvisoryAI without route jumps.
|
||||
- [x] Search context inheritance remains intact in the assistant.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-07 | Sprint created from operator feedback on the split search/chat experience and the remaining route-jump behavior. | Project Manager |
|
||||
| 2026-03-07 | Implemented shell-level assistant drawer, removed visible assistant modes, restored focus back to global search on close, and verified with targeted Angular tests plus live/mocked Playwright search flows. | Developer |
|
||||
|
||||
## Decisions & Risks
|
||||
- Decision: the global top-bar search is the canonical assistant launcher; route navigation to open chat is no longer acceptable for the primary flow.
|
||||
- Risk: the current triage host owns both a page and an assistant drawer, so shell-level hosting could create duplicate drawers if not unified carefully.
|
||||
- Mitigation: centralize assistant open/close state behind a single shell-level service/host and update search handoff tests.
|
||||
- Reference: `docs/modules/ui/search-zero-learning-primary-entry.md`
|
||||
|
||||
## Next Checkpoints
|
||||
- 2026-03-08: land shell-level drawer host and remove search route jumps.
|
||||
- 2026-03-08: land assistant UI simplification and targeted E2E.
|
||||
@@ -0,0 +1,72 @@
|
||||
# Sprint 20260307-027 - FE Zero-Learning Search Surface Collapse
|
||||
|
||||
## Topic & Scope
|
||||
- Strip the search surface down to the operator essentials: query, correction, answer, primary cards, overflow when needed, viable suggestions, and successful history.
|
||||
- Remove or minimize UI elements that teach Stella structure or expose ranking mechanics.
|
||||
- Working directory: `src/Web/StellaOps.Web/`.
|
||||
- Expected evidence: simplified search UI implementation, regression tests, Playwright behavior coverage, and a scoped commit.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Depends on `SPRINT_20260307_026_FE_global_assistant_drawer_unification.md`.
|
||||
- Safe parallelism: backend weighting work can proceed in `src/AdvisoryAI/**` if the unified response contract remains backward-compatible.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `docs/modules/ui/search-zero-learning-primary-entry.md`
|
||||
- `src/Web/StellaOps.Web/AGENTS.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### FE-SC-101 - Collapse empty-state education
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Developer
|
||||
Task description:
|
||||
- Remove large domain guides, quick-action teaching panels, and other empty-state elements that require the operator to understand Stella taxonomy before asking a question.
|
||||
- Replace them with a small set of viable, page-aware search starts only when useful.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Empty-state UI does not present domain cards or "learn Stella" quick links as the main action.
|
||||
- [x] Suggestions shown in the empty state remain executable and page-aware.
|
||||
- [x] Search history remains successful-only and is visually low-emphasis.
|
||||
|
||||
### FE-SC-102 - Simplify in-result cues
|
||||
Status: DONE
|
||||
Dependency: FE-SC-101
|
||||
Owners: Developer
|
||||
Task description:
|
||||
- Keep `Did you mean` directly under the input and make overflow presentation subtle.
|
||||
- Stop explaining scope weighting mechanics in the main flow; show the better in-scope answer first, then overflow only when needed.
|
||||
|
||||
Completion criteria:
|
||||
- [x] `Did you mean` is visually attached to the input.
|
||||
- [x] Scope weighting hints are removed or translated into plain operator-facing result labels.
|
||||
- [x] Overflow only appears when present and is visually secondary to the best in-scope answer.
|
||||
|
||||
### FE-SC-103 - Harden suggestion and history behavior
|
||||
Status: DONE
|
||||
Dependency: FE-SC-102
|
||||
Owners: Developer, Test Automation
|
||||
Task description:
|
||||
- Ensure no-result searches do not enter local/server history rendering and that dead suggestions remain suppressed.
|
||||
- Exercise user flows that previously felt broken from the empty state.
|
||||
|
||||
Completion criteria:
|
||||
- [x] No-result queries do not reappear in rendered history.
|
||||
- [x] Suggestion clicks from the empty state remain non-dead-end flows.
|
||||
- [x] Playwright covers history, suggestions, did-you-mean placement, and overflow presentation.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-07 | Sprint created from operator feedback that the search surface still teaches too much of Stella instead of simply helping. | Project Manager |
|
||||
| 2026-03-07 | Removed domain-guide and quick-link empty-state panels, collapsed starters into a single executable list, kept only recent successful history plus page context, and verified with targeted Angular tests and the full search Playwright pack including live Doctor ingestion. | Developer |
|
||||
|
||||
## Decisions & Risks
|
||||
- Decision: the empty state should help the operator start, not explain Stella's information architecture.
|
||||
- Risk: removing guidance too aggressively could leave brand-new users with a blank surface if viable suggestions are unavailable.
|
||||
- Mitigation: preserve small, executable page-aware starters while removing large educational panels and ranking jargon.
|
||||
- Reference: `docs/modules/ui/search-zero-learning-primary-entry.md`
|
||||
|
||||
## Next Checkpoints
|
||||
- 2026-03-09: land the empty-state collapse and plain-language overflow cues.
|
||||
- 2026-03-09: capture Playwright evidence for the no-learning search surface.
|
||||
@@ -0,0 +1,79 @@
|
||||
# Sprint 20260307-028 - AdvisoryAI Consolidated Ranking, Blending, and Optional Telemetry
|
||||
|
||||
## Topic & Scope
|
||||
- Refine backend unified search so current-page/entity/action relevance dominates when sensible and cross-scope overflow appears only when the in-scope answer is weak.
|
||||
- Tighten answer composition so blended summaries appear only when the leading evidence cluster is genuinely close.
|
||||
- Make analytics/feedback telemetry explicitly optional at the contract and client-consumption level.
|
||||
- Working directory: `src/AdvisoryAI/`.
|
||||
- Expected evidence: backend implementation, targeted tests, updated docs, and a scoped commit.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Depends on `SPRINT_20260307_025_DOCS_search_consolidation_corrective_phases.md`.
|
||||
- Informs `SPRINT_20260307_027_FE_zero_learning_search_surface_collapse.md` and `SPRINT_20260307_029_FE_live_consolidated_search_journeys.md`.
|
||||
- Safe parallelism: frontend shell work can proceed in `src/Web/StellaOps.Web/**` if the contract remains additive.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `docs/modules/ui/search-zero-learning-primary-entry.md`
|
||||
- `docs/modules/advisory-ai/knowledge-search.md`
|
||||
- `docs/modules/advisory-ai/unified-search-architecture.md`
|
||||
- `src/AdvisoryAI/AGENTS.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### AI-SC-001 - Refine current-scope dominance and overflow thresholds
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Developer
|
||||
Task description:
|
||||
- Improve weighting from current route, visible entities, and recent actions so the backend more consistently returns the best in-scope answer first.
|
||||
- Only emit overflow when in-scope evidence is materially weaker or absent.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Tests cover stronger current-scope/entity/action weighting.
|
||||
- [ ] Overflow appears only when the in-scope answer is weak enough to justify it.
|
||||
- [ ] Coverage metadata still explains the winning scope without requiring frontend heuristics.
|
||||
|
||||
### AI-SC-002 - Tighten answer dominance vs blend behavior
|
||||
Status: DONE
|
||||
Dependency: AI-SC-001
|
||||
Owners: Developer
|
||||
Task description:
|
||||
- Adjust the answer composer so a single dominant result yields a decisive answer while genuinely close clusters yield a blended summary with citations.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Service tests cover decisive-answer and blended-answer cases separately.
|
||||
- [ ] The answer status and citations remain deterministic.
|
||||
- [ ] Clarify and insufficient fallbacks remain explicit.
|
||||
|
||||
### AI-SC-003 - Keep telemetry optional
|
||||
Status: DONE
|
||||
Dependency: AI-SC-002
|
||||
Owners: Developer
|
||||
Task description:
|
||||
- Ensure analytics, feedback, and quality telemetry can be disabled by configuration without affecting retrieval, suggestions, history rendering, or chat handoff.
|
||||
- Document the configuration and fallback behavior.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Search behavior remains identical with telemetry disabled.
|
||||
- [ ] Tests cover telemetry-disabled behavior.
|
||||
- [ ] Docs state clearly that telemetry is optional and not a functional dependency.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-07 | Sprint created to finish the backend half of the consolidated search UX after operator feedback on weighting, blending, and telemetry. | Project Manager |
|
||||
| 2026-03-07 | Tightened overflow and blended-answer score bands, added decisive-vs-blended service regressions, and verified telemetry-disabled semantics so ranking and history stay functional without analytics emission. | Developer |
|
||||
|
||||
## Decisions & Risks
|
||||
- Decision: ranking/explanation behavior must be driven by corpus evidence and page context, not by a user-selected mode.
|
||||
- Decision: telemetry is optional infrastructure, not part of the search correctness path.
|
||||
- Decision: overflow only appears when outside-scope evidence outranks the scoped winner or remains inside a narrow score band; blended summaries are reserved for genuinely close top clusters.
|
||||
- Risk: over-weighting current scope could hide clearly better out-of-scope answers.
|
||||
- Mitigation: keep additive coverage metadata and explicit overflow criteria in tests.
|
||||
- Reference: `docs/modules/ui/search-zero-learning-primary-entry.md`
|
||||
- Reference: `docs/modules/advisory-ai/knowledge-search.md`
|
||||
- Reference: `docs/modules/advisory-ai/unified-search-architecture.md`
|
||||
|
||||
## Next Checkpoints
|
||||
- 2026-03-09: land stronger current-scope thresholds and answer-blending tests.
|
||||
- 2026-03-10: land telemetry-off verification and doc updates.
|
||||
@@ -0,0 +1,72 @@
|
||||
# Sprint 20260307-029 - FE Live Consolidated Search Journeys
|
||||
|
||||
## Topic & Scope
|
||||
- Prove the consolidated search experience end to end with both deterministic mocks and live ingested corpora.
|
||||
- Cover the operator journeys that matter after the redesign: empty-state suggestions, did-you-mean, grounded answer, overflow fallback, search history hygiene, and assistant deep-dive.
|
||||
- Working directory: `src/Web/StellaOps.Web/tests/e2e/`.
|
||||
- Expected evidence: Playwright suites, exact setup commands, execution logs, and scoped commits.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Depends on `SPRINT_20260307_026_FE_global_assistant_drawer_unification.md`.
|
||||
- Depends on `SPRINT_20260307_027_FE_zero_learning_search_surface_collapse.md`.
|
||||
- Depends on `SPRINT_20260307_028_AdvisoryAI_consolidated_ranking_blending_and_optional_telemetry.md`.
|
||||
- Safe parallelism: live suites may run in parallel only when they use isolated services or a read-only shared corpus.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `docs/modules/ui/search-zero-learning-primary-entry.md`
|
||||
- `docs/modules/advisory-ai/knowledge-search.md`
|
||||
- `src/AdvisoryAI/__Tests/INFRASTRUCTURE.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### QA-SC-001 - Expand deterministic Playwright coverage
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Test Automation
|
||||
Task description:
|
||||
- Extend mock-backed Playwright coverage to the redesigned search/assistant flows so UI regressions are caught quickly.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Deterministic E2E covers top-bar assistant open, did-you-mean placement, history hygiene, overflow rendering, and no-dead-end suggestions.
|
||||
- [x] No route-jump to `/security/triage` remains in the search-first flows.
|
||||
|
||||
### QA-SC-002 - Expand live ingested search coverage
|
||||
Status: DONE
|
||||
Dependency: QA-SC-001
|
||||
Owners: Test Automation
|
||||
Task description:
|
||||
- Keep live Doctor coverage and expand to additional supported domains when ingestion parity exists.
|
||||
- Fail fast on empty corpus/setup errors before UI assertions begin.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Live E2E keeps corpus readiness preflight.
|
||||
- [x] Every surfaced live suggestion on covered pages resolves to a non-dead-end state.
|
||||
- [x] Execution log records exact live commands and pass counts.
|
||||
|
||||
### QA-SC-003 - Verify telemetry-off behavior
|
||||
Status: DONE
|
||||
Dependency: QA-SC-002
|
||||
Owners: Test Automation
|
||||
Task description:
|
||||
- Add test coverage for telemetry-disabled search usage so optional analytics does not regress the operator flow.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Search remains usable when telemetry endpoints/config are disabled.
|
||||
- [x] The assistant handoff still works with telemetry disabled.
|
||||
- [x] The sprint log records the telemetry-off evidence path.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-07 | Sprint created to prove the consolidated search experience from all relevant angles after the redesign phases land. | Project Manager |
|
||||
| 2026-03-08 | Completed the consolidated route matrix. Deterministic coverage now asserts top-bar assistant open, did-you-mean placement, history hygiene, overflow framing, and no-dead-end suggestions. Live coverage rebuilds and preflights the corpus, then executes surfaced suggestions on Doctor, Security triage, Policy governance, and Advisories/VEX when the route is ready. Telemetry-off behavior remains covered in `unified-search-experience-quality.e2e.spec.ts`. Evidence: `24 passed`, `3 skipped` in the consolidated Playwright pack after live rebuilds; the skips are the explicit suppression branches skipped because those routes are now ready. | Test Automation |
|
||||
|
||||
## Decisions & Risks
|
||||
- Decision: live E2E remains mandatory because mocked suggestions cannot prove corpus viability.
|
||||
- Risk: findings/policy/VEX live coverage may lag until ingestion parity exists for those domains.
|
||||
- Mitigation: keep deterministic E2E broad, keep Doctor live coverage strict, and expand live domains only when ingestion parity is confirmed.
|
||||
- Reference: `docs/modules/ui/search-zero-learning-primary-entry.md`
|
||||
|
||||
## Next Checkpoints
|
||||
- 2026-03-10: rerun the live Doctor matrix on the consolidated UX.
|
||||
- 2026-03-11: add the next supported live domain after ingestion parity verification.
|
||||
Reference in New Issue
Block a user