-
Notifications
You must be signed in to change notification settings - Fork 0
[Watch] 1 - Set up watch app #484
Copy link
Copy link
Closed
Labels
area:iosiOS-only work: platform port and iOS-specific native code. Not cross-platform work that touches iOSiOS-only work: platform port and iOS-specific native code. Not cross-platform work that touches iOSarea:nativeTouches native side (modules/vesc-ble, Swift/Kotlin)Touches native side (modules/vesc-ble, Swift/Kotlin)area:watchWatch Mirror: wrist telemetry + alert playback (Wear OS / watchOS companions)Watch Mirror: wrist telemetry + alert playback (Wear OS / watchOS companions)complexity:highCritical paths, subtle correctness, native pipelines. Use opus.Critical paths, subtle correctness, native pipelines. Use opus.enhancementNew feature or requestNew feature or requestready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agent
Description
Activity
Metadata
Metadata
Assignees
Labels
area:iosiOS-only work: platform port and iOS-specific native code. Not cross-platform work that touches iOSiOS-only work: platform port and iOS-specific native code. Not cross-platform work that touches iOSarea:nativeTouches native side (modules/vesc-ble, Swift/Kotlin)Touches native side (modules/vesc-ble, Swift/Kotlin)area:watchWatch Mirror: wrist telemetry + alert playback (Wear OS / watchOS companions)Watch Mirror: wrist telemetry + alert playback (Wear OS / watchOS companions)complexity:highCritical paths, subtle correctness, native pipelines. Use opus.Critical paths, subtle correctness, native pipelines. Use opus.enhancementNew feature or requestNew feature or requestready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agent
What to build
Build a reproducibly generated native watchOS target and a minimal live Board telemetry readout fed directly by the existing native iOS session. Resolve the runtime mechanism through measured Series 6 behavior before the remaining port assumes wrist-down parity.
Source: docs/watchos.md and the approved watchOS parity plan. Execution: HITL for physical-device verification; implementation is agent-owned.
Project setup included
watch/watchos/, with its own entry point, assets, bundle identifier and watchOS deployment target supporting Series 6.app.config.ts, to generate the watch target inside the existing iOS Xcode project. Configure target dependencies, build schemes and embedding in the iPhone app. Repeated prebuilds must not duplicate targets.Likely files
app.config.ts— existing Expo plugin registration, iOS identifiers, version and signing configuration.src/config/appVariant.ts— development/release application identity.plugins/withWearMirror.ts— existing settings or native-target integration reference.modules/vescape-core/ios/connection/BoardSessionController.swift— existing native iOS integration or test starting point.modules/vescape-core/ios/location/GpsMonitor.swift— existing native iOS integration or test starting point.modules/vescape-core/android/src/main/java/expo/modules/vescapecore/watch/WatchFrame.kt— existing Android phone-side parity peer.modules/vescape-core/android/src/main/java/expo/modules/vescapecore/watch/WatchTick.kt— existing Android phone-side parity peer.Implementation hints
Read current Android code, not historical alert-forwarding docs. Keep native phone truth and actions in vescape-core; do not make live wrist behavior depend on JS. Add bidirectional @parity links for equivalent contracts/logic and document verified platform differences in docs/watchos.md. New durable watch source belongs under watch/watchos/, not generated ios/. The local planning document will be included in the draft watchOS feature PR; this issue includes its relevant requirements independently.
Acceptance criteria
Blocked by
None — can start immediately
Related