Back to Omi

Omi Mobile App Feature Vector for Flow-Walker

app/e2e/feature-vector.md

3.0.0-Android-App8.9 KB
Original Source

Omi Mobile App Feature Vector for Flow-Walker

Updated 2026-03-17 (originally Codex-validated 2026-03-12)

Purpose

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.


Scoring Model

Combined Priority = layer_weight × session_frequency

DimensionValues
Core-to-mission (layer weight)capture=5, understand=4, memory=4, intelligence=3, retrieval-action=3
Session frequencydaily=3, weekly=2, setup-only=1

Walker Score (0-3):

  • 3 = fully automatable (press-only, deterministic)
  • 2 = partially automatable (needs scroll OR conditional content)
  • 1 = needs human/physical setup first, then walker can verify
  • 0 = unreachable (SMS, external OAuth, real payment)

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 Vector (sorted by priority × walker_score)

CORE DAILY (priority 9-15, walker_score 1-3)

#FeatureLayerPriorityWalkerCoverage Status
1Conversation list & browsecapture (5)153✅ flow: conversations.yaml (9 steps)
2Conversation detail (transcript/summary/actions tabs)capture (5)152✅ flow: conversations.yaml
3Conversation recording (phone mic)capture (5)151✅ flow: phone-capture.yaml (9 steps)
4Conversation recording (Omi device)capture (5)151✅ flow: device-capture.yaml (10 steps)
5Device discover & connect (BLE)capture (5)151✅ flow: device-connect.yaml (10 steps)
6Device disconnect & reconnectcapture (5)151✅ flow: device-connect.yaml
7Memory list & browsememory (4)122✅ flow: memories.yaml (6 steps)
8Memory searchmemory (4)122✅ flow: memories.yaml
9AI Chat open/close (Ask Omi)intelligence (3)92✅ flow: ask-omi-chat.yaml (9 steps)
10Action items viewintelligence (3)92✅ flow: action-items.yaml (7 steps)
11Daily summary/score (home cards)intelligence (3)92✅ flow: daily-summary.yaml (stub)
12Global searchretrieval-action (3)92✅ covered
13Task management (create via FAB, toggle)retrieval-action (3)92⚠️ partial

CORE WEEKLY (priority 6-12, walker_score 1-2)

#FeatureLayerPriorityWalkerCoverage Status
14Memory review/approvalmemory (4)121⚠️ NO UI — backend API exists but Flutter app has no review buttons (user_review field unused in UI)
15Memory categories & filtermemory (4)82⚠️ partial
16Add/edit memory manuallymemory (4)82✅ flow: add-edit-memory.yaml (7 steps)
17Memory graph visualizationmemory (4)82✅ flow: memory-graph.yaml (stub)
18Custom vocabularyunderstand (4)82✅ flow: custom-vocabulary.yaml (7 steps)
19Speaker identification (People)understand (4)81✅ flow: speaker-identification.yaml (9 steps)
20Goals trackingintelligence (3)62✅ flow: goals-tracking.yaml (7 steps)
21Conversation sharing/exportretrieval-action (3)62✅ flow: conversation-sharing.yaml (8 steps)
22Conversation foldersretrieval-action (3)62✅ flow: conversation-folders.yaml (10 steps)
23App marketplace browseretrieval-action (3)62✅ flow: apps-marketplace.yaml (7 steps)
24App detail & installretrieval-action (3)62✅ flow: apps-marketplace.yaml
25Offline sync UIcapture (5)102✅ covered

SETUP & AUTH (priority 3-5)

#FeatureLayerPriorityWalkerCoverage Status
26Login (Google Sign-In)51✅ flow: login.yaml (5 steps)
27Logout52✅ flow: logout.yaml (5 steps)
28Onboarding (first launch)51✅ flow: onboarding.yaml (9 steps)
29Transcription settingsunderstand (4)42✅ covered
30Language selectionunderstand (4)42✅ covered
31Speech profileunderstand (4)41✅ covered
32Task integrationsretrieval-action (3)31✅ flow: task-integrations.yaml (stub)
33Calendar integrationretrieval-action (3)30⚠️ OAuth blocked

Remaining Gaps

RankFeaturePriorityBlockerNotes
1Memory review/approval12No Flutter UI existsBackend 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.
2Memory categories & filter8Partial coverageCovered in memories.yaml but filter toggles not fully exercised
3Task management (create via FAB)9Partial coverageAction items list covered but task creation form needs text input

Published Flow-Walker Reports

FlowStepsResultReport URL
login5/5PASSflow-walker.beastoin.workers.dev/runs/
onboarding9/9PASSflow-walker.beastoin.workers.dev/runs/
logout5/5PASSflow-walker.beastoin.workers.dev/runs/
ask-omi-chat9/9PASSflow-walker.beastoin.workers.dev/runs/O5h8bR6izW.html
conversations9/9PASSflow-walker.beastoin.workers.dev/runs/cUdrOXGmqV.html
apps-marketplace7/7PASSflow-walker.beastoin.workers.dev/runs/tdN1QX_6Al.html
memories6/6PASSflow-walker.beastoin.workers.dev/runs/S3mWAUnXiq.html
action-items7/7PASSflow-walker.beastoin.workers.dev/runs/CvTQtuBo6K.html
phone-capture9/9PASSflow-walker.beastoin.workers.dev/runs/HBzorfQBM2.html
device-connect10/10PASSflow-walker.beastoin.workers.dev/runs/yOluecTPyM.html
device-capture10/10PASSflow-walker.beastoin.workers.dev/runs/EWHjix-kFv.html
conversation-folders10/10PASSflow-walker.beastoin.workers.dev/runs/V-TQ-4nmze.html
conversation-sharing8/8PASSflow-walker.beastoin.workers.dev/runs/N3YxO9Zpnu.html
add-edit-memory7/7PASSflow-walker.beastoin.workers.dev/runs/0crZDcAVrh.html
custom-vocabulary7/7PASSflow-walker.beastoin.workers.dev/runs/W3wIFeChiw.html
speaker-identification9/9PASSflow-walker.beastoin.workers.dev/runs/uguxZ6ptjN.html

Coverage Summary

CategoryTotal FeaturesCoveredGaps
Core Daily (capture, intelligence)13121 (task mgmt partial)
Core Weekly (memory, understand, retrieval)12111 (memory review — no UI)
Setup & Auth871 (calendar OAuth)
Total33303

What Changed (2026-03-18 update)

  • 5 new flow-walker reports published on physical Pixel 7a device:
    • add-edit-memory (7/7 PASS) — create, edit, delete memory via FAB
    • custom-vocabulary (7/7 PASS) — add/delete transcription vocabulary words
    • speaker-identification (9/9 PASS) — add person, name speaker in transcript
    • conversation-folders (10/10 PASS) — folder tabs, create/filter
    • conversation-sharing (8/8 PASS) — share link, copy transcript, visibility
  • goals-tracking flow blocked: DailyScoreWidget not rendering on Pixel 7a despite preference enabled — "Add Goal" entry point unavailable when no goals exist
  • Total published reports: 16 (was 11)

What Changed (2026-03-17 update #2)

  • 6 new flows added closing all actionable gaps:
    • conversation-folders.yaml (10 steps) — folder tabs, create/filter/delete
    • goals-tracking.yaml (7 steps) — create/track/edit/delete goals
    • add-edit-memory.yaml (7 steps) — create/edit/delete memories via FAB
    • custom-vocabulary.yaml (7 steps) — add/delete transcription vocabulary
    • conversation-sharing.yaml (8 steps) — share link, copy transcript, visibility
    • speaker-identification.yaml (9 steps) — people management, name speakers
  • Memory review/approval reclassified: Not a gap but a missing Flutter UI feature (backend exists, app doesn't expose it)
  • Coverage: 30/33 features (91%) — remaining 3 are partial/blocked, not actionable gaps

What Changed (2026-03-17 update #1)

  • BLE device flows promoted to CORE DAILY — device-connect and device-capture proved automatable on physical Pixel 7a with real Omi device (were scored walker=0, now walker=1)
  • 3 new flows added: phone-capture, device-capture, device-connect (15 + 10 + 10 = 29 new steps)
  • Auth flows added to vector: login, logout, onboarding (previously unlisted)
  • Flow YAML references added to coverage status for traceability