Files
rely/docs/SETUP.md
T

3.1 KiB

Setup

Backend Base URL

Build-time (recommended):

flutter run --dart-define=BACKEND_BASE_URL=https://api.example.com

Runtime override (for future settings screens):

AppConfig.overrideBackendBaseUrl('https://staging.example.com');

Run With Fake Gateway

Use fake gateway for local/offline development:

flutter run --dart-define=USE_FAKE_BACKEND=true

Background Sync

Background sync (startup + resume + periodic ticks while authenticated) is enabled by default.

In REST mode, auto-triggers are reachability-gated to avoid unnecessary sync attempts while offline.

When connectivity returns (offline -> online), sync now triggers immediately in addition to startup/resume/periodic ticks.

Control flags:

flutter run \
  --dart-define=ENABLE_BACKGROUND_SYNC=true \
  --dart-define=BACKGROUND_SYNC_INTERVAL_SECONDS=180

Disable it explicitly:

flutter run --dart-define=ENABLE_BACKGROUND_SYNC=false

Reminder Delivery Scaffold

Reminder scheduling is now wired through ReminderScheduler and reconciled from LocalRepository on startup/state changes.

Default implementation now uses local notifications runtime where supported.

Control flag:

flutter run --dart-define=ENABLE_LOCAL_NOTIFICATIONS=true

Disable notifications explicitly:

flutter run --dart-define=ENABLE_LOCAL_NOTIFICATIONS=false

Behavior notes:

  • web: no-op fallback
  • linux: schedule fallback (no-op) due platform scheduling limitations in plugin
  • android/iOS/macOS/windows: scheduled local notifications
  • settings screen includes Request Notification Access action for runtime permission prompts
  • tapping a reminder notification opens reminder management UI in-app

WhatsApp Share Intake (MVP)

Inbound WhatsApp share-intake is now wired behind a listener in the authenticated app shell.

Control flag:

flutter run --dart-define=ENABLE_WHATSAPP_SHARE_INTAKE=true

Disable explicitly:

flutter run --dart-define=ENABLE_WHATSAPP_SHARE_INTAKE=false

Behavior notes:

  • iOS/Android: integrates with share-intent plugin (receive_sharing_intent)
  • shared text is parsed and ingested into:
    • person profile (auto-create when identity is confident)
    • source->profile link map for follow-up matching
    • moment history (type=whatsapp)
  • ambiguous or missing-identity shares are queued in Share Inbox for manual resolution
  • Settings includes:
    • Simulate WhatsApp Share for local/dev testing
    • Open Share Inbox to resolve queued items

Local Persistence Backend

Default local store:

  • Hive (USE_HIVE_LOCAL_DB=true by default)
  • first-run migration imports legacy shared_preferences payload when present
  • applies to both:
    • local product state (LocalRepository)
    • sync queue state (SyncQueueRepository)

Optional migration path:

flutter run --dart-define=USE_HIVE_LOCAL_DB=true

Use legacy mode explicitly if needed:

flutter run --dart-define=USE_HIVE_LOCAL_DB=false

Run Tests

flutter test

Generate Code

dart run build_runner build --delete-conflicting-outputs