Gateway
Route /gateway. Two things that belong together: which chat channels reach the agent, and what happens to an approval when nobody is at the desk.

Bindings
A binding connects a chat channel to something the core can run.
| Field | What it means |
|---|---|
| Platform | telegram, discord, slack or kakao |
| Channel id | The channel, group or chat the messages come from |
| User id | Who is allowed to drive it. Optional, but see below |
| Credentials ref | The name of the credential to use, such as telegram_main or TELEGRAM_BOT_TOKEN |
| Target | What the messages reach: a named agent, an existing session, or a new session in a workdir |
Credentials are referenced, never entered. The secret lives in the daemon's credentials file or an environment variable, and nothing on this screen can read it back.
A binding with no user id is accepted, and the form warns before you create it: such a binding can receive messages, but it can never answer an approval, because there is nobody to attribute the decision to. The table flags those rows afterwards.
Unbind removes a binding.
Unattended approvals
The lower half is the shared approval queue: requests that are waiting for a human, whichever surface raised them.
Each row names the session, the tool and the scope being asked for. Allow and Deny answer it from here. The count in the header is how many are waiting, and Recently resolved keeps the last few answers so you can see what was decided and by whom.
The same queue is the Inspector's Approvals tab in a thread — one queue, two places to reach it.