Archive completed search consolidation sprints
This commit is contained in:
@@ -17,19 +17,19 @@
|
||||
## Delivery Tracker
|
||||
|
||||
### FE-ZL-005 - Render primary and overflow result sections
|
||||
Status: TODO
|
||||
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:
|
||||
- [ ] Primary and overflow result sections are visually distinct.
|
||||
- [ ] Overflow is hidden when not returned.
|
||||
- [ ] No manual scope toggle is reintroduced.
|
||||
- [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: TODO
|
||||
Status: DONE
|
||||
Dependency: FE-ZL-005
|
||||
Owners: Developer (FE)
|
||||
Task description:
|
||||
@@ -37,38 +37,39 @@ Task description:
|
||||
- Hide or downgrade suggestions when the backend signals missing corpus coverage.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Dead suggestions are not rendered as clickable chips.
|
||||
- [ ] Coverage-empty states do not advertise invalid queries.
|
||||
- [ ] Existing page-suggestion behavior is migrated to the new contract.
|
||||
- [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: TODO
|
||||
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:
|
||||
- [ ] Search answers stay concise.
|
||||
- [ ] Chat handoff is available from the top bar and the answer surface.
|
||||
- [ ] Handoff carries current query, page context, and top evidence.
|
||||
- [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: TODO
|
||||
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:
|
||||
- [ ] Tests assert overflow rendering only when the backend returns it.
|
||||
- [ ] Tests assert that every rendered suggestion is executable.
|
||||
- [ ] Tests cover the new chat launcher path.
|
||||
- [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.
|
||||
@@ -20,7 +20,7 @@
|
||||
## Delivery Tracker
|
||||
|
||||
### QA-ZL-001 - Live corpus preflight
|
||||
Status: TODO
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Test Automation
|
||||
Task description:
|
||||
@@ -28,22 +28,22 @@ Task description:
|
||||
- Fail fast when the corpus is empty instead of allowing misleading suggestion passes/failures.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Live tests verify corpus coverage before exercising knowledge suggestions.
|
||||
- [ ] Failure output explains whether the issue is corpus emptiness or UX execution.
|
||||
- [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: TODO
|
||||
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:
|
||||
- [ ] Live and mocked specs cover suggestion execution.
|
||||
- [ ] Surfaced suggestions have 100% visible-result success in the tested matrix.
|
||||
- [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: TODO
|
||||
Status: DONE
|
||||
Dependency: QA-ZL-002
|
||||
Owners: Test Automation
|
||||
Task description:
|
||||
@@ -51,14 +51,15 @@ Task description:
|
||||
- Assert no explicit mode/scope/recovery controls remain in the main search UX.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Route matrix covers the main pages that own contextual search.
|
||||
- [ ] Tests assert the absence of deprecated controls.
|
||||
- [ ] Tests assert `Did you mean` placement, history behavior, and chat launcher behavior.
|
||||
- [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.
|
||||
@@ -20,18 +20,18 @@
|
||||
## Delivery Tracker
|
||||
|
||||
### QA-SC-001 - Expand deterministic Playwright coverage
|
||||
Status: TODO
|
||||
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:
|
||||
- [ ] Deterministic E2E covers top-bar assistant open, did-you-mean placement, history hygiene, overflow rendering, and no-dead-end suggestions.
|
||||
- [ ] No route-jump to `/security/triage` remains in the search-first flows.
|
||||
- [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: TODO
|
||||
Status: DONE
|
||||
Dependency: QA-SC-001
|
||||
Owners: Test Automation
|
||||
Task description:
|
||||
@@ -39,26 +39,27 @@ Task description:
|
||||
- Fail fast on empty corpus/setup errors before UI assertions begin.
|
||||
|
||||
Completion criteria:
|
||||
- [ ] Live E2E keeps corpus readiness preflight.
|
||||
- [ ] Every surfaced live suggestion on covered pages resolves to a non-dead-end state.
|
||||
- [ ] Execution log records exact live commands and pass counts.
|
||||
- [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: TODO
|
||||
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:
|
||||
- [ ] Search remains usable when telemetry endpoints/config are disabled.
|
||||
- [ ] The assistant handoff still works with telemetry disabled.
|
||||
- [ ] The sprint log records the telemetry-off evidence path.
|
||||
- [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.
|
||||
@@ -123,7 +123,8 @@
|
||||
- Implemented from the corrective phases: backend overflow is now narrow enough that clear in-scope winners suppress out-of-scope spillover, blended summaries only appear for genuinely close evidence clusters, and `SearchTelemetryEnabled` cleanly disables analytics/feedback/sink emission without affecting retrieval or history.
|
||||
- Implemented from the operator-correction pass: FE search contracts no longer depend on hidden `Find / Explain / Act` metadata, starter chips wait for backend viability before rendering, `Did you mean` is the first in-panel cue under the search field, and successful recent history now uses a structured `stella-successful-searches-v3` contract that ignores legacy bare-string entries on load.
|
||||
- Implemented from the final correction pass: the primary surface now uses secondary "deeper help/details" assistant language instead of presenting a separate AdvisoryAI product, overflow results read as supporting context, and starter chips that execute to no useful result are suppressed from the current page until context changes.
|
||||
- Still pending from the corrective phases: stricter backend viability states across more domains, broader live-page matrices, and explicit client-side telemetry opt-out.
|
||||
- Implemented from the final live verification pass: the supported live route matrix now covers Doctor, Security triage, Policy governance, and Advisories/VEX with corpus rebuild preflight plus end-to-end suggestion execution on ready routes.
|
||||
- Still pending from the corrective phases: an explicit client-side telemetry opt-out control if product needs a visible switch. Current behavior is already failure-tolerant when analytics endpoints or sinks are unavailable.
|
||||
|
||||
## Execution phases - operator correction pass
|
||||
### Phase 1 - Search-first primary surface cleanup
|
||||
|
||||
@@ -348,7 +348,7 @@ describe('GlobalSearchComponent', () => {
|
||||
{
|
||||
domain: 'vex',
|
||||
route: '/vex-hub/CVE-2024-21626',
|
||||
expected: '/security/advisories-vex?q=CVE-2024-21626',
|
||||
expected: '/ops/policy/vex/search?cveId=CVE-2024-21626',
|
||||
},
|
||||
{
|
||||
domain: 'platform',
|
||||
@@ -361,6 +361,7 @@ describe('GlobalSearchComponent', () => {
|
||||
component.onQueryChange('test');
|
||||
|
||||
for (const testCase of cases) {
|
||||
router.navigateByUrl.calls.reset();
|
||||
const card = createCard(testCase.domain, testCase.route);
|
||||
component.onCardAction(card, card.actions[0]);
|
||||
expect(router.navigateByUrl).toHaveBeenCalledWith(testCase.expected);
|
||||
|
||||
Reference in New Issue
Block a user