Repository navigation
Routing and Requests
Route precedence is configured channel or thread-parent route, then member route, then guild route. Direct messages require a member route. In a guild, channel routes receive ordinary messages directly; member and guild routes require a bot mention. Slash commands use the registered /agent command and do not require a message route in the same way as ordinary messages.
A route maps a Discord snowflake to a policy name. If there is no applicable route, Connector does not invoke an agent. Add only routes the bot should serve.
A newer request interrupts an in-flight request for the same policy, member, and channel. Global concurrency and pending-request limits apply across message and command invocations. Accepted ordinary-message requests show typing while actively running; queued requests do not send periodic typing requests. Slash commands use their deferred reply.
Connector passes message text as UTF-8. Image-enabled policies may receive up to four PNG, JPEG, or WebP attachments, with a combined limit of 4 MiB. Image-only messages are accepted on already-routed channels. Member- or guild-routed guild messages still require a bot mention. Images are not retained for later turns; users must attach them again.
Connector publishes completed assistant turns, not provisional edits. Zinc marks a completed model turn with an empty emission so Connector can send it even when tool execution continues. Long output is split across Discord messages, reopening code fences where needed. Mentions in generated output are disabled. If the configured output-message limit is exceeded, the request fails explicitly.
See Security and operations for limits, failure reporting, and local diagnostics.