fix(web): ship degraded search readiness state

This commit is contained in:
master
2026-03-08 16:27:51 +02:00
parent 9f6fd0b4aa
commit f24d49ddeb
6 changed files with 145 additions and 2 deletions

View File

@@ -0,0 +1,99 @@
# Sprint 20260308-012 - FE Search Readiness Degraded Answer State
## Topic & Scope
- Formalize the current Web search batch that handles empty-corpus environments where starter-query viability cannot be checked.
- Replace misleading clarify or refine-the-query guidance with an explicit environment-readiness answer state when live search is not actually usable.
- Keep the iteration scoped to the top-bar search surface, its docs, and focused deterministic verification.
- Working directory: `src/Web/StellaOps.Web`.
- Allowed coordination edits: `docs/implplan/`, `docs/modules/ui/TASKS.md`, `docs/modules/ui/implementation_plan.md`, `docs/modules/ui/search-self-serve-contract.md`, `docs/modules/ui/search-zero-learning-primary-entry.md`, `src/Web/StellaOps.Web/src/app/layout/global-search/`, `src/Web/StellaOps.Web/src/tests/global_search/`, and `src/Web.StellaOps.Web/tests/e2e/`.
- Expected evidence: focused Angular tests, deterministic Playwright coverage, docs sync, and sprint execution log updates.
## Dependencies & Concurrency
- Depends on the archived search-shell and self-serve sprints that introduced answer-first search and viability-preflight behavior:
- `docs-archived/implplan/SPRINT_20260307_004_FE_self_serve_search_answer_first.md`
- `docs-archived/implplan/SPRINT_20260307_006_FE_self_serve_rollout_and_gap_closure.md`
- Safe parallelism:
- docs and tests can be prepared in parallel once the answer-state rule is frozen
- do not touch unrelated trust-admin, offline-kit, policy-workspace, or sidebar changes already present in the shared worktree
## Documentation Prerequisites
- `src/Web/StellaOps.Web/AGENTS.md`
- `docs/modules/ui/search-self-serve-contract.md`
- `docs/modules/ui/search-zero-learning-primary-entry.md`
- `src/Web/StellaOps.Web/src/app/layout/global-search/global-search.component.ts`
- `src/Web.StellaOps.Web/src/tests/global_search/global-search.component.spec.ts`
- `src/Web.StellaOps.Web/tests/e2e/unified-search-experience-quality.e2e.spec.ts`
## Delivery Tracker
### FE-SRD-001 - Bound the degraded-search readiness case
Status: DONE
Dependency: none
Owners: QA, Developer (FE)
Task description:
- Confirm the specific operator-facing failure mode: suggestion-viability preflight is unavailable and the search response shows zero indexed matches, yet the UI behaves as if the operator merely needs to refine the query.
- Keep the diagnosis focused on the search shell contract and not on general search ranking or corpus rebuild infrastructure.
Completion criteria:
- [x] The degraded-readiness condition is expressed as explicit frontend state, not scattered UI heuristics.
- [x] The rule is bounded to the combination of unavailable viability preflight plus zero indexed matches.
- [x] The sprint documents why this is an environment-readiness problem, not an operator-query problem.
### FE-SRD-002 - Render an explicit readiness answer state
Status: DONE
Dependency: FE-SRD-001
Owners: Developer (FE)
Task description:
- Update the answer panel so it renders environment-readiness copy and suppresses clarify guidance when the active environment cannot provide viability signals and also returns zero indexed matches.
- Preserve the existing grounded, clarify, and insufficient paths outside this specific degraded-readiness case.
Completion criteria:
- [x] Search renders an explicit readiness answer state with operator-facing copy.
- [x] Clarify guidance is suppressed for the degraded-readiness case.
- [x] Existing answer-state behavior remains intact for healthy grounded and clarify responses.
### FE-SRD-003 - Add focused deterministic regression coverage
Status: DONE
Dependency: FE-SRD-002
Owners: Test Automation, QA
Task description:
- Add focused Angular coverage for the readiness state and deterministic Playwright coverage for the UI path where suggestion viability is unavailable and indexed matches are zero.
- Keep tests bounded and memory-safe.
Completion criteria:
- [x] Angular tests assert the explicit readiness answer and absence of clarify guidance.
- [x] Playwright covers the degraded-readiness case end to end.
- [x] Verification remains deterministic and does not depend on live network access.
### FE-SRD-004 - Sync search docs and rollout guidance
Status: DONE
Dependency: FE-SRD-002
Owners: Documentation author, Project Manager
Task description:
- Update the search self-serve and zero-learning guidance so the degraded-readiness rule is explicit and traceable from the shipped UI behavior.
- Sync the UI task board and implementation plan to reflect the active sprint and the shipped result.
Completion criteria:
- [x] Search docs describe the degraded-readiness answer rule.
- [x] UI planning docs point to this active sprint while it is in flight.
- [x] Sprint execution log captures the verification evidence and any residual risks.
## Execution Log
| Date (UTC) | Update | Owner |
| --- | --- | --- |
| 2026-03-08 | Sprint created to formalize the in-progress Web search batch for degraded readiness handling after the active sprint inventory was cleaned and the remaining dirty search diffs were bounded to a coherent top-bar search fix. | Project Manager |
| 2026-03-08 | Bounded the real defect to a stale viability state on typed queries: the search shell refreshed viability on focus and route changes, but not on the debounced non-empty query path that actually drove search requests. | Developer (FE) |
| 2026-03-08 | Refreshed suggestion viability on the debounced query path, kept the degraded-readiness rule narrowly bound to unavailable viability plus zero indexed matches, and tightened the deterministic Playwright fixture to use a true zero-match response. | Developer (FE) |
| 2026-03-08 | Verified focused Angular coverage with `npm test -- --watch=false --include src/tests/global_search/global-search.component.spec.ts` (`26/26` passed) and deterministic Playwright coverage with `npx playwright test tests/e2e/unified-search-experience-quality.e2e.spec.ts --grep "search-readiness guidance" --workers=1` (`1/1` passed). | QA |
| 2026-03-08 | Synced search docs, added a checked-feature note, and archived the sprint after verification passed. | Documentation author |
## Decisions & Risks
- Decision: treat this as a frontend truthfulness fix, not a general search-platform recovery sprint.
- Decision: the degraded-readiness state is only valid when both conditions hold: viability preflight is unavailable and the search response reports zero indexed matches.
- Risk: broadening the heuristic could suppress legitimate clarify guidance for healthy but ambiguous queries.
- Mitigation: keep the rule narrowly tied to unavailable viability plus zero indexed matches.
- Risk: shared worktree changes in unrelated Web files could tempt a wider cleanup.
- Mitigation: stay inside the explicit sprint working directory and listed coordination files only.
## Next Checkpoints
- Archived 2026-03-08 after focused Angular and deterministic Playwright verification passed.