Files
redis-gui-foundation/docs/qa/local-desktop-smoke.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

3.5 KiB

Local Desktop Build And Smoke Runbook

Date: 2026-03-27 Owner: Senior Backend Engineer

Goal

Provide one repeatable local build and smoke path that any engineer or QA can run against a seeded Redis fixture.

Prerequisites

  • Rust 1.85+
  • Node.js 24+
  • pnpm 10+
  • Docker CLI with permission to run containers
  • Linux desktop build prerequisites for Tauri, including WebKitGTK and GTK3 development packages

Standard Commands

pnpm install
cargo test -p redis-core
pnpm run desktop:build
pnpm run desktop:tauri:build

Expected package output path on Linux after a successful Tauri build:

target/release/bundle/

Linux preflight checks for native desktop libraries:

pkg-config --modversion gtk+-3.0
pkg-config --modversion webkit2gtk-4.1
pkg-config --modversion libsoup-3.0

All three commands should return a version. If any of them fail, pnpm run desktop:tauri:build is still environment-blocked even if the repository scripts are correct.

Local Redis Fixture

Start and seed a deterministic Redis instance on 127.0.0.1:6380:

./scripts/redis-fixture/start.sh
./scripts/redis-fixture/seed.sh

Stop and remove the fixture:

./scripts/redis-fixture/stop.sh

Seeded keys:

  • smoke:string
  • smoke:string:ttl
  • smoke:hash
  • smoke:list
  • smoke:set
  • smoke:zset
  • smoke:stream

Linux Smoke Steps

  1. Run ./scripts/redis-fixture/start.sh.
  2. Run ./scripts/redis-fixture/seed.sh.
  3. Launch pnpm run desktop:tauri:dev.
  4. In the desktop app, either use the utility-rail Local smoke assist shortcut or connect manually to host 127.0.0.1, port 6380, database 0, no password, TLS disabled.
  5. Verify the desktop window opens, app version plus runtime mode are visible in the header, and the connection test succeeds.
  6. Use the same Local smoke assist panel to prefill smoke:*, PING, or GET smoke:string if desired, then verify the command console can run a safe read.
  7. Verify the seeded keys listed in both the utility rail and this runbook appear with expected types and TTL state in the browser and inspector surfaces, and confirm the inspector summary plus key facts stay aligned to the selected key type and current runtime.
  8. Change TTL on smoke:string:ttl, remove TTL from the same key, and confirm the updated TTL state is reflected in the inspector.
  9. Optional next-phase check only: use Add key to create a new string key such as smoke:new-string, verify it appears immediately in the browser and inspector, then retry the same name to confirm duplicate-key failure stays on the shared notice surface. Do not mix this evidence into current-baseline sign-off unless PM explicitly reclassifies Add Key into the active phase.
  10. Capture screenshots or terminal output for build, launch, connection success, key browse, TTL update, and command execution. If screenshots are unavailable, copy the in-app QA snapshot text into the smoke log.
  11. Run ./scripts/redis-fixture/stop.sh after the session.

Current Validation Boundary

  • cargo test -p redis-core passes in the current workspace.
  • pnpm run desktop:build passes in the current workspace.
  • ./scripts/redis-fixture/start.sh, ./scripts/redis-fixture/seed.sh, and ./scripts/redis-fixture/stop.sh pass in the current workspace.
  • pnpm run desktop:tauri:build now produces Linux .deb and .rpm artifacts under target/release/bundle/.
  • pnpm run desktop:tauri:build:all still fails in its AppImage stage because linuxdeploy aborts, so AppImage should be treated as not yet verified.