feat(desktop): clarify key browser search states
Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
47
plans/2026-03-31-hac-29-browse-search-baseline.md
Normal file
47
plans/2026-03-31-hac-29-browse-search-baseline.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# HAC-29 Browse And Search Baseline Stabilization
|
||||
|
||||
Date: 2026-03-31 UTC
|
||||
Owner: Senior Frontend Engineer
|
||||
Issue: HAC-29
|
||||
Scope: `desktop-v1` browse/search hardening only
|
||||
|
||||
## Context
|
||||
|
||||
- `apps/desktop` already supports live browse pagination and DB-scoped search, but the visible search surface still leaves a few operator-facing gaps:
|
||||
- no explicit feedback about whether input is treated as substring matching or raw Redis pattern matching
|
||||
- no bounded clear action from the browser header
|
||||
- one generic empty-state sentence was doing too much work across loading, empty DB, and filtered no-match cases
|
||||
- Current phase must stay inside browse/search hardening and must not expand into Add Key, delete execution, non-string editing, or visual refresh work.
|
||||
|
||||
## Decision
|
||||
|
||||
- Keep the existing workspace layout and backend contracts unchanged.
|
||||
- Extract search-state interpretation into a shared frontend helper so visible UI copy and backend browse requests use the same source of truth.
|
||||
- Improve only the key-browser and inspector feedback layer:
|
||||
- explicit search mode label (`all keys`, `contains`, `pattern`)
|
||||
- concise result-status message under the search input
|
||||
- clear action for returning to normal browse state
|
||||
- distinct empty-state copy for loading, empty DB, and no-match search results
|
||||
|
||||
## Implemented Slice
|
||||
|
||||
1. Added `apps/desktop/src/lib/key-browser-search.ts` plus focused tests for:
|
||||
- blank input vs contains search vs raw wildcard-pattern classification
|
||||
- backend request-pattern generation
|
||||
- browser status and empty-state copy
|
||||
- inspector empty-state copy aligned to the same search state
|
||||
2. Updated `apps/desktop/src/App.tsx` to:
|
||||
- consume the shared search helper for live browse requests
|
||||
- render a visible search-mode badge and status line under the browser search field
|
||||
- expose a bounded clear action when search input is active
|
||||
- keep browser and inspector empty-state feedback aligned
|
||||
3. Updated `docs/frontend-workspace-baseline.md` so the shared acceptance language now includes the search-mode feedback, clear action, and differentiated empty states.
|
||||
|
||||
## Verification
|
||||
|
||||
- `pnpm --filter @redis-gui/desktop test` -> pass (9 files / 33 tests)
|
||||
- `pnpm run desktop:build` -> pass
|
||||
|
||||
## Remaining Risk
|
||||
|
||||
- This environment still cannot launch a visible Tauri window, so final GUI-level browse/search smoke evidence remains a QA follow-up even though the frontend code and build path are green.
|
||||
Reference in New Issue
Block a user