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
..
.cursor mobile-voice commit 2026-03-28 13:30:21 -04:00
assets update to the apn and server management 2026-03-29 16:17:57 -04:00
relay mobile-voice commit 2026-03-28 13:30:21 -04:00
scripts mobile-voice commit 2026-03-28 13:30:21 -04:00
src fix(mobile-voice): monitoring robustness, neutral prompt history colors, swipe hint fade, filter subagents 2026-04-04 19:43:24 +00:00
.gitignore mobile-voice commit 2026-03-28 13:30:21 -04:00
AGENTS.md feat: enhance mobile voice build and UI layout 2026-04-02 13:01:17 +00:00
app.json fix: advertise MagicDNS hosts for Tailscale pairing 2026-04-03 13:02:58 +00:00
eas.json fix: unblock mobile EAS installs with Bun 2026-04-03 13:18:13 +00:00
eslint.config.js update mobile voice quality guardrails 2026-03-30 08:15:29 -04:00
metro.config.js mobile-voice commit 2026-03-28 13:30:21 -04:00
notes.md update mobile pairing flow and audio session handling 2026-03-30 16:53:35 -04:00
package-lock.json mobile-voice commit 2026-03-28 13:30:21 -04:00
package.json feat: enhance mobile voice build and UI layout 2026-04-02 13:01:17 +00:00
README.md feat: improve mobile model download UX and relay defaults 2026-03-28 14:03:57 -04:00
refactor.md update mobile voice quality guardrails 2026-03-30 08:15:29 -04:00
tsconfig.json refactor mobile screen orchestration 2026-03-30 08:57:35 -04:00
tsconfig.typecheck.json refactor mobile screen orchestration 2026-03-30 08:57:35 -04: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.