Files
redis-gui-foundation/plans/2026-03-31-hac-24-add-key-frontend.md
Senior Frontend Engineer b6cbe5a47e docs(project): refresh baseline verification artifacts
Check in the PM product requirements, refreshed QA acceptance evidence, shared execution split plans, and current-phase status notes so the repo matches the current delivery baseline.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-31 10:15:39 +00:00

57 lines
2.4 KiB
Markdown

# HAC-24 Add Key Frontend
Date: 2026-03-31 UTC
Owner: Senior Frontend Engineer
Issue: `HAC-24`
Phase: `desktop-v1.1` candidate
## Context
- `HAC-24` covers the frontend slice for Add Key only.
- The checked-out repo now exposes the Add Key backend and Tauri bridge contract:
- function: `create_value`
- request fields: `connection`, `key`, `value`, `ttl_millis`
- duplicate-key error code: `already_exists`
- result payload: `record`
- The frontend must not expand beyond string-only creation or add destructive follow-up actions.
## UI Decisions
- Add a visible `Add key` entry in the key-browser header rather than burying the flow in the utility rail or inspector.
- Keep the create surface in a dialog so active connection and DB remain visible while the form stays bounded.
- Scope the form to:
- key name
- string value
- optional TTL in milliseconds
- On success, focus the browser on the created key name so the new record is immediately visible and inspectable without reconnecting.
- Preserve typed form state on failure, including validation failure, duplicate-name failure, or an unexpected bridge regression.
## Implemented Frontend Slice
1. Added `apps/desktop/src/lib/add-key-draft.ts` plus focused tests for:
- key-name validation
- optional TTL parsing
- duplicate-name detection for demo mode
- demo key-record creation
2. Extended the shared notice layer with:
- `already_exists`
- `key_create`
so create-path validation and duplicate failures stay on the same operator-notice surface as the rest of the shell.
3. Added an `Add key` dialog to `apps/desktop/src/App.tsx` that:
- keeps connection and DB context visible
- exposes string-only copy and optional TTL input
- supports browser-demo creation with immediate browser/inspector refresh
- targets the live command `create_redis_value`
- preserves form state if a bridge error prevents create completion
## Verification
- `pnpm --filter @redis-gui/desktop test` -> pass (8 files / 29 tests)
- `pnpm run desktop:build` -> pass
- `cargo test -p redis-core` -> pass (20 tests, including Add Key create and duplicate-path coverage)
- `pnpm run desktop:tauri:build` -> pass (`.deb` and `.rpm` bundles emitted)
## Remaining Risk
- This environment still cannot launch a visible Tauri window, so final GUI-level Add Key smoke evidence remains a QA follow-up rather than a blocker on the implemented frontend slice.