Target device: Floatwheel ADV2 (VESC-based onewheel) Stack: Expo SDK 54 · React Native 0.81.5 · New Architecture · Android · Bun
- architecture.md — hardware topology, BLE profile, protocol stack
- native-api.md — the native↔JS surface: modules, events, payloads
- connectionState.md — native-owned live state, GPS, recording, auto-connect
- ios.md — iOS specifics: Live Activity, background ride recording, notifications
- bleAndroid.md — BLE connection problems & fixes (custom native module)
- watch-mirror.md — Wear OS Mirror local install and Data Layer troubleshooting
- vescProtocol.md — VESC packet framing, CAN forwarding, Refloat commands
- refloatAlldata.md — Refloat
COMMAND_GET_ALLDATAbinary layout - mcconf.md — VESC motor config binary layout, signature versioning, decode traps
- legacy-float.md — removal checklist for legacy INFO, saved links, and VESC 6.02 support
- chargingDetection.md — charging indicator investigation & findings
- pin-lock.md — upstream VESC PIN write-lock: fork firmware, commands, what it blocks (not implemented)
- accessories.md — in-progress accessory design: ground-clearance tilt sensor and brake light
- accessory-protocol.md — JSON/BLE protocol v1: discovery implemented against shared fixtures; commands, readings, and failure handling still draft
- history.md — ride history persistence, grouping, markers, and map rendering
- tune.md — Refloat tune screen behavior, basic slider formulas, field groups
- tune-preview-pl.md — Tune vs Tune Preview, explained (Polish)
- remote-tilt.md — Remote Tilt gesture ownership, native command timing, and latency checks
- alerts.md — telemetry alerts: storage, native evaluation, Geiger mode
- safety.md — safety warnings & thresholds: firmware pushbacks, faults, voltage cutoffs
- board-warnings.md — Board Warnings catalog: every kind's slug, title, severity, trigger, payload, clear semantics
- VESC fault evidence — live occurrences, past telemetry captures, and the on-demand Controller Fault Log
- Board tombstones — deleting a Board keeps its row so Ride History can still name it
- Telemetry keyed on board id — every telemetry table keys on the Board, not the BLE identifier
- legal-mode-speed-limits.md — legal mode: jurisdictions and speed caps
- performance-findings.md — live telemetry: hot/cold split, render-rate rules
- performance-map-camera.md — compass-mode camera cost, watchdog kill & fix
-
persistence-reliability-plan.md — in-progress Android/iOS persistence reliability plan and shared native DB contract tests
-
persistence-operation-inventory.md — every native durable operation and its executable contract owner
-
error-handling-audit.md — swallowed-error audit, explicit failure outcomes, and regression checks
-
design.md — visual design language: colors, layout, typography
-
release.md — versioning, per-version notes tiers, tags & GitHub Releases
Working rules and tooling recipes. AGENTS.md holds the rules that always apply; these are the
deeper references it points at.
- agents/react.md — React Native UI conventions, icon usage
- agents/skia.md — Skia canvas: gesture frame cost, transform-only animation, worklet traps
- agents/native-sync.md — keeping generated
ios/,android/, Pods in sync - agents/mapbox-patches.md — Mapbox dependency patches and native camera semantics
- agents/ios-profiling.md — headless Instruments on a real device: record, export, parse
- agents/clerk-auth.md — Clerk production auth setup, Android email-link debugging
- agents/issue-tracker.md — issues and PRDs on GitHub
- agents/triage-labels.md — the five-label triage vocabulary
- agents/domain.md —
CONTEXT.mdanddocs/adr/conventions
| Area | State |
|---|---|
| BLE scan & connect | ✅ |
| BLE notifications (Android 13+) | ✅ fixed — see bleAndroid.md |
| CAN forwarding to motor controller | ✅ fixed — see vescProtocol.md |
| Refloat GET_ALLDATA telemetry | ✅ |
| Smart-BMS cell-group voltages | 🧪 Experimental — see vescProtocol.md |
| iOS | stub only |