Gateway And Supervision
Use this page when one service channel already works and you need to decide how Loong should own longer-lived delivery. If you still need initial channel setup or smoke tests, start with Channel Guides for the exact one-surface contract and keep Channel Recipes for the representative rollout path. This page is about runtime ownership, supervision, and account selection after the basic lane is already healthy. If you first need the shareddefault_account, accounts.<id>, or outbound
trust config shape, start with
Configuration Patterns.
The canonical public docs story uses grouped shells first: loong channels serve <surface> for single-surface runtime loops and loong gateway ... for persisted ownership.
Choose The Right Owner Shape
| Need | Best command | Why |
|---|---|---|
| keep one service channel in the foreground while you verify it | loong channels serve <surface> | simplest single-surface loop; no cross-channel supervisor yet |
| keep several gateway-supervised runtime-backed channels attached to one foreground shell | loong gateway run --session <name> | one visible attached owner shell with a named concurrent CLI host |
| claim the persisted owner slot and manage it from another process | loong gateway run | explicit persisted owner contract with status and stop |
| claim gateway ownership and also attach a named CLI host | loong gateway run --session <name> | same owner contract, but attached to an explicit interactive host session |
Current Public Ownership Model
gateway run,gateway status, andgateway stopare the current explicit owner contract for longer-lived gateway-supervised delivery.gateway run --session <name>is the explicit attached foreground owner workflow for rollout.- bare
gateway runis the persisted owner workflow when another process should inspect or stop it later. - This ownership model is for gateway-supervised service channels. Some of
those surfaces still keep
implementation_status=plugin_backedin the catalog because their setup and transport contracts preserve managed-bridge-capable or externally bridged history. It is not the umbrella story for every outbound integration in the catalog.
What Gateway Supervision Includes Today
Included in runtime supervision today:- Feishu / Lark
- Telegram
- Matrix
- WeCom
- Standalone native-serve surfaces: LINE and Webhook
- Outbound-only surfaces: Email, Slack, Discord, Teams, Google Chat, Mattermost, Nextcloud Talk, Synology Chat, DingTalk, Signal, IRC, iMessage / BlueBubbles, Nostr, Tlon, Twitch, and similar direct-send integrations
Channel-Account Selectors
Use repeatable--channel-account <CHANNEL=ACCOUNT> selectors when you want to
pin a specific account for a gateway-supervised channel family.
Rules that matter:
feishu=workis valid, andlark=workis the accepted alias for the same Feishu family.- selectors should target configured account ids such as
work,alerts,bot_123456, orbridge-sync - one channel family can appear only once in the selector list; duplicate overrides are rejected
- malformed selectors such as
telegrambot123fail because the syntax must beCHANNEL=ACCOUNT - when a channel family has several configured accounts, setting
default_accountexplicitly keeps fallback routing from becoming accidental
Rollout Order
- Get
onboard,askorchat, anddoctorhealthy first. - Bring up one gateway-supervised surface with its own
loong channels serve <surface>loop before you introduce supervision. - Add
default_accountplusaccounts.<id>before you rely on multi-account supervision. - Use
gateway run --session <name>when you want one attached foreground session. - Use
gateway runwhen you want a persisted owner that another process can inspect or stop.
Recovery And Inspection
When startup or supervision is unclear, use the shortest diagnostic loop first:doctorchecks provider and channel readinesschannelsshows how Loong currently classifies each surfacegateway status --jsonis the quickest way to inspect current ownership from another CLI processloong status --jsonprovides the broader operator summary across gateway, ACP, and work-unit surfaces
- confirm that the selected surface is actually gateway-supervised, not a
standalone native-serve
channels serve <surface>lane or outbound-only lane - confirm that the selected account id exists under
accounts.<id> - rerun with explicit
--channel-accountselectors when a channel family has more than one configured account - check duplicate selectors first if startup fails immediately
Continue Reading
- Continue to Gateway Rollout when you want the owner contract turned into a rollout sequence.
- Continue to Common Setups when you want provider, channel, and gateway choices combined into one setup path.
- Continue to Configuration Patterns for the shared public account, selector, and trust-toggle config shapes.
- Go back to Channels for the surface model and the gateway-supervised versus standalone native-serve versus outbound-only boundary.
- Continue to Channel Guides for the exact built-in contract of one shipped channel surface.
- Continue to Channel Setup for the practical public setup contract.
- Continue to Channel Recipes for smoke tests, worked examples, and rollout walkthroughs.
- The field-level public source spec remains in the repository’s Channel Setup markdown.