# HAC-28 Connection Context Lifecycle Date: 2026-03-31 Owner: Senior Frontend Engineer Issue: HAC-28 ## Goal Harden connection-context and session-state clarity without changing backend contracts or pulling next-phase scope into `desktop-v1`. ## Scope - keep connection status copy consistent between the header, connection cards, and the active-session summary - make ready, checking, demo, and retry-needed states visibly distinct in the utility rail - prevent a finished live connection test from yanking the current active DB after the operator has already switched to another connection - keep retry guidance explicit when a live test fails - add focused frontend tests around the connection-session helper ## Non-Goals - no Add Key expansion - no delete execution - no non-string editing - no visual refresh - no backend contract changes ## Delivery Shape 1. Add a shared connection-session helper for: - connection test state transitions - consistent status and connection-card copy - visible active-session summary copy 2. Update `apps/desktop/src/App.tsx` so: - the utility rail shows a clear active connection session card - the test button distinguishes active-scope testing from another in-flight connection test - live test completion only reapplies DB scope when the same connection is still active 3. Revalidate frontend tests and production build. ## Acceptance - connection session state is visible as ready, testing, demo fallback, or retry needed - connection-card detail and header status use the same wording model - switching to another connection during a live test does not silently replace the current active DB when the earlier test returns - failed live tests leave a clear retry path in visible UI copy - `pnpm --filter @redis-gui/desktop test` passes - `pnpm run desktop:build` passes