Platform
WebSocket protocol
The JSON-RPC 2.0 contract between Studio and the daemon.
Transport is Laravel Reverb — the Pusher v7 WebSocket protocol over WSS — carrying a JSON-RPC 2.0 envelope. The daemon subscribes to one private channel per project; auth is a Sanctum-issued JWT.
Connection semantics
-
30s heartbeat (
pusher:ping↔pusher:pong). - Exponential-backoff reconnect: 1s, doubling, capped at 30s; resets on a healthy reconnect.
- JSON-RPC 2.0 envelope: requests, responses and notifications.
- JWT auth, per-channel per-project scope.
Channel events
-
Server → client:
task.created,task.chunk,task.completed,task.failed,task.tool_call,task.tool_result,task.cancelled,task.revision,worker.report,team.spawn_request. -
Client → server:
client-task.create,client-task.cancel.
Error codes
| Code | Meaning |
|---|---|
| 4001 | auth required |
| 4002 | auth expired |
| 4003 | forbidden (project scope) |
| 4101 | rate limited |
| 4201 | task not found |
| 4202 | task state invalid |