clawdex-mobile 2.0.0 → 3.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/pages.yml +41 -0
- package/AGENTS.md +263 -110
- package/README.md +11 -0
- package/apps/mobile/.env.example +2 -2
- package/apps/mobile/App.tsx +175 -14
- package/apps/mobile/app.json +27 -9
- package/apps/mobile/eas.json +14 -4
- package/apps/mobile/package.json +13 -13
- package/apps/mobile/src/api/__tests__/chatMapping.test.ts +219 -0
- package/apps/mobile/src/api/__tests__/client.test.ts +579 -6
- package/apps/mobile/src/api/__tests__/ws.test.ts +27 -0
- package/apps/mobile/src/api/account.ts +47 -0
- package/apps/mobile/src/api/chatMapping.ts +435 -18
- package/apps/mobile/src/api/client.ts +296 -36
- package/apps/mobile/src/api/rateLimits.ts +143 -0
- package/apps/mobile/src/api/types.ts +106 -0
- package/apps/mobile/src/api/ws.ts +10 -1
- package/apps/mobile/src/components/ChatHeader.tsx +12 -12
- package/apps/mobile/src/components/ChatInput.tsx +154 -88
- package/apps/mobile/src/components/ChatMessage.tsx +548 -93
- package/apps/mobile/src/components/ComposerUsageLimits.tsx +167 -0
- package/apps/mobile/src/components/SelectionSheet.tsx +466 -0
- package/apps/mobile/src/components/ToolBlock.tsx +17 -15
- package/apps/mobile/src/components/VoiceRecordingWaveform.tsx +181 -0
- package/apps/mobile/src/components/WorkspacePickerModal.tsx +572 -0
- package/apps/mobile/src/components/__tests__/chat-input-layout.test.ts +35 -0
- package/apps/mobile/src/components/__tests__/chatImageSource.test.ts +44 -0
- package/apps/mobile/src/components/__tests__/composerUsageLimits.test.ts +138 -0
- package/apps/mobile/src/components/__tests__/voiceWaveform.test.ts +31 -0
- package/apps/mobile/src/components/chat-input-layout.ts +59 -0
- package/apps/mobile/src/components/chatImageSource.ts +86 -0
- package/apps/mobile/src/components/usageLimitBadges.ts +109 -0
- package/apps/mobile/src/components/voiceWaveform.ts +46 -0
- package/apps/mobile/src/config.ts +9 -2
- package/apps/mobile/src/hooks/useVoiceRecorder.ts +8 -1
- package/apps/mobile/src/navigation/DrawerContent.tsx +607 -457
- package/apps/mobile/src/navigation/__tests__/chatThreadTree.test.ts +89 -0
- package/apps/mobile/src/navigation/__tests__/drawerChats.test.ts +65 -0
- package/apps/mobile/src/navigation/chatThreadTree.ts +191 -0
- package/apps/mobile/src/navigation/drawerChats.ts +9 -0
- package/apps/mobile/src/screens/GitScreen.tsx +2 -0
- package/apps/mobile/src/screens/MainScreen.tsx +4244 -1237
- package/apps/mobile/src/screens/OnboardingScreen.tsx +2 -0
- package/apps/mobile/src/screens/SettingsScreen.tsx +256 -226
- package/apps/mobile/src/screens/TerminalScreen.tsx +2 -5
- package/apps/mobile/src/screens/__tests__/agentThreadDisplay.test.ts +80 -0
- package/apps/mobile/src/screens/__tests__/agentThreads.test.ts +170 -0
- package/apps/mobile/src/screens/__tests__/planCardState.test.ts +88 -0
- package/apps/mobile/src/screens/__tests__/subAgentTranscript.test.ts +102 -0
- package/apps/mobile/src/screens/__tests__/transcriptMessages.test.ts +97 -0
- package/apps/mobile/src/screens/agentThreadDisplay.ts +261 -0
- package/apps/mobile/src/screens/agentThreads.ts +167 -0
- package/apps/mobile/src/screens/planCardState.ts +40 -0
- package/apps/mobile/src/screens/subAgentTranscript.ts +149 -0
- package/apps/mobile/src/screens/transcriptMessages.ts +102 -0
- package/apps/mobile/src/theme.ts +6 -12
- package/docs/codex-app-server-cli-gap-tracker.md +14 -5
- package/docs/privacy-policy.md +54 -0
- package/docs/setup-and-operations.md +4 -3
- package/docs/terms-of-service.md +33 -0
- package/package.json +3 -3
- package/services/mac-bridge/package.json +6 -6
- package/services/rust-bridge/Cargo.lock +58 -363
- package/services/rust-bridge/Cargo.toml +2 -2
- package/services/rust-bridge/package.json +1 -1
- package/services/rust-bridge/src/main.rs +507 -9
- package/site/index.html +54 -0
- package/site/privacy/index.html +80 -0
- package/site/styles.css +135 -0
- package/site/support/index.html +51 -0
- package/site/terms/index.html +68 -0
package/apps/mobile/src/theme.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Platform
|
|
1
|
+
import { Platform } from 'react-native';
|
|
2
2
|
|
|
3
3
|
export const colors = {
|
|
4
4
|
// Backgrounds
|
|
@@ -68,17 +68,11 @@ export const radius = {
|
|
|
68
68
|
full: 999,
|
|
69
69
|
};
|
|
70
70
|
|
|
71
|
-
export const shadow =
|
|
72
|
-
sm:
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
shadowOpacity: 0.3,
|
|
77
|
-
shadowRadius: 6,
|
|
78
|
-
},
|
|
79
|
-
default: { elevation: 3 },
|
|
80
|
-
}) as object,
|
|
81
|
-
});
|
|
71
|
+
export const shadow = {
|
|
72
|
+
sm: {
|
|
73
|
+
boxShadow: '0px 2px 6px rgba(0, 0, 0, 0.3)',
|
|
74
|
+
},
|
|
75
|
+
} as const;
|
|
82
76
|
|
|
83
77
|
export const typography = {
|
|
84
78
|
largeTitle: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Codex App-Server + CLI Gap Tracker
|
|
2
2
|
|
|
3
|
-
Last updated:
|
|
3
|
+
Last updated: March 20, 2026
|
|
4
4
|
|
|
5
5
|
## Scope
|
|
6
6
|
This tracker compares `clawdex-mobile` against current Codex app-server + CLI capabilities and records what still needs to be added.
|
|
@@ -49,12 +49,21 @@ Status: In progress (first implementation pass completed)
|
|
|
49
49
|
## Remaining Gaps (Beyond Gap 1)
|
|
50
50
|
|
|
51
51
|
### Gap 2: Slash Command Coverage in Mobile
|
|
52
|
-
-
|
|
53
|
-
- Mobile
|
|
52
|
+
- Status: In progress
|
|
53
|
+
- Mobile now supports `/agent` thread switching, sub-agent transcript cards, and nested sub-agent rows in the drawer so spawned workers are visible in the main conversation model instead of being hidden behind generic tool-call traces.
|
|
54
|
+
- Mobile still does not expose the full Codex desktop slash-command surface as dedicated UI actions.
|
|
55
|
+
- Agent management remains lightweight:
|
|
56
|
+
- no dedicated create/configure sub-agent surface beyond `/agent`
|
|
57
|
+
- no richer per-agent live status/dashboard view
|
|
54
58
|
|
|
55
59
|
### Gap 3: Account/Auth UX
|
|
56
|
-
-
|
|
57
|
-
-
|
|
60
|
+
- Status: In progress
|
|
61
|
+
- Mobile Settings now exposes read-only account state via `account/read`, including ChatGPT email + plan type when available.
|
|
62
|
+
- Remaining:
|
|
63
|
+
- no dedicated standalone account screen outside Settings
|
|
64
|
+
- login/logout is not user-driven in mobile UI yet
|
|
65
|
+
- auth refresh is still operationally env-driven in bridge, not user-driven in app
|
|
66
|
+
- no API-key entry flow in mobile UI
|
|
58
67
|
|
|
59
68
|
### Gap 4: MCP + Tooling UX
|
|
60
69
|
- No end-to-end UI for MCP server status, reload, OAuth login, or remote skills list/export.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Privacy Policy
|
|
2
|
+
|
|
3
|
+
Last updated: March 6, 2026
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Clawdex Mobile is a companion app for connecting to a bridge service that you run on your own machine. The app is designed for trusted private networking, such as LAN, VPN, or Tailscale. It is not a public multi-tenant shell service.
|
|
8
|
+
|
|
9
|
+
## Information Processed
|
|
10
|
+
|
|
11
|
+
Clawdex Mobile can process:
|
|
12
|
+
|
|
13
|
+
- Chat prompts and assistant responses
|
|
14
|
+
- Bridge connection details you enter in the app
|
|
15
|
+
- Terminal command text and command output returned by your bridge
|
|
16
|
+
- Git repository status, diffs, commit messages, and related metadata
|
|
17
|
+
- File or image attachments you choose to send
|
|
18
|
+
- Voice input audio used for speech-to-text features
|
|
19
|
+
|
|
20
|
+
## How Information Is Used
|
|
21
|
+
|
|
22
|
+
The app uses this information to:
|
|
23
|
+
|
|
24
|
+
- connect your phone to your self-hosted bridge
|
|
25
|
+
- display and continue assistant threads
|
|
26
|
+
- execute approved terminal and Git workflows on infrastructure you control
|
|
27
|
+
- upload user-selected files and images to your own workflow
|
|
28
|
+
- support optional voice-to-text input
|
|
29
|
+
|
|
30
|
+
## Storage and Retention
|
|
31
|
+
|
|
32
|
+
Clawdex Mobile does not define a separate cloud retention layer for your project data. Data is generally stored by services and infrastructure you control, including your local bridge, repository, logs, caches, and any model providers or integrations that you configure.
|
|
33
|
+
|
|
34
|
+
## Sharing
|
|
35
|
+
|
|
36
|
+
Clawdex Mobile does not include advertising SDKs. Data may be transmitted to third-party model or infrastructure providers only when you configure and use those services as part of your own setup.
|
|
37
|
+
|
|
38
|
+
## Security
|
|
39
|
+
|
|
40
|
+
Security depends on how you configure your bridge and network. The app is intended for trusted-network use. You are responsible for protecting bridge tokens, provider credentials, repository access, and device access.
|
|
41
|
+
|
|
42
|
+
## Your Responsibility
|
|
43
|
+
|
|
44
|
+
You are responsible for:
|
|
45
|
+
|
|
46
|
+
- operating the bridge only on systems you own or are authorized to control
|
|
47
|
+
- securing your network path and credentials
|
|
48
|
+
- reviewing commands, approvals, and repository actions before execution
|
|
49
|
+
|
|
50
|
+
## Contact
|
|
51
|
+
|
|
52
|
+
For support, use the project support channel:
|
|
53
|
+
|
|
54
|
+
https://github.com/Mohit-Patil/clawdex-mobile/issues
|
|
@@ -140,9 +140,10 @@ Expected response contains `"status":"ok"`.
|
|
|
140
140
|
### Choosing Start Directory
|
|
141
141
|
|
|
142
142
|
1. Open sidebar
|
|
143
|
-
2. Under `Start Directory`, pick:
|
|
144
|
-
- `Bridge default workspace
|
|
145
|
-
- a discovered workspace path from existing chats
|
|
143
|
+
2. Under `Start Directory`, pick either:
|
|
144
|
+
- `Bridge default workspace`
|
|
145
|
+
- a discovered workspace path from existing Codex chats
|
|
146
|
+
- any folder on the bridge host via the built-in folder browser or manual path entry
|
|
146
147
|
|
|
147
148
|
Behavior:
|
|
148
149
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Terms of Service
|
|
2
|
+
|
|
3
|
+
Last updated: March 6, 2026
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Clawdex Mobile is a companion client for interacting with a bridge service and repository environment that you control. By using the app, you agree to use it only with systems, repositories, and infrastructure that you own or are explicitly authorized to access.
|
|
8
|
+
|
|
9
|
+
## Acceptable Use
|
|
10
|
+
|
|
11
|
+
You may not use Clawdex Mobile to access, control, or modify machines, repositories, or services without authorization. You are responsible for all actions initiated through the app, including approvals, terminal commands, Git actions, and file transfers.
|
|
12
|
+
|
|
13
|
+
## Credentials and Access
|
|
14
|
+
|
|
15
|
+
You must keep bridge tokens, provider credentials, repository credentials, and device access secure. If you believe credentials have been exposed, you should rotate them immediately and stop using the affected bridge until it is secured.
|
|
16
|
+
|
|
17
|
+
## Operational Risk
|
|
18
|
+
|
|
19
|
+
Clawdex Mobile can initiate workflows that change files, repositories, and machine state on your host environment. You are responsible for reviewing and approving actions before execution and for maintaining backups or recovery procedures appropriate to your environment.
|
|
20
|
+
|
|
21
|
+
## Availability
|
|
22
|
+
|
|
23
|
+
The app depends on your bridge, network, repositories, model providers, and related services. Functionality may be unavailable if those dependencies are unavailable or misconfigured.
|
|
24
|
+
|
|
25
|
+
## No Warranty
|
|
26
|
+
|
|
27
|
+
The software is provided on an as-is basis. You assume responsibility for how it is configured and used in your environment.
|
|
28
|
+
|
|
29
|
+
## Contact
|
|
30
|
+
|
|
31
|
+
For support, use the project support channel:
|
|
32
|
+
|
|
33
|
+
https://github.com/Mohit-Patil/clawdex-mobile/issues
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "clawdex-mobile",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"homepage": "https://github.com/Mohit-Patil/clawdex-mobile#readme",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -36,9 +36,9 @@
|
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@types/react": "~19.2.10",
|
|
39
|
+
"expo": "^55.0.8",
|
|
39
40
|
"react": "19.2.0",
|
|
40
41
|
"react-dom": "19.2.0",
|
|
41
|
-
"react-native": "0.83.2"
|
|
42
|
-
"expo": "^55.0.2"
|
|
42
|
+
"react-native": "0.83.2"
|
|
43
43
|
}
|
|
44
44
|
}
|
|
@@ -14,17 +14,17 @@
|
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@fastify/cors": "^10.0.2",
|
|
16
16
|
"@fastify/websocket": "^11.0.2",
|
|
17
|
-
"fastify": "^5.2
|
|
17
|
+
"fastify": "^5.8.2",
|
|
18
18
|
"zod": "^3.24.1"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@types/node": "^22.
|
|
22
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
23
|
-
"@typescript-eslint/parser": "^8.
|
|
24
|
-
"eslint": "^10.0.
|
|
21
|
+
"@types/node": "^22.19.15",
|
|
22
|
+
"@typescript-eslint/eslint-plugin": "^8.57.1",
|
|
23
|
+
"@typescript-eslint/parser": "^8.57.1",
|
|
24
|
+
"eslint": "^10.0.3",
|
|
25
25
|
"globals": "^16.5.0",
|
|
26
26
|
"tsx": "^4.19.2",
|
|
27
27
|
"typescript": "^5.7.2",
|
|
28
|
-
"vitest": "^4.0
|
|
28
|
+
"vitest": "^4.1.0"
|
|
29
29
|
}
|
|
30
30
|
}
|