app/e2e/feature-vector.md
Prioritized feature map to guide flow-walker E2E coverage of core Omi mobile app flows. Uses two scoring dimensions from the Omi Issue Triage Guide.
Combined Priority = layer_weight × session_frequency
| Dimension | Values |
|---|---|
| Core-to-mission (layer weight) | capture=5, understand=4, memory=4, intelligence=3, retrieval-action=3 |
| Session frequency | daily=3, weekly=2, setup-only=1 |
Walker Score (0-3):
Note (2026-03-17): BLE device flows were originally scored walker=0 (unreachable). Proved automatable on physical Pixel 7a with Omi device — upgraded to walker=1 (needs physical device setup, then agent can drive full flow via ADB + agent-flutter).
| # | Feature | Layer | Priority | Walker | Coverage Status |
|---|---|---|---|---|---|
| 1 | Conversation list & browse | capture (5) | 15 | 3 | ✅ flow: conversations.yaml (9 steps) |
| 2 | Conversation detail (transcript/summary/actions tabs) | capture (5) | 15 | 2 | ✅ flow: conversations.yaml |
| 3 | Conversation recording (phone mic) | capture (5) | 15 | 1 | ✅ flow: phone-capture.yaml (9 steps) |
| 4 | Conversation recording (Omi device) | capture (5) | 15 | 1 | ✅ flow: device-capture.yaml (10 steps) |
| 5 | Device discover & connect (BLE) | capture (5) | 15 | 1 | ✅ flow: device-connect.yaml (10 steps) |
| 6 | Device disconnect & reconnect | capture (5) | 15 | 1 | ✅ flow: device-connect.yaml |
| 7 | Memory list & browse | memory (4) | 12 | 2 | ✅ flow: memories.yaml (6 steps) |
| 8 | Memory search | memory (4) | 12 | 2 | ✅ flow: memories.yaml |
| 9 | AI Chat open/close (Ask Omi) | intelligence (3) | 9 | 2 | ✅ flow: ask-omi-chat.yaml (9 steps) |
| 10 | Action items view | intelligence (3) | 9 | 2 | ✅ flow: action-items.yaml (7 steps) |
| 11 | Daily summary/score (home cards) | intelligence (3) | 9 | 2 | ✅ flow: daily-summary.yaml (stub) |
| 12 | Global search | retrieval-action (3) | 9 | 2 | ✅ covered |
| 13 | Task management (create via FAB, toggle) | retrieval-action (3) | 9 | 2 | ⚠️ partial |
| # | Feature | Layer | Priority | Walker | Coverage Status |
|---|---|---|---|---|---|
| 14 | Memory review/approval | memory (4) | 12 | 1 | ⚠️ NO UI — backend API exists but Flutter app has no review buttons (user_review field unused in UI) |
| 15 | Memory categories & filter | memory (4) | 8 | 2 | ⚠️ partial |
| 16 | Add/edit memory manually | memory (4) | 8 | 2 | ✅ flow: add-edit-memory.yaml (7 steps) |
| 17 | Memory graph visualization | memory (4) | 8 | 2 | ✅ flow: memory-graph.yaml (stub) |
| 18 | Custom vocabulary | understand (4) | 8 | 2 | ✅ flow: custom-vocabulary.yaml (7 steps) |
| 19 | Speaker identification (People) | understand (4) | 8 | 1 | ✅ flow: speaker-identification.yaml (9 steps) |
| 20 | Goals tracking | intelligence (3) | 6 | 2 | ✅ flow: goals-tracking.yaml (7 steps) |
| 21 | Conversation sharing/export | retrieval-action (3) | 6 | 2 | ✅ flow: conversation-sharing.yaml (8 steps) |
| 22 | Conversation folders | retrieval-action (3) | 6 | 2 | ✅ flow: conversation-folders.yaml (10 steps) |
| 23 | App marketplace browse | retrieval-action (3) | 6 | 2 | ✅ flow: apps-marketplace.yaml (7 steps) |
| 24 | App detail & install | retrieval-action (3) | 6 | 2 | ✅ flow: apps-marketplace.yaml |
| 25 | Offline sync UI | capture (5) | 10 | 2 | ✅ covered |
| # | Feature | Layer | Priority | Walker | Coverage Status |
|---|---|---|---|---|---|
| 26 | Login (Google Sign-In) | — | 5 | 1 | ✅ flow: login.yaml (5 steps) |
| 27 | Logout | — | 5 | 2 | ✅ flow: logout.yaml (5 steps) |
| 28 | Onboarding (first launch) | — | 5 | 1 | ✅ flow: onboarding.yaml (9 steps) |
| 29 | Transcription settings | understand (4) | 4 | 2 | ✅ covered |
| 30 | Language selection | understand (4) | 4 | 2 | ✅ covered |
| 31 | Speech profile | understand (4) | 4 | 1 | ✅ covered |
| 32 | Task integrations | retrieval-action (3) | 3 | 1 | ✅ flow: task-integrations.yaml (stub) |
| 33 | Calendar integration | retrieval-action (3) | 3 | 0 | ⚠️ OAuth blocked |
| Rank | Feature | Priority | Blocker | Notes |
|---|---|---|---|---|
| 1 | Memory review/approval | 12 | No Flutter UI exists | Backend has POST /v3/memories/{id}/review endpoint and user_review field, but no approve/reject buttons in Flutter app. Cannot create flow for non-existent UI. |
| 2 | Memory categories & filter | 8 | Partial coverage | Covered in memories.yaml but filter toggles not fully exercised |
| 3 | Task management (create via FAB) | 9 | Partial coverage | Action items list covered but task creation form needs text input |
| Flow | Steps | Result | Report URL |
|---|---|---|---|
| login | 5/5 | PASS | flow-walker.beastoin.workers.dev/runs/ |
| onboarding | 9/9 | PASS | flow-walker.beastoin.workers.dev/runs/ |
| logout | 5/5 | PASS | flow-walker.beastoin.workers.dev/runs/ |
| ask-omi-chat | 9/9 | PASS | flow-walker.beastoin.workers.dev/runs/O5h8bR6izW.html |
| conversations | 9/9 | PASS | flow-walker.beastoin.workers.dev/runs/cUdrOXGmqV.html |
| apps-marketplace | 7/7 | PASS | flow-walker.beastoin.workers.dev/runs/tdN1QX_6Al.html |
| memories | 6/6 | PASS | flow-walker.beastoin.workers.dev/runs/S3mWAUnXiq.html |
| action-items | 7/7 | PASS | flow-walker.beastoin.workers.dev/runs/CvTQtuBo6K.html |
| phone-capture | 9/9 | PASS | flow-walker.beastoin.workers.dev/runs/HBzorfQBM2.html |
| device-connect | 10/10 | PASS | flow-walker.beastoin.workers.dev/runs/yOluecTPyM.html |
| device-capture | 10/10 | PASS | flow-walker.beastoin.workers.dev/runs/EWHjix-kFv.html |
| conversation-folders | 10/10 | PASS | flow-walker.beastoin.workers.dev/runs/V-TQ-4nmze.html |
| conversation-sharing | 8/8 | PASS | flow-walker.beastoin.workers.dev/runs/N3YxO9Zpnu.html |
| add-edit-memory | 7/7 | PASS | flow-walker.beastoin.workers.dev/runs/0crZDcAVrh.html |
| custom-vocabulary | 7/7 | PASS | flow-walker.beastoin.workers.dev/runs/W3wIFeChiw.html |
| speaker-identification | 9/9 | PASS | flow-walker.beastoin.workers.dev/runs/uguxZ6ptjN.html |
| Category | Total Features | Covered | Gaps |
|---|---|---|---|
| Core Daily (capture, intelligence) | 13 | 12 | 1 (task mgmt partial) |
| Core Weekly (memory, understand, retrieval) | 12 | 11 | 1 (memory review — no UI) |
| Setup & Auth | 8 | 7 | 1 (calendar OAuth) |
| Total | 33 | 30 | 3 |