# Test Notes — Gnomad Desktop Assistant

**Run date:** 2026-05-31  
**Version:** 0.2.0-beta.1  
**Environment:** macOS (darwin), project path with spaces

## Automated runs

| Command | Result | Notes |
|---------|--------|-------|
| `npm run build` | **PASS** | `tsc` + Vite 7 |
| `npm run test` | **PASS (16)** | Vitest — errors, models, agent loop |
| `cargo test` (src-tauri) | **PASS (18)** | error, env_config, hitl_token, path_token, privilege, shell_session, shell_sandbox |
| `cargo build` (src-tauri) | **PASS** | Debug profile; default features (no `embedded-llm`) |
| `npm run docs:export` | **PASS** | 35+ documents → HTML + TXT |
| CI (`build.yml`) | **Expected PASS** | macOS, Linux x86_64, Linux ARM64, Windows on push to main |

### Embedded LLM (optional)

```bash
npm run tauri:dev:embedded
# or: cd src-tauri && cargo test --features embedded-llm
```

Not run in default CI to keep matrix fast.

## Vitest coverage (frontend)

| File | What it tests |
|------|----------------|
| `errors.test.ts` | `parseInvokeError`, formatting helpers |
| `models.test.ts` | `normalizeCloudModel`, cloud API presets |
| `agentLoop.test.ts` | Mocked cloud turn → `shell_run` → completion; HITL deny path |

## Not run in this session (GUI / OS)

These require an interactive session and are **manual**:

| Test | How |
|------|-----|
| App launch | `npm run tauri dev` |
| Overlay toggle | ⌘⇧Space / Ctrl+Shift+Space |
| Voice dictation | Settings → Privacy → enable mic; composer mic button |
| Tray menu | Show Gnomad / Settings / Quit |
| Wayland tray (Linux) | Left-click tray icon → menu |
| Sudo Gate + HITL token | Approve risky cmd → signed token path |
| Path Gate + path token | fs_read outside workspace → Allow once |
| xterm replay | Expand command card → Terminal view |
| Updates | Settings → Updates → Check for updates |
| YOLO sandbox | YOLO + experimental sandbox; verify blocked network reads |
| Linux ARM64 install | Install CI `.deb` on ARM board |
| Skip link | Windowed mode → Tab to skip link |

## Manual checklist (copy for QA)

```
[ ] tauri dev starts without panic
[ ] Overlay hidden on launch; shortcut shows it
[ ] Cloud agent: tool loop runs shell + fs tools
[ ] Sudo Gate: unsigned bypass rejected; approve mints token
[ ] Path Gate: unsigned bypass rejected; approve mints token
[ ] Standard mode: workspace fs works; outside path gated
[ ] Settings → Updates: check returns message (even if no new release)
[ ] Voice input: mic button appends transcript when enabled
[ ] npm run test && cargo test pass locally
```

---

Built with ❤️ by [Gnomad Studio](https://gnomadstudio.org) 🦙
