Combobulating

ADR-0005 — On-Device Only: No Cloud Egress

Status

Accepted (2026-05-07). Source: plan.md §4.5, §20.3; technical_spec.md §1, §11.4.

Context

Aura processes notification metadata, calendar events, Gmail receipts, SMS (on Android), HRV, sleep, and typing-entropy signals. Every byte of this is sensitive in the Indian context the product targets: UPI SMS leaks bank balance, WhatsApp metadata leaks group membership, HRV leaks emotional state. The privacy wedge in plan.md §9.5 promises a user-owned exportable memory graph with audit log; that promise is incompatible with background cloud sync of personal data.

Constraints:

Decision

Aura performs all hot-path inference, decision, storage, and audit on the device. No personal data, no signal, no embedding, no trace is sent to any network endpoint operated by the team or by a third party for routine operation.

Specifically:

Permitted network egress.

  1. OAuth flows (Gmail, Google Calendar). Tokens scoped to gmail.metadata, gmail.readonly, calendar.readonly, calendar.events. Refresh tokens stored in Keychain / EncryptedSharedPreferences. Aura never requests gmail.modify or gmail.send; drafts open in the user’s mail app.
  2. Google Distance Matrix for travel-time estimation, only when the user’s calendar contains an event whose Leave-By Alert is being computed. Falls back to a local heuristic if quota is exhausted or the network is unavailable.
  3. Public model weight downloads on first install (Phi-3-mini, Gemma 2B Q4 GGUF, MiniLM embeddings). One-time fetch, content-addressed.
  4. User-initiated export only. Memory graph export to JSON via the Settings → Export action. The share sheet is invoked; the user picks the destination. No background sync, no auto-upload.
  5. User-initiated cloud heavy task. Optional, opt-in per task, with a one-screen consent and a per-task scope. Off by default.

Aura ships no backend operated by the team. There is no api.aura.ai, no analytics endpoint, no crash reporter that captures user data. Crash reporting, if added in Phase 2, will be self-hosted and scrub all personal fields at source.

Consequences

Positive:

Negative / costs:

Alternatives

End of ADR-0005.