What's confirmed working:
- Gateway is up, LAN bind is reachable
- Device can establish a WS connection and make API calls (commands.list, models.list succeed)
- QR pairing auto-approves correctly server-side
- Main agent session is active (agent:main:main, 1m ago)
Confirmed problems:
- Bootstrap token loop — Every QR scan generates a new one-time token, invalidating all previous ones. The app cached a
stale token from an earlier scan and kept hammering the gateway with it (bootstrap_token_invalid repeating for ~30 min).
After force-stop the device stopped connecting entirely — it lost all credentials and now has nothing. - acp.defaultAgent = "claude" is not a real agent — The configured agents are main, rachel, saul, andrew, scott, samuel,
carmen, huhu, lyra, james. There is no agent named "claude" or "codex". Whatever the mobile app checks to determine
"operator online/offline", it routes through ACP to "claude" — which doesn't exist.