Repair search result routing and advisory query ranking
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
# Sprint 20260312_001 - Platform Search Result Action And Canonical Route Repair
|
||||
|
||||
## Topic & Scope
|
||||
- Expand live search verification beyond starter-chip execution into direct typed-query result actions, because user-reported `cve` searches still exposed broken or misleading result behavior.
|
||||
- Repair the search slice as one product surface: query-entry loading state, advisory-vs-API ranking, API-card action semantics, and canonical docs navigation.
|
||||
- Rebuild the touched backend and web surfaces, rerun the live Playwright sweep on the real frontdoor, and only then close the iteration with a local commit.
|
||||
- Working directory: `.`.
|
||||
- Expected evidence: focused AdvisoryAI/Web tests, live Playwright result-action sweep output, rebuilt live stack proof, and updated search docs.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Depends on the clean scratch iteration baseline in `docs/implplan/SPRINT_20260311_014_Platform_scratch_iteration_003_full_route_action_audit.md`.
|
||||
- Safe parallelism: scoped to AdvisoryAI unified-search, web global-search, live Playwright scripts, and documentation updates for search behavior.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `AGENTS.md`
|
||||
- `docs/qa/feature-checks/FLOW.md`
|
||||
- `docs/modules/ui/search-zero-learning-primary-entry.md`
|
||||
- `docs/modules/advisory-ai/knowledge-search.md`
|
||||
- `src/AdvisoryAI/__Tests/INFRASTRUCTURE.md`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### PLATFORM-SEARCH-001 - Capture the real live failures on direct search result actions
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: QA
|
||||
Task description:
|
||||
- Run direct typed-query Playwright verification against the live authenticated frontdoor instead of relying only on suggestion-chip coverage.
|
||||
- The sweep must exercise generic advisory intent and explicit API intent, record which cards appear first, and verify that result actions lead to the expected product surfaces.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Live typed-query result evidence is captured.
|
||||
- [x] The sweep distinguishes product defects from harness false positives.
|
||||
- [x] The failing behaviors are enumerated before fixes begin.
|
||||
|
||||
### PLATFORM-SEARCH-002 - Root-cause and implement the clean search-slice repair
|
||||
Status: DONE
|
||||
Dependency: PLATFORM-SEARCH-001
|
||||
Owners: 3rd line support, Product Manager, Architect, Developer
|
||||
Task description:
|
||||
- Repair the live search slice without quick fixes. The chosen solution must preserve search-first operator behavior and avoid dead-end or recovery-only routes.
|
||||
- Expected repair areas include query-entry state, ranking semantics, card-action contracts, and canonical route normalization where the live shell still leaks encoded or placeholder routes.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Generic advisory queries prefer findings/VEX over API-operation cards unless the query explicitly asks for API details.
|
||||
- [x] API cards use truthful copy-first actions instead of dead-end navigation.
|
||||
- [x] Global-search action routing canonicalizes docs targets instead of navigating through double-encoded recovery paths.
|
||||
- [x] Focused frontend/backend tests cover the repaired behavior.
|
||||
|
||||
### PLATFORM-SEARCH-003 - Rebuild, redeploy, and reverify the live search slice
|
||||
Status: DOING
|
||||
Dependency: PLATFORM-SEARCH-002
|
||||
Owners: QA, Developer
|
||||
Task description:
|
||||
- Rebuild the touched AdvisoryAI and web surfaces, redeploy them to the live compose stack, and rerun the live search result-action sweep plus the aggregate route/action audit.
|
||||
|
||||
Completion criteria:
|
||||
- [x] AdvisoryAI targeted verification passes with project-compliant targeting.
|
||||
- [x] Web targeted verification passes.
|
||||
- [x] Live Playwright search result-action evidence is clean after redeploy.
|
||||
- [ ] The iteration is committed locally with docs updated.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-12 | Sprint created after user-reported direct search failures showed the existing starter-chip matrix was not enough. | QA |
|
||||
| 2026-03-12 | Added a live direct search result-action sweep and captured the real before-state: generic `cve` searches on the live stack still needed grouped verification for ranking, action handoffs, and docs-route canonicalization. The first sweep also exposed harness false positives around route-local result expectations and docs-shell async hydration. | QA / 3rd line support |
|
||||
| 2026-03-12 | Root-caused the user-visible search defects to a product split: query-entry loading was not set until after debounce, generic advisory keywords could still underweight findings/VEX when no full CVE token was detected, API operation cards still depended on misleading result semantics, and docs result actions were allowed to navigate to double-encoded recovery URLs. | 3rd line support / Architect |
|
||||
| 2026-03-12 | Began the clean repair: global-search now enters loading immediately on non-empty queries, direct search QA now distinguishes route-local expectations from global expectations, and docs-action normalization plus search-result routing coverage were added so canonical routes can be verified before commit. | Developer |
|
||||
| 2026-03-12 | Reverified the focused repair layers before deploy: `GlobalSearchComponent` + `search-route-matrix` specs passed `4/4`, and xUnit v3 class-targeted AdvisoryAI runs passed `28/28` (`QueryUnderstandingTests`), `10/10` (`WeightedRrfFusionTests`), and `45/45` (`UnifiedSearchServiceTests`). | QA / Developer |
|
||||
| 2026-03-12 | Rebuilt `stellaops/advisory-ai-web:dev` and `stellaops/advisory-ai-worker:dev`, rebuilt the web bundle, redeployed both AdvisoryAI services, synced the new browser dist into `compose_console-dist`, and restarted `stellaops-router-gateway`. AdvisoryAI startup rebuild converged cleanly with `documents=470`, `chunks=9051`, `api_operations=2190`, `doctor_projections=8`. | Developer / 3rd line support |
|
||||
| 2026-03-12 | Live direct search result-action verification is now clean on the rebuilt stack: `failedCheckCount=0`, `runtimeIssueCount=0` in `src/Web/StellaOps.Web/output/playwright/live-search-result-action-sweep.json`, with generic `cve` queries grounding into Findings/VEX plus canonical docs navigation and explicit API-intent queries surfacing copy-first API cards. | QA |
|
||||
| 2026-03-12 | Started the aggregate live audit rerun with the new search-result suite included. The 111-route canonical sweep has already completed cleanly (`passedRoutes=111`, `failedRoutes=[]`) and downstream action-suite reruns are still in progress. | QA |
|
||||
|
||||
## Decisions & Risks
|
||||
- Decision: direct typed-query result actions are now part of the search release gate. Starter-chip execution alone is insufficient because it misses ranking/order and result-card action defects.
|
||||
- Decision: generic advisory/security-id intent must favor operator evidence over raw API references. API cards remain discoverable for explicit API-intent queries instead of polluting default advisory searches.
|
||||
- Decision: canonical route normalization is a product requirement. A docs page that recovers from `/docs/docs%2F...` is still considered broken behavior until search emits or normalizes the correct route.
|
||||
- Risk: several search-related source changes were already present locally and partially live from prior rebuilds without a commit. This sprint audits and formalizes that work instead of treating the dirty tree as trustworthy by default.
|
||||
|
||||
## Next Checkpoints
|
||||
- Finish the route-normalization and search-sweep repair.
|
||||
- Rebuild `advisory-ai-web` and the web bundle on the live stack.
|
||||
- Rerun the direct search result-action sweep and fold it into the full live audit.
|
||||
Reference in New Issue
Block a user