clawdex-mobile 1.3.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +1 -1
- package/.github/workflows/npm-release.yml +18 -0
- package/AGENTS.md +3 -3
- package/README.md +101 -541
- package/apps/mobile/.env.example +1 -2
- package/apps/mobile/App.tsx +261 -68
- package/apps/mobile/app.json +31 -5
- package/apps/mobile/assets/brand/splash-icon-white.png +0 -0
- package/apps/mobile/eas.json +30 -0
- package/apps/mobile/package.json +22 -21
- package/apps/mobile/plugins/withAndroidCleartextTraffic.js +14 -0
- package/apps/mobile/src/api/__tests__/ws.test.ts +44 -6
- package/apps/mobile/src/api/chatMapping.ts +48 -8
- package/apps/mobile/src/api/client.ts +6 -0
- package/apps/mobile/src/api/types.ts +11 -0
- package/apps/mobile/src/api/ws.ts +52 -10
- package/apps/mobile/src/bridgeUrl.ts +105 -0
- package/apps/mobile/src/components/ActivityBar.tsx +32 -13
- package/apps/mobile/src/components/ChatHeader.tsx +3 -2
- package/apps/mobile/src/components/ChatInput.tsx +246 -91
- package/apps/mobile/src/components/ChatMessage.tsx +108 -4
- package/apps/mobile/src/config.ts +11 -29
- package/apps/mobile/src/hooks/useVoiceRecorder.ts +264 -0
- package/apps/mobile/src/navigation/DrawerContent.tsx +18 -8
- package/apps/mobile/src/screens/GitScreen.tsx +1 -1
- package/apps/mobile/src/screens/MainScreen.tsx +906 -268
- package/apps/mobile/src/screens/OnboardingScreen.tsx +1132 -0
- package/apps/mobile/src/screens/PrivacyScreen.tsx +1 -1
- package/apps/mobile/src/screens/SettingsScreen.tsx +65 -1
- package/apps/mobile/src/screens/TerminalScreen.tsx +1 -1
- package/apps/mobile/src/screens/TermsScreen.tsx +1 -1
- package/docs/app-review-notes.md +7 -2
- package/docs/eas-builds.md +91 -0
- package/docs/realtime-streaming-limitations.md +84 -0
- package/docs/setup-and-operations.md +239 -0
- package/docs/troubleshooting.md +121 -0
- package/docs/voice-transcription.md +87 -0
- package/package.json +8 -16
- package/scripts/setup-secure-dev.sh +122 -8
- package/scripts/setup-wizard.sh +342 -122
- package/scripts/start-bridge-secure.sh +7 -1
- package/scripts/sync-versions.js +63 -0
- package/services/rust-bridge/.env.example +1 -1
- package/services/rust-bridge/Cargo.lock +1104 -23
- package/services/rust-bridge/Cargo.toml +3 -1
- package/services/rust-bridge/package.json +1 -1
- package/services/rust-bridge/src/main.rs +587 -12
- package/apps/mobile/metro.config.js +0 -3
package/.github/workflows/ci.yml
CHANGED
|
@@ -2,6 +2,8 @@ name: NPM Release
|
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
5
7
|
tags:
|
|
6
8
|
- "v*"
|
|
7
9
|
workflow_dispatch:
|
|
@@ -68,7 +70,22 @@ jobs:
|
|
|
68
70
|
- name: Show package contents
|
|
69
71
|
run: npm pack --dry-run
|
|
70
72
|
|
|
73
|
+
- name: Resolve publish target
|
|
74
|
+
id: publish_target
|
|
75
|
+
run: |
|
|
76
|
+
PACKAGE_NAME="$(node -p "require('./package.json').name")"
|
|
77
|
+
PACKAGE_VERSION="$(node -p "require('./package.json').version")"
|
|
78
|
+
echo "package_name=${PACKAGE_NAME}" >> "$GITHUB_OUTPUT"
|
|
79
|
+
echo "package_version=${PACKAGE_VERSION}" >> "$GITHUB_OUTPUT"
|
|
80
|
+
if npm view "${PACKAGE_NAME}@${PACKAGE_VERSION}" version >/dev/null 2>&1; then
|
|
81
|
+
echo "publish_needed=false" >> "$GITHUB_OUTPUT"
|
|
82
|
+
echo "Package ${PACKAGE_NAME}@${PACKAGE_VERSION} is already published; skipping npm publish."
|
|
83
|
+
else
|
|
84
|
+
echo "publish_needed=true" >> "$GITHUB_OUTPUT"
|
|
85
|
+
fi
|
|
86
|
+
|
|
71
87
|
- name: Verify NPM token secret
|
|
88
|
+
if: steps.publish_target.outputs.publish_needed == 'true'
|
|
72
89
|
env:
|
|
73
90
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
74
91
|
run: |
|
|
@@ -78,6 +95,7 @@ jobs:
|
|
|
78
95
|
fi
|
|
79
96
|
|
|
80
97
|
- name: Publish to npm
|
|
98
|
+
if: steps.publish_target.outputs.publish_needed == 'true'
|
|
81
99
|
env:
|
|
82
100
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
83
101
|
run: npm publish --access public
|
package/AGENTS.md
CHANGED
|
@@ -57,9 +57,9 @@ npm run mobile
|
|
|
57
57
|
|
|
58
58
|
This runs `expo start` in the `apps/mobile` workspace. It loads `apps/mobile/.env` automatically.
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
On first app launch, onboarding will ask for your bridge URL. Enter your host machine LAN/Tailscale URL:
|
|
61
61
|
```
|
|
62
|
-
|
|
62
|
+
http://<YOUR_LAN_IP>:8787
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
Find your LAN IP with `ifconfig en0 | grep inet` (macOS) or `ip addr` (Linux). The phone and the host machine must be on the same network.
|
|
@@ -116,5 +116,5 @@ Optionally run on a specific platform:
|
|
|
116
116
|
- On real devices, use LAN host for bridge URL instead of localhost.
|
|
117
117
|
- Endpoint changes must be mirrored in mobile `src/api/types.ts` + client methods.
|
|
118
118
|
- Keep environment handling explicit; avoid relying on implicit cwd assumptions.
|
|
119
|
-
- If Expo Go shows a Worklets JS/native mismatch,
|
|
119
|
+
- If Expo Go shows a Worklets JS/native mismatch, run `npx expo install --fix` in `apps/mobile` and reinstall cleanly.
|
|
120
120
|
- If Expo shows `Failed to create a worklet`, ensure `apps/mobile/babel.config.js` includes `plugins: ['react-native-reanimated/plugin']` and restart with `expo start --clear`.
|