Files
opencode/packages/mobile-voice
Ryan Vogel 6db0f9855c fix(mobile-voice): monitoring robustness, neutral prompt history colors, swipe hint fade, filter subagents
- SSE recovery: retry syncSessionState on stream failure or natural close
- Periodic 20s polling fallback while monitorJob is active in foreground
- syncSessionState retries after 5s when runtime status fetch fails
- isSending 5s safety timeout to prevent permanent send block
- Prompt history and swipe hint colors changed to neutral grays
- Swipe hint fades out/in inversely with waveform visibility
- Session list excludes subagent sessions via roots=true API param
2026-04-04 19:43:24 +00:00
..

Mobile Voice

Expo app for voice dictation and OpenCode session monitoring.

Current monitoring behavior

  • Foreground: app reads OpenCode SSE (GET /event) and updates monitor status live.
  • Background/terminated: app relies on APNs notifications sent by apn-relay.
  • The app registers its native APNs device token with relay route POST /v1/device/register.

App requirements

  • Use a development build or production build (not Expo Go).
  • expo-notifications plugin is enabled with enableBackgroundRemoteNotifications: true.
  • Notification permission must be granted.

Server entry fields in app

When adding a server, provide:

  • OpenCode URL
  • APN relay URL
  • Relay shared secret

Default APN relay URL: https://apn.dev.opencode.ai

The app uses these values to:

  • send prompts to OpenCode
  • register/unregister APNs token with relay
  • receive background push updates for monitored sessions

Local dev

npx expo start

Use your machine LAN IP / reachable host values for OpenCode and relay when testing on a physical device.