|
| 1 | +# TalkToFigma Local Ollama Agent v1 - Manual QA Checklist |
| 2 | + |
| 3 | +## Scope |
| 4 | +- Default model policy: `gemma4:e4b` |
| 5 | +- Guide mode only setup (no auto-install, no auto-pull) |
| 6 | +- Navigation order: `Assistant -> Terminal -> Settings -> Help` |
| 7 | +- Tool safety policy: `read auto`, `write approval required` |
| 8 | + |
| 9 | +## Environment Matrix |
| 10 | +- macOS build |
| 11 | +- Windows build |
| 12 | +- Store-restricted environment (MAS/MSIX equivalent constraints) |
| 13 | + |
| 14 | +## Navigation & Entry |
| 15 | +1. Launch app and verify initial page is `Terminal`. |
| 16 | +2. Open sidebar and verify menu order is: |
| 17 | + - Assistant |
| 18 | + - Terminal |
| 19 | + - Settings |
| 20 | + - Help |
| 21 | +3. Open tray menu and verify same page order appears. |
| 22 | +4. Open app menu View section and verify shortcuts: |
| 23 | + - Assistant: `CmdOrCtrl+1` |
| 24 | + - Terminal: `CmdOrCtrl+2` |
| 25 | + - Settings: `CmdOrCtrl+3` |
| 26 | + - Help: `CmdOrCtrl+4` |
| 27 | + |
| 28 | +## Setup States |
| 29 | +1. Stop Ollama daemon and open Assistant: |
| 30 | + - `Needs Setup` badge appears. |
| 31 | + - Setup guide card appears. |
| 32 | + - Copy command button copies default pull command. |
| 33 | +2. Start daemon with no models installed: |
| 34 | + - `Needs Model Selection` badge appears. |
| 35 | + - Model selection dialog opens automatically. |
| 36 | + - Dialog cannot be closed until a model is selected. |
| 37 | +3. Pull default model `gemma4:e4b` and refresh Assistant: |
| 38 | + - Status changes to `Ready`. |
| 39 | + - Default model text shows `gemma4:e4b`. |
| 40 | + |
| 41 | +## Model Selection Rules |
| 42 | +1. With `gemma4:e4b` missing and other models installed: |
| 43 | + - Sending message is blocked. |
| 44 | + - Model selection dialog is shown. |
| 45 | +2. Select a non-default installed model: |
| 46 | + - Send message works with selected model. |
| 47 | +3. Restart app: |
| 48 | + - Last opened thread restores. |
| 49 | + - Active model for restored thread remains selected. |
| 50 | + |
| 51 | +## Chat & Streaming |
| 52 | +1. Send a long prompt and verify token streaming appears incrementally. |
| 53 | +2. Click `Cancel` during streaming: |
| 54 | + - Run ends with cancelled response. |
| 55 | + - UI returns to idle input state. |
| 56 | +3. Start a new thread and verify title auto-updates from first user message. |
| 57 | + |
| 58 | +## Tool Execution Policy |
| 59 | +1. Trigger a read tool: |
| 60 | + - Tool call/result appears automatically in stream. |
| 61 | + - No approval dialog appears. |
| 62 | +2. Trigger a write tool: |
| 63 | + - Approval dialog appears with tool name, safety, args. |
| 64 | + - `Reject` returns tool rejection result and run continues safely. |
| 65 | + - `Approve` executes tool and returns result. |
| 66 | +3. Trigger unknown tool (if available): |
| 67 | + - Must be treated as `write` and require approval. |
| 68 | + |
| 69 | +## Figma Connectivity Fallback |
| 70 | +1. Disconnect Figma plugin and trigger Figma-dependent tool: |
| 71 | + - Assistant returns status payload indicating plugin disconnected. |
| 72 | + - User-facing guidance includes server/plugin reconnect actions. |
| 73 | + |
| 74 | +## Persistence & Limits |
| 75 | +1. Create over 100 threads: |
| 76 | + - Oldest threads are pruned automatically. |
| 77 | +2. In one thread, exceed 400 messages: |
| 78 | + - Oldest messages are pruned in that thread. |
| 79 | +3. Restart app and verify: |
| 80 | + - Last opened thread is restored. |
| 81 | + - No orphan messages remain for pruned threads. |
| 82 | + |
| 83 | +## Safety Regression Checks |
| 84 | +1. Search code for auto-install/auto-pull behavior: |
| 85 | + - No runtime logic should execute install/pull automatically. |
| 86 | +2. Verify all setup actions are user-guided via commands and links only. |
| 87 | + |
0 commit comments