@foxden-app/foxclaw 0.2.6 → 0.3.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.
@@ -1,236 +1,236 @@
1
- # Troubleshooting
2
-
3
- Start with these commands:
4
-
5
- ```bash
6
- foxclaw doctor
7
- foxclaw status
8
- ```
9
-
10
- If FoxClaw is installed as a Linux user service, also check:
11
-
12
- ```bash
13
- systemctl --user status foxclaw.service
14
- journalctl --user -u foxclaw.service -f
15
- ```
16
-
17
- ## Doctor Failures
18
-
19
- | Symptom | Meaning | Fix |
20
- | --- | --- | --- |
21
- | `[FAIL] node >= 24` | Your current shell is using an older Node.js. | Run `nvm install 24 && nvm use 24`, then rerun `foxclaw doctor`. If the service uses old Node, reinstall it from a Node 24 shell with `foxclaw start`. |
22
- | `[FAIL] codex cli available` | The `codex` command is not in PATH. | Install Codex CLI or fix PATH, then confirm `codex --version` works. |
23
- | `[FAIL] telegram bot token configured` | `TG_BOT_TOKEN` is missing from `.env`. | Copy the token from `@BotFather` into `.env`. |
24
- | `[FAIL] telegram allowed user configured` | `TG_ALLOWED_USER_ID` is missing from `.env`. | Get your numeric id from `@userinfobot` and add it to `.env`. |
25
- | `[FAIL] default cwd exists` | `DEFAULT_CWD` points to a folder that does not exist. | Create the folder or change `DEFAULT_CWD` to an existing absolute path. |
26
-
27
- ## Node Or npm Is Missing
28
-
29
- If you see `node: command not found` or `npm: command not found`, install Node.js 24 with `nvm`:
30
-
31
- ```bash
32
- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
33
- export NVM_DIR="$HOME/.nvm"
34
- [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
35
- nvm install 24
36
- nvm use 24
37
- node -v
38
- npm -v
39
- ```
40
-
41
- If it still fails, close the terminal, open a new one, and run:
42
-
43
- ```bash
44
- nvm use 24
45
- ```
46
-
47
- ## npm Permission Errors
48
-
49
- If `npm install -g @openai/codex` fails with `EACCES`, `EPERM`, or `permission denied`, your global npm directory is not writable by your user.
50
-
51
- Recommended fix: use Node through `nvm`, then install again:
52
-
53
- ```bash
54
- nvm install 24
55
- nvm use 24
56
- npm install -g @openai/codex
57
- ```
58
-
59
- Avoid `sudo npm install -g ...` unless you already understand how your Node installation is managed. Mixing `sudo`, system Node, and `nvm` is a common source of broken PATHs.
60
-
61
- If `codex` installs but FoxClaw still cannot find it, locate the binary:
62
-
63
- ```bash
64
- command -v codex
65
- ```
66
-
67
- Then put the absolute path in `.env`:
68
-
69
- ```dotenv
70
- CODEX_CLI_BIN=/absolute/path/to/codex
71
- ```
72
-
73
- ## Bot Does Not Reply
74
-
75
- Check these in order:
76
-
77
- 1. Make sure FoxClaw is running:
78
-
79
- ```bash
80
- foxclaw status
81
- ```
82
-
83
- 2. Try private chat first. Open your bot directly and send:
84
-
85
- ```text
86
- /help
87
- ```
88
-
89
- 3. Confirm `TG_ALLOWED_USER_ID` is your numeric Telegram id, not your `@username`.
90
-
91
- 4. Confirm the bot token in `.env` belongs to the bot you are messaging.
92
-
93
- 5. Restart after changing `.env`:
94
-
95
- ```bash
96
- foxclaw start
97
- ```
98
-
99
- If running foreground mode, stop with `Ctrl+C` and run `foxclaw serve` again.
100
-
101
- ## Group Messages Do Not Work
102
-
103
- Private chat is the easiest mode. For groups and topics:
104
-
105
- 1. Add the bot to the group.
106
- 2. Disable the bot's `privacy mode` in `@BotFather`.
107
- 3. Promote the bot to administrator.
108
- 4. Remove and re-add the bot if privacy mode was changed after it joined.
109
- 5. Configure `TG_ALLOWED_CHAT_ID`, and optionally `TG_ALLOWED_TOPIC_ID`.
110
-
111
- Explicit commands such as `/status@botname` can work even when normal group messages are blocked by privacy mode, so verify with a plain natural-language message too.
112
-
113
- ## Get Group Or Topic IDs
114
-
115
- 1. Stop FoxClaw.
116
- 2. Send a new message in the target group or topic.
117
- 3. Open:
118
-
119
- ```text
120
- https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates
121
- ```
122
-
123
- 4. Use `message.chat.id` as `TG_ALLOWED_CHAT_ID`.
124
- 5. Use `message.message_thread_id` as `TG_ALLOWED_TOPIC_ID`.
125
-
126
- If FoxClaw is still running, it may consume the update before you inspect it.
127
-
128
- ## Telegram Polling Conflict
129
-
130
- If Telegram reports conflicts or the same bot behaves strangely, two processes may be polling the same bot token.
131
-
132
- Check old and new services:
133
-
134
- ```bash
135
- systemctl --user is-active foxclaw.service
136
- systemctl --user is-active telegram-codex-app-bridge.service 2>/dev/null || true
137
- ```
138
-
139
- Stop the old service:
140
-
141
- ```bash
142
- systemctl --user disable --now telegram-codex-app-bridge.service
143
- ```
144
-
145
- Then restart FoxClaw:
146
-
147
- ```bash
148
- foxclaw start
149
- ```
150
-
151
- ## Codex Or App-Server Fails
152
-
153
- FoxClaw requires local Codex auth. Check:
154
-
155
- ```bash
156
- codex --version
157
- ```
158
-
159
- If Codex is not logged in:
160
-
161
- ```bash
162
- codex login
163
- ```
164
-
165
- `codex --version` only verifies the command exists. To verify auth, run:
166
-
167
- ```bash
168
- codex
169
- ```
170
-
171
- Then ask:
172
-
173
- ```text
174
- Say ready and exit.
175
- ```
176
-
177
- If your CLI supports `codex login status`, that is also useful, but a normal successful prompt is the most reliable check.
178
-
179
- FoxClaw app-server logs are stored here by default:
180
-
181
- ```bash
182
- tail -f ~/.foxclaw/logs/codex-app-server.log
183
- ```
184
-
185
- Bridge logs are stored here:
186
-
187
- ```bash
188
- tail -f ~/.foxclaw/logs/service.log
189
- ```
190
-
191
- ## Service Starts With The Wrong Node Version
192
-
193
- The systemd installer captures the `node` binary from your current PATH. If you installed the service from a shell using Node 22 or older, reinstall it from a Node 24 shell:
194
-
195
- ```bash
196
- nvm use 24
197
- foxclaw start
198
- systemctl --user status foxclaw.service
199
- ```
200
-
201
- The status output should show a Node 24 path in `ExecStart`.
202
-
203
- ## Does It Run After Reboot?
204
-
205
- Linux user systemd:
206
-
207
- ```bash
208
- systemctl --user is-enabled foxclaw.service
209
- ```
210
-
211
- `enabled` means it starts with your user session. To start after reboot before login:
212
-
213
- ```bash
214
- loginctl enable-linger "$USER"
215
- ```
216
-
217
- macOS launchd starts FoxClaw when you log in after running:
218
-
219
- ```bash
220
- foxclaw start
221
- ```
222
-
223
- ## Migrating From The Old Project Name
224
-
225
- If this machine still runs `telegram-codex-app-bridge`, migrate once:
226
-
227
- ```bash
228
- systemctl --user disable --now telegram-codex-app-bridge.service 2>/dev/null || true
229
- test -e ~/.foxclaw || cp -a ~/.telegram-codex-app-bridge ~/.foxclaw
230
- npm install -g @foxden-app/foxclaw@latest
231
- foxclaw init
232
- foxclaw doctor
233
- foxclaw start
234
- ```
235
-
236
- If `~/.foxclaw/.env` already exists, `foxclaw init` leaves it untouched.
1
+ # Troubleshooting
2
+
3
+ Start with these commands:
4
+
5
+ ```bash
6
+ foxclaw doctor
7
+ foxclaw status
8
+ ```
9
+
10
+ If FoxClaw is installed as a Linux user service, also check:
11
+
12
+ ```bash
13
+ systemctl --user status foxclaw.service
14
+ journalctl --user -u foxclaw.service -f
15
+ ```
16
+
17
+ ## Doctor Failures
18
+
19
+ | Symptom | Meaning | Fix |
20
+ | --- | --- | --- |
21
+ | `[FAIL] node >= 24` | Your current shell is using an older Node.js. | Run `nvm install 24 && nvm use 24`, then rerun `foxclaw doctor`. If the service uses old Node, reinstall it from a Node 24 shell with `foxclaw start`. |
22
+ | `[FAIL] codex cli available` | The `codex` command is not in PATH. | Install Codex CLI or fix PATH, then confirm `codex --version` works. |
23
+ | `[FAIL] telegram bot token configured` | `TG_BOT_TOKEN` is missing from `.env`. | Copy the token from `@BotFather` into `.env`. |
24
+ | `[FAIL] telegram allowed user configured` | `TG_ALLOWED_USER_ID` is missing from `.env`. | Get your numeric id from `@userinfobot` and add it to `.env`. |
25
+ | `[FAIL] default cwd exists` | `DEFAULT_CWD` points to a folder that does not exist. | Create the folder or change `DEFAULT_CWD` to an existing absolute path. |
26
+
27
+ ## Node Or npm Is Missing
28
+
29
+ If you see `node: command not found` or `npm: command not found`, install Node.js 24 with `nvm`:
30
+
31
+ ```bash
32
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
33
+ export NVM_DIR="$HOME/.nvm"
34
+ [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
35
+ nvm install 24
36
+ nvm use 24
37
+ node -v
38
+ npm -v
39
+ ```
40
+
41
+ If it still fails, close the terminal, open a new one, and run:
42
+
43
+ ```bash
44
+ nvm use 24
45
+ ```
46
+
47
+ ## npm Permission Errors
48
+
49
+ If `npm install -g @openai/codex` fails with `EACCES`, `EPERM`, or `permission denied`, your global npm directory is not writable by your user.
50
+
51
+ Recommended fix: use Node through `nvm`, then install again:
52
+
53
+ ```bash
54
+ nvm install 24
55
+ nvm use 24
56
+ npm install -g @openai/codex
57
+ ```
58
+
59
+ Avoid `sudo npm install -g ...` unless you already understand how your Node installation is managed. Mixing `sudo`, system Node, and `nvm` is a common source of broken PATHs.
60
+
61
+ If `codex` installs but FoxClaw still cannot find it, locate the binary:
62
+
63
+ ```bash
64
+ command -v codex
65
+ ```
66
+
67
+ Then put the absolute path in `.env`:
68
+
69
+ ```dotenv
70
+ CODEX_CLI_BIN=/absolute/path/to/codex
71
+ ```
72
+
73
+ ## Bot Does Not Reply
74
+
75
+ Check these in order:
76
+
77
+ 1. Make sure FoxClaw is running:
78
+
79
+ ```bash
80
+ foxclaw status
81
+ ```
82
+
83
+ 2. Try private chat first. Open your bot directly and send:
84
+
85
+ ```text
86
+ /help
87
+ ```
88
+
89
+ 3. Confirm `TG_ALLOWED_USER_ID` is your numeric Telegram id, not your `@username`.
90
+
91
+ 4. Confirm the bot token in `.env` belongs to the bot you are messaging.
92
+
93
+ 5. Restart after changing `.env`:
94
+
95
+ ```bash
96
+ foxclaw start
97
+ ```
98
+
99
+ If running foreground mode, stop with `Ctrl+C` and run `foxclaw serve` again.
100
+
101
+ ## Group Messages Do Not Work
102
+
103
+ Private chat is the easiest mode. For groups and topics:
104
+
105
+ 1. Add the bot to the group.
106
+ 2. Disable the bot's `privacy mode` in `@BotFather`.
107
+ 3. Promote the bot to administrator.
108
+ 4. Remove and re-add the bot if privacy mode was changed after it joined.
109
+ 5. Configure `TG_ALLOWED_CHAT_ID`, and optionally `TG_ALLOWED_TOPIC_ID`.
110
+
111
+ Explicit commands such as `/status@botname` can work even when normal group messages are blocked by privacy mode, so verify with a plain natural-language message too.
112
+
113
+ ## Get Group Or Topic IDs
114
+
115
+ 1. Stop FoxClaw.
116
+ 2. Send a new message in the target group or topic.
117
+ 3. Open:
118
+
119
+ ```text
120
+ https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates
121
+ ```
122
+
123
+ 4. Use `message.chat.id` as `TG_ALLOWED_CHAT_ID`.
124
+ 5. Use `message.message_thread_id` as `TG_ALLOWED_TOPIC_ID`.
125
+
126
+ If FoxClaw is still running, it may consume the update before you inspect it.
127
+
128
+ ## Telegram Polling Conflict
129
+
130
+ If Telegram reports conflicts or the same bot behaves strangely, two processes may be polling the same bot token.
131
+
132
+ Check old and new services:
133
+
134
+ ```bash
135
+ systemctl --user is-active foxclaw.service
136
+ systemctl --user is-active telegram-codex-app-bridge.service 2>/dev/null || true
137
+ ```
138
+
139
+ Stop the old service:
140
+
141
+ ```bash
142
+ systemctl --user disable --now telegram-codex-app-bridge.service
143
+ ```
144
+
145
+ Then restart FoxClaw:
146
+
147
+ ```bash
148
+ foxclaw start
149
+ ```
150
+
151
+ ## Codex Or App-Server Fails
152
+
153
+ FoxClaw requires local Codex auth. Check:
154
+
155
+ ```bash
156
+ codex --version
157
+ ```
158
+
159
+ If Codex is not logged in:
160
+
161
+ ```bash
162
+ codex login
163
+ ```
164
+
165
+ `codex --version` only verifies the command exists. To verify auth, run:
166
+
167
+ ```bash
168
+ codex
169
+ ```
170
+
171
+ Then ask:
172
+
173
+ ```text
174
+ Say ready and exit.
175
+ ```
176
+
177
+ If your CLI supports `codex login status`, that is also useful, but a normal successful prompt is the most reliable check.
178
+
179
+ FoxClaw app-server logs are stored here by default:
180
+
181
+ ```bash
182
+ tail -f ~/.foxclaw/logs/codex-app-server.log
183
+ ```
184
+
185
+ Bridge logs are stored here:
186
+
187
+ ```bash
188
+ tail -f ~/.foxclaw/logs/service.log
189
+ ```
190
+
191
+ ## Service Starts With The Wrong Node Version
192
+
193
+ The systemd installer captures the `node` binary from your current PATH. If you installed the service from a shell using Node 22 or older, reinstall it from a Node 24 shell:
194
+
195
+ ```bash
196
+ nvm use 24
197
+ foxclaw start
198
+ systemctl --user status foxclaw.service
199
+ ```
200
+
201
+ The status output should show a Node 24 path in `ExecStart`.
202
+
203
+ ## Does It Run After Reboot?
204
+
205
+ Linux user systemd:
206
+
207
+ ```bash
208
+ systemctl --user is-enabled foxclaw.service
209
+ ```
210
+
211
+ `enabled` means it starts with your user session. To start after reboot before login:
212
+
213
+ ```bash
214
+ loginctl enable-linger "$USER"
215
+ ```
216
+
217
+ macOS launchd starts FoxClaw when you log in after running:
218
+
219
+ ```bash
220
+ foxclaw start
221
+ ```
222
+
223
+ ## Migrating From The Old Project Name
224
+
225
+ If this machine still runs `telegram-codex-app-bridge`, migrate once:
226
+
227
+ ```bash
228
+ systemctl --user disable --now telegram-codex-app-bridge.service 2>/dev/null || true
229
+ test -e ~/.foxclaw || cp -a ~/.telegram-codex-app-bridge ~/.foxclaw
230
+ npm install -g @foxden-app/foxclaw@latest
231
+ foxclaw init
232
+ foxclaw doctor
233
+ foxclaw start
234
+ ```
235
+
236
+ If `~/.foxclaw/.env` already exists, `foxclaw init` leaves it untouched.