[Ambient] Back-end: location, BT, WiFi, calendar ingest + suggestion engine #108

Closed
opened 2026-06-29 19:10:41 +00:00 by Mark · 1 comment
Owner

Background

Ambient proximity and location detection was originally tracked in #43 (closed). That issue ended without the implementation landing on main, but the data layer, schemas, and engine are already on disk in the working tree.

What this PR delivers

Back-end only:

  • New Dexie tables: locationRecords, bluetoothProximityRecords, wifiNetworkRecords, calendarOverlapRecords, ambientSuggestions, deviceToPersonMappings
  • Matching Zod schemas in src/lib/schemas.ts
  • Matching TypeScript types in src/lib/types.ts
  • New src/lib/ambient-engine.ts with computeSuggestions() and supporting matchers (geofence, BT proximity, WiFi co-presence, calendar overlap)
  • Store actions for ingesting records + managing suggestions (acknowledge, dismiss)

What's not in this PR

  • UI page or surface for the suggestions feed (they exist in store but nothing renders them)
  • Settings toggles for the four signal sources (location, BT, WiFi, calendar)
  • Foreground service for collecting BT / WiFi scans on Android
  • iOS counterpart (Capacitor Geolocation yes; BT / WiFi no public API)

Follow-up issues to file separately

  • UI surface for ambient suggestions (Home page or dedicated /ambient route)
  • Settings page controls for each signal source
  • Android foreground service for BT/WiFi scan collection
  • iOS gap analysis (BT/WiFi inaccessible; location only)

Verification

npx tsc --noEmit should pass. npm run build should pass. No new tests added in this PR (follow-up).

## Background Ambient proximity and location detection was originally tracked in #43 (closed). That issue ended without the implementation landing on `main`, but the data layer, schemas, and engine are already on disk in the working tree. ## What this PR delivers Back-end only: - New Dexie tables: `locationRecords`, `bluetoothProximityRecords`, `wifiNetworkRecords`, `calendarOverlapRecords`, `ambientSuggestions`, `deviceToPersonMappings` - Matching Zod schemas in `src/lib/schemas.ts` - Matching TypeScript types in `src/lib/types.ts` - New `src/lib/ambient-engine.ts` with `computeSuggestions()` and supporting matchers (geofence, BT proximity, WiFi co-presence, calendar overlap) - Store actions for ingesting records + managing suggestions (acknowledge, dismiss) ## What's not in this PR - UI page or surface for the suggestions feed (they exist in store but nothing renders them) - Settings toggles for the four signal sources (location, BT, WiFi, calendar) - Foreground service for collecting BT / WiFi scans on Android - iOS counterpart (Capacitor Geolocation yes; BT / WiFi no public API) ## Follow-up issues to file separately - UI surface for ambient suggestions (Home page or dedicated /ambient route) - Settings page controls for each signal source - Android foreground service for BT/WiFi scan collection - iOS gap analysis (BT/WiFi inaccessible; location only) ## Verification `npx tsc --noEmit` should pass. `npm run build` should pass. No new tests added in this PR (follow-up).
Author
Owner

Closed: implementation already shipped on main as c82aa5f feat(ambient): location, BT, WiFi, calendar ingest + suggestion engine (#108). Verified locally: ambient-engine.ts, schemas, store actions, and Dexie tables are in main. Follow-up work (UI surface #117, settings #118, Android foreground service #119, iOS gap #120) is tracked separately and remains open.

Closed: implementation already shipped on `main` as `c82aa5f feat(ambient): location, BT, WiFi, calendar ingest + suggestion engine (#108)`. Verified locally: `ambient-engine.ts`, schemas, store actions, and Dexie tables are in `main`. Follow-up work (UI surface #117, settings #118, Android foreground service #119, iOS gap #120) is tracked separately and remains open.
Mark 2026-07-01 22:14:48 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Mark/kimi_agent_kin_app_sync#108
No description provided.