mirror of
https://github.com/anomalyco/opencode.git
synced 2026-04-27 16:25:50 +00:00
Remove message.updated -> complete classification in the mobile foreground SSE monitor. The processor cleanup stamps time.completed on every assistant message after each LLM step, not just at session end, causing premature complete events. The sole reliable signal is session.status with type idle. Remove the redundant status.set(idle) from the processor halt() path. The Runner onIdle callback already transitions to idle when the loop exits, so the explicit set in halt was firing a duplicate complete notification alongside the error notification.
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-notificationsplugin is enabled withenableBackgroundRemoteNotifications: 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.