Files
Lumotia/docs/release/tester-acceptance-runbook.md
Jake 3770815fbf
Some checks failed
check / cargo check (macos-latest) (push) Has been cancelled
check / cargo check (ubuntu-22.04) (push) Has been cancelled
check / cargo check (windows-latest) (push) Has been cancelled
check / svelte build + lint (push) Has been cancelled
agent: lumotia — v0.1 release-completion run
Closes the code-side v0.1 ship gate. All quality gates green:
cargo fmt/clippy/test (~327 tests), npm check (0/0), vitest 13/13,
scripts/dogfood-rebrand-drill.sh 8/8.

Phase F — first-run onboarding promoted to v0.1
- FirstRunPage with skip-to-main + failure recovery + event recording
- Six onboarding commands (record/list/has-completed + lumotia_events)
- Storage migration v17 (onboarding_events + lumotia_events tables)

UI hardening (in-scope items from v0.1-ui-hardening.md)
- StatusPill + PostCaptureCard components, 21st preview entry
- Sidebar recording-as-sacred-state (opacity + aria-disabled, reduced-motion)
- Settings 6-section regroup + Help section + Activation log + Privacy toggle
- Error-state copy sweep (DictationPage + SettingsPage, plain-language)
- Global :focus-visible rule, textarea outlines restored
- Ctrl+K / Ctrl+, / Escape bindings in +layout

LLM resilience
- rule_based_extract_tasks (regex-free imperative-verb extractor) +
  extract_tasks_with_fallback wrapper — task extraction never returns zero
- tokio::time::timeout(120s) wraps cleanup/tags/tasks commands

Release artefacts
- LICENSE (canonical AGPL-3.0), CHANGELOG (Keep-a-Changelog format)
- v0.1-release-notes, privacy-and-ai-use, install-warnings,
  tester-onboarding-kit, tester-acceptance-runbook, code-signing-setup,
  apple-silicon-rb08-runbook, virtual-audio-setup, v0.1-contrast-audit
- Workspace versioning + AGPL spdx; npm exact-pin (10 ranges removed)
- AppImage SHA-256 sidecar in build.yml
- README v0.1 section + Reporting-issues; canonical repo slug

Closure pass — items moved from human-required to code-complete
- KI-02 Linux idle inhibit: zbus 5 → org.freedesktop.login1.Manager.Inhibit
- KI-03 Windows sleep prevention: SetThreadExecutionState(ES_CONTINUOUS|...)
- acquire/release_idle_inhibit Tauri commands, wired in DictationPage
- Diagnostic-bundle frontend wire-up (Settings → Help button)
- WCAG-AA contrast fix via .btn-filled-text utility (no token changes)
- 8 destructive-action sites wrapped in plain-language confirm() guards
- KNOWN-ISSUES.md + v0.1-known-limitations.md updated (KI-02/03 fixed)

Scripts
- pre-tag-verify.sh, tag-day.sh, smoke-linux + driver
- parse-diagnostic-bundle.sh, parse-activation-log.py

Per-item audit trail: docs/release/v0.1-completion-status.md
Remaining: W-01…W-08 (signing certs, hardware probes, smoke matrix,
tester recruitment) — see docs/release/v0.1-known-limitations.md.
2026-05-15 06:59:08 +01:00

40 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: tester-acceptance-runbook
type: release
tags: [release, v0.1, tester-acceptance, runbook, 10-step, warm-activation, cold-setup]
description: "Per-step runbook for the Lumotia v0.1 10-step tester acceptance flow. Documents expected outcomes, failure modes, and time budgets. Audience: developer walking through the flow personally on Linux, or an external tester on any supported platform."
---
# Tester acceptance runbook
Expands the 10-step list from `docs/release/v0.1-checklist.md` into a check-off format with expected outcomes. Use this when walking through the flow personally on Linux, or to hand to an external tester.
**Cold setup pass (steps 14):** no hard time bound — model download is the dominant variable.
**Warm activation pass (steps 510):** target is 3 minutes once the model is ready.
---
| # | What to do | Expected outcome | Failure modes | Time |
|---|---|---|---|---|
| 1 | Download the artefact for your platform and install it. Linux: make AppImage executable, run it. macOS: open `.dmg`, drag to Applications, "Open Anyway" if Gatekeeper prompts. Windows: run `.msi`, click through SmartScreen. | App launches. No unusual escalation beyond the OS install prompt. | Gatekeeper/SmartScreen block with no bypass option. Installer fails. Linux AppImage reports missing FUSE. See `install-warnings.md`. | 25 min |
| 2 | Launch Lumotia. | First-run onboarding screen appears; main UI not yet visible. | App skips onboarding and opens main UI. Blank window. Crash. | < 30 s |
| 3 | Grant microphone access via the onboarding prompt. | Onboarding advances. No error about microphone access. | OS dialog does not appear. Granted but onboarding stalls. App reports denied after approval. | < 1 min |
| 4 | Accept the suggested default model or choose another. Wait for download if needed. | Model selected. Download progress shown, completes cleanly. Onboarding advances to test-recording step. | Download stalls or errors. No default highlighted. Model picker missing. | 110 min |
| 5 | Press Record. Speak for 1030 seconds. Press Stop. | Recording starts immediately. Audio-level indicator is visible. Stops on command. | Record button unresponsive. No audio-level indicator. App hangs after stop. | < 2 min (start of warm-activation window) |
| 6 | Observe the transcript pane after stop. | Raw Whisper transcript appears, matches what was spoken. | Pane empty. Spinner runs indefinitely. Error in place of text. | 530 s |
| 7 | Observe the cleaned transcript tab alongside the raw one. | Cleaned version appears. Raw transcript still accessible. Cleanup failure shows a plain-language message; raw text preserved. | Cleaned tab blank. Raw transcript disappears. Stack trace shown. | 560 s |
| 8 | Press "Extract tasks" in the post-capture card. If transcript had no task-like content, try again with "I need to email Alex by Friday". | At least one extracted task appears in readable text. | No tasks extracted despite task content. Spinner runs indefinitely. App navigates away before result visible. | 530 s |
| 9 | Select an extracted task. Open MicroSteps. Add one step. Start the 5-minute timer. Navigate away and back. | Timer counts down visibly. State survives navigation. | MicroSteps panel does not open. Timer resets immediately. State lost on navigation. | < 2 min |
| 10 | Go to History. Search for a word from the transcript. | Recording appears in results. Clicking it opens the full transcript. | Search returns nothing for a word that is in the transcript. History page empty. Crash on navigation. | < 1 min |
---
## Summary
- [ ] Cold-setup pass (steps 14) — completed without coaching: yes / no
- [ ] Warm-activation pass (steps 510) — completed in 3 minutes or less: yes / no
- [ ] Tester confidence — would they use this again next week: yes / no / unsure
Cold-setup: confusion counts as a failure, not just crashes. Warm-activation: model-inference latency is not a UX failure; unclear buttons are.