Blame
|
1 | --- |
||||||
| 2 | title: Risks, Decisions, and Open Questions |
|||||||
| 3 | aliases: [Risk Register, ADRs] |
|||||||
| 4 | tags: [3netra/wiki, risks, adr] |
|||||||
| 5 | product: 3netra Meta Android App |
|||||||
| 6 | source_repository: 3Netra-ai/3n_meta_android |
|||||||
| 7 | source_ref: origin/prod |
|||||||
| 8 | source_revision: b48aada8fd5427b5db0c02945569963c4ae543c8 |
|||||||
| 9 | last_verified: 2026-08-06 |
|||||||
| 10 | up: "[[Home]]" |
|||||||
| 11 | --- |
|||||||
| 12 | ||||||||
| 13 | # Risks, Decisions, and Open Questions |
|||||||
| 14 | ||||||||
| 15 | ## Risk register |
|||||||
| 16 | ||||||||
| 17 | | Severity | Risk | Impact | Recommended action | |
|||||||
| 18 | |---|---|---|---| |
|||||||
| 19 | | Critical | Random embeddings when FaceNet model load fails | False identification and unsafe trust | Fail closed; surface model error; add model integrity test | |
|||||||
| 20 | | Critical | Active AI client replaces every successful Edge Function reply with fixed text | Core narration/chat/summary is non-functional or misleading | Decode and validate the response; add contract/UI tests before release | |
|||||||
| 21 | | Critical | Cloud biometric storage conflicts with local/encrypted claims | Student privacy, legal, trust | Define one consented architecture; enforce encryption, RLS, deletion | |
|||||||
| 22 | | Critical | Committed/app-compiled credential material and an unsafe provider boundary | Credential compromise and unauthorized provider use | Rotate/revoke; purge history where required; use managed server secrets only | |
|||||||
| 23 | | Critical | SOS flow is represented but incomplete | Safety harm | Remove claim/entry point until end-to-end verified | |
|||||||
| 24 | | High | Compose and Expo apps share package/build ownership | Wrong artifact, config/signing drift | Record ADR selecting canonical app and retire/rename the other | |
|||||||
| 25 | | High | Glasses connection methods are partly simulated | Core product appears connected when it is not | Implement DAT connection state as single source of truth | |
|||||||
| 26 | | High | No proven Supabase RLS/policy tests | Cross-user or cross-school disclosure | Add versioned schema/policies and adversarial tests | |
|||||||
| 27 | | High | Student age/consent is fabricated or defaulted | FERPA/DPDPA failure | Build verified eligibility workflow | |
|||||||
| 28 | | High | Sensitive debug logging | Biometric/device data leakage | Structured redacted logging and release log policy | |
|||||||
| 29 | | High | Very small test suite and lint disabled | Regression and release risk | Restore quality gates incrementally | |
|||||||
| 30 | | High | AWS workflow cannot demonstrate a deployable active backend | Release drift and false operations claims | Select Edge Function or SAM as canonical; fix required parameters and add deployment/contract validation | |
|||||||
| 31 | | Medium | Orphaned services/routes | Misleading feature status and maintenance cost | Wire with acceptance tests or remove | |
|||||||
| 32 | | Medium | In-memory chat/story | Loss on process death; unclear retention | Decide explicit ephemeral vs durable design | |
|||||||
| 33 | | Medium | Legacy PDF export API | Export failures on modern Android | Use MediaStore or Storage Access Framework | |
|||||||
| 34 | | Medium | Product-age conflict | Wrong copy, consent, UX and validation | Product decision with one canonical PRD | |
|||||||
| 35 | | Medium | Vendor/model hidden behind backend without telemetry | Cost/quality incidents hard to diagnose | Add backend model-routing and quota observability | |
|||||||
| 36 | ||||||||
| 37 | ## Architecture decisions needed |
|||||||
| 38 | ||||||||
| 39 | | ID | Decision | Options | |
|||||||
| 40 | |---|---|---| |
|||||||
| 41 | | ADR-001 | Canonical Android app | Compose `src/frontend`; Expo root app; intentionally separate products/packages | |
|||||||
| 42 | | ADR-002 | Biometric storage | Encrypted device-local only; encrypted cloud sync; remove recognition | |
|||||||
| 43 | | ADR-003 | Primary audience | Higher Education (high school & college); separate editions | |
|||||||
| 44 | | ADR-004 | Voice activation | Always-on wake word; push-to-talk; glasses gesture; phased combination | |
|||||||
| 45 | | ADR-005 | AI provider boundary | Backend-selected model; user/tenant policy; deterministic fallback chain | |
|||||||
| 46 | | ADR-006 | Session history | Explicitly ephemeral; encrypted local; cloud with consent and retention | |
|||||||
| 47 | | ADR-007 | Hardware abstraction | Meta-only near term; formal HAL before second vendor | |
|||||||
| 48 | | ADR-008 | Emergency feature | Production safety workflow; informational assistance only; remove | |
|||||||
| 49 | | ADR-009 | AI execution path | Repair/retain Supabase `chat-vision`; activate/fix AWS SAM; one tested canonical boundary | |
|||||||
| 50 | ||||||||
| 51 | ## Open product questions |
|||||||
| 52 | ||||||||
| 53 | - Is the app a student tool, caregiver companion, school platform, or all three with separate role surfaces? |
|||||||
| 54 | - Which features are safe to advertise today on the active build? |
|||||||
| 55 | - Does a struck-through roadmap item mean delivered, cancelled, or deferred? |
|||||||
| 56 | - Who is authorized to enroll another person's face, and how is their consent recorded? |
|||||||
| 57 | - What is the age threshold and guardian verification mechanism by market? |
|||||||
| 58 | - Are images, video frames, prompts, responses, and transcripts retained by the backend or downstream model vendor? |
|||||||
| 59 | - What happens when the AI is uncertain, especially for identity, emotion, obstacles, and emergency contexts? |
|||||||
| 60 | - Is seven-language output required at launch, and which vendor is authoritative for each speech function? |
|||||||
| 61 | ||||||||
| 62 | ## Recommended execution order |
|||||||
| 63 | ||||||||
| 64 | ```mermaid |
|||||||
| 65 | flowchart TD |
|||||||
| 66 | A[Resolve product audience and canonical app] --> X[Repair fixed AI-response client path] |
|||||||
| 67 | X --> B[Fix face-model fail-closed behavior] |
|||||||
| 68 | B --> C[Define consent, RLS, retention, and vendor data flow] |
|||||||
| 69 | C --> D[Make glasses connection/capture production-real] |
|||||||
| 70 | D --> E[Turn core flows into tested release gates] |
|||||||
| 71 | E --> F[Complete AI chat latency and wake-word scope] |
|||||||
| 72 | F --> G[Wire or remove orphaned features] |
|||||||
| 73 | G --> H[Add offline, navigation, dashboards, and new hardware] |
|||||||
| 74 | ``` |
|||||||
| 75 | ||||||||
| 76 | --- |
|||||||
| 77 | ||||||||
| 78 | > [!tip] Navigation |
|||||||
| 79 | > ⬅️ [[11-Security-Privacy-Compliance|Security, Privacy & Compliance]] · 🏠 [[Home]] · ➡️ [[13-Source-Map-Glossary|Source Map & Glossary]] |
|||||||
