# HAC-15 Desktop Build, Packaging, And Smoke Plan Date: 2026-03-27 UTC Owner: Senior Backend Engineer Issue: HAC-15 ## Goal Make the desktop repository usable through one stable build path, one stable package path, and one repeatable local Redis smoke path. ## Current Findings - The original `tauri.conf.json` pre-build and pre-dev commands assumed the wrong working directory and caused `tauri build` to fail before the real Rust/Tauri flow began. - The repo already had a valid desktop frontend build and a validated shared Rust backend core, but no stable `pnpm` workspace setup for the desktop shell. - QA had explicit blockers around missing seed data, missing Docker or smoke automation, and missing reusable build instructions. ## Changes In This Pass 1. Standardize the workspace on `pnpm` by adding `packageManager`, `pnpm-workspace.yaml`, and root desktop scripts. 2. Fix Tauri `beforeDevCommand` and `beforeBuildCommand` so they execute against the desktop workspace directly. 3. Add a Docker-backed Redis fixture with start, seed, and stop scripts. 4. Add a local desktop smoke runbook and refresh README and QA evidence docs around the new commands and fixture path. ## Verification - Passed: `cargo test -p redis-core` - Passed: `pnpm install --lockfile-only` - Passed: `pnpm run desktop:build` - Passed: `./scripts/redis-fixture/start.sh` - Passed: `./scripts/redis-fixture/seed.sh` - Passed: `./scripts/redis-fixture/stop.sh` - Passed: `pkg-config --modversion gtk+-3.0` - Passed: `pkg-config --modversion webkit2gtk-4.1` - Passed: `pkg-config --modversion libsoup-3.0` - Passed: `pnpm run desktop:tauri:build` - Evidence: Linux package artifacts were emitted under `target/release/bundle/`, including `.deb` and `.rpm` ## Remaining Risk - `HAC-15` exit criteria are satisfied for the documented stable Linux path, but macOS and Windows packaging remain outside this issue's validated evidence set. - The separate `pnpm run desktop:tauri:build:all` path still has AppImage-stage risk and should not replace the stable QA packaging command. - End-to-end GUI smoke evidence still depends on a human-run desktop session with screenshots or QA snapshot capture.