Installs are up 615% but 7-day retention is ~0% and we had no analytics SDK to see where users drop off. Adds a thin PostHog wrapper (src/lib/analytics.ts) that tracks app_opened, connection_form_submitted, connection_attempted, connection_succeeded/failed (with a coarse error_class, e.g. the known 401 auth bug), message_sent, and response_received. PostHog was chosen over Aptabase for its GMS-free JS-only RN SDK (fine for the F-Droid/no-Firebase build), EU-hosted/self-host option, and generous free tier. Analytics shares the exact same consent flag as Sentry (telemetry.ts now gates both) so zero network calls happen without explicit opt-in. Requires a new EXPO_PUBLIC_POSTHOG_KEY CI secret (wired into build.yml, publish-fdroid.yml, publish-play-store.yml, and documented in publish-app-store.yml alongside the existing Sentry secrets). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NJKAQ6HAikWGQK7PGZ5Y4E
61 lines
1.6 KiB
JSON
61 lines
1.6 KiB
JSON
{
|
|
"name": "@opencode-ai/mobile",
|
|
"version": "0.4.7",
|
|
"private": true,
|
|
"main": "expo-router/entry",
|
|
"scripts": {
|
|
"start": "expo start",
|
|
"start:clear": "expo start --clear",
|
|
"ios": "expo run:ios",
|
|
"android": "expo run:android",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "node --test 'src/**/*.test.ts'"
|
|
},
|
|
"dependencies": {
|
|
"@expo/vector-icons": "^15.0.3",
|
|
"@gorhom/bottom-sheet": "5.2.8",
|
|
"@react-native-async-storage/async-storage": "2.2.0",
|
|
"@react-navigation/native": "^7.0.14",
|
|
"@sentry/react-native": "~6.14.0",
|
|
"@tanstack/react-query": "^5.62.0",
|
|
"expo": "^54.0.0",
|
|
"expo-clipboard": "8.0.8",
|
|
"expo-crypto": "~15.0.9",
|
|
"expo-device": "~8.0.10",
|
|
"expo-image-manipulator": "~14.0.8",
|
|
"expo-image-picker": "17.0.10",
|
|
"expo-linking": "~8.0.11",
|
|
"expo-local-authentication": "~17.0.8",
|
|
"expo-notifications": "~0.32.16",
|
|
"expo-router": "~6.0.22",
|
|
"expo-secure-store": "~15.0.8",
|
|
"expo-speech-recognition": "3.0.1",
|
|
"expo-status-bar": "~3.0.9",
|
|
"posthog-react-native": "^4.57.0",
|
|
"react": "19.1.0",
|
|
"react-native": "0.81.5",
|
|
"react-native-gesture-handler": "~2.28.0",
|
|
"react-native-marked": "8.0.0",
|
|
"react-native-reanimated": "~4.1.1",
|
|
"react-native-safe-area-context": "~5.6.0",
|
|
"react-native-screens": "~4.16.0",
|
|
"react-native-svg": "15.15.1",
|
|
"react-native-worklets": "0.5.1",
|
|
"zustand": "^5.0.2"
|
|
},
|
|
"devDependencies": {
|
|
"@types/react": "~19.1.10",
|
|
"typescript": "~5.9.2"
|
|
},
|
|
"expo": {
|
|
"install": {
|
|
"exclude": []
|
|
},
|
|
"autolinking": {
|
|
"buildFromSource": [
|
|
".*"
|
|
]
|
|
}
|
|
}
|
|
}
|