--- title: "Sprint 26 — Client Briefing" description: "AI-Enhanced Dialogue toggle, hardware detection UX" type: sprint status: archived sprint: 26 team: "client" --- # Sprint 26: Clean House — Client Tasks **Goal:** Ship the voice pipeline to production by integrating observer, removing v0.1 dead weight, and stabilizing the codebase. **Branch:** `client` **Agents:** Stig (dev), Tyre (arch), Hoshe (QA) ## New Tickets | # | Title | Blocked by | |---|-------|------------| | #646 | UX: AI-Enhanced Dialogue toggle + hardware detection | #627 (server: SQLite settings storage) | Use `tooling/db/ticket show ` for full details. ## Key Decisions - `decisions/content.md` — D-138 (LLM re-voicing pipeline: pre-voicing modes, base-text fallback model, hardware detection requirement) - `decisions/architecture.md` — D-088 (3-state pause system, server-authoritative) ## Notes - **#646 AI-Enhanced Dialogue toggle + hardware detection:** The voice pipeline (server-side, `server/src/voice/`) is wiring up this sprint via #652. The client needs layered hardware detection and player-facing controls so the feature degrades gracefully. Three detection layers in sequence: (1) CPU/RAM check — can the model even load? (2) time-per-token benchmark on first load — is it fast enough to be useful? (3) player-facing toggle — opt out even on capable hardware. The toggle state must persist via #627 (SQLite settings storage, server team, same sprint). **Block on #627 landing before implementing the toggle** — the client sends a `ChangeSettings` command over IPC and the server persists it in SQLite. The UI for this is in the options/settings panel. Coordinate with server team: the client toggle must communicate to the server process whether voicing is requested (the server queue drains but does not requeue when disabled). Key integration point: `client/scripts/` settings panel and the existing `SR_LIVE` / subprocess launch flow. Check `docs/workshops/llm-voice-pipeline/` for hardware thresholds decided in the workshop. ## Dependency Chain ``` #627 (server: SQLite settings) → #646 (UX toggle + hardware detection) ``` ## PR Workflow When ready to submit, create a PR with `tea` CLI. **All flags are required** to avoid TTY prompts (see CLAUDE.md "Gitea access" section): ```bash tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "feat(ui): description" --description "body" --base main --head client ```