docs(discord): standardize eventQueue timeout guidance

This commit is contained in:
Peter Steinberger
2026-03-02 02:22:59 +00:00
parent 4f8c49e85b
commit cc0806dfab
3 changed files with 44 additions and 0 deletions

View File

@@ -1003,6 +1003,40 @@ openclaw logs --follow
</Accordion>
<Accordion title="Long-running handlers time out or duplicate replies">
Typical logs:
- `Listener DiscordMessageListener timed out after 30000ms for event MESSAGE_CREATE`
- `Slow listener detected ...`
Canonical knob:
- single-account: `channels.discord.eventQueue.listenerTimeout`
- multi-account: `channels.discord.accounts.<accountId>.eventQueue.listenerTimeout`
Recommended baseline:
```json5
{
channels: {
discord: {
accounts: {
default: {
eventQueue: {
listenerTimeout: 120000,
},
},
},
},
},
}
```
Tune this first before adding alternate timeout controls elsewhere.
</Accordion>
<Accordion title="Permissions audit mismatches">
`channels status --probe` permission checks only work for numeric channel IDs.
@@ -1049,6 +1083,7 @@ High-signal Discord fields:
- startup/auth: `enabled`, `token`, `accounts.*`, `allowBots`
- policy: `groupPolicy`, `dm.*`, `guilds.*`, `guilds.*.channels.*`
- command: `commands.native`, `commands.useAccessGroups`, `configWrites`, `slashCommand.*`
- event queue: `eventQueue.listenerTimeout` (canonical), `eventQueue.maxQueueSize`, `eventQueue.maxConcurrency`
- reply/history: `replyToMode`, `historyLimit`, `dmHistoryLimit`, `dms.*.historyLimit`
- delivery: `textChunkLimit`, `chunkMode`, `maxLinesPerMessage`
- streaming: `streaming` (legacy alias: `streamMode`), `draftChunk`, `blockStreaming`, `blockStreamingCoalesce`

View File

@@ -1417,6 +1417,12 @@ export const FIELD_HELP: Record<string, string> = {
"channels.discord.retry.maxDelayMs": "Maximum retry delay cap in ms for Discord outbound calls.",
"channels.discord.retry.jitter": "Jitter factor (0-1) applied to Discord retry delays.",
"channels.discord.maxLinesPerMessage": "Soft max line count per Discord message (default: 17).",
"channels.discord.eventQueue.listenerTimeout":
"Canonical Discord listener timeout control in ms for gateway event handlers. Default is 120000 in OpenClaw; set per account via channels.discord.accounts.<id>.eventQueue.listenerTimeout.",
"channels.discord.eventQueue.maxQueueSize":
"Optional Discord EventQueue capacity override (max queued events before backpressure). Set per account via channels.discord.accounts.<id>.eventQueue.maxQueueSize.",
"channels.discord.eventQueue.maxConcurrency":
"Optional Discord EventQueue concurrency override (max concurrent handler executions). Set per account via channels.discord.accounts.<id>.eventQueue.maxConcurrency.",
"channels.discord.threadBindings.enabled":
"Enable Discord thread binding features (/focus, bound-thread routing/delivery, and thread-bound subagent sessions). Overrides session.threadBindings.enabled when set.",
"channels.discord.threadBindings.idleHours":

View File

@@ -703,6 +703,9 @@ export const FIELD_LABELS: Record<string, string> = {
"channels.discord.retry.maxDelayMs": "Discord Retry Max Delay (ms)",
"channels.discord.retry.jitter": "Discord Retry Jitter",
"channels.discord.maxLinesPerMessage": "Discord Max Lines Per Message",
"channels.discord.eventQueue.listenerTimeout": "Discord EventQueue Listener Timeout (ms)",
"channels.discord.eventQueue.maxQueueSize": "Discord EventQueue Max Queue Size",
"channels.discord.eventQueue.maxConcurrency": "Discord EventQueue Max Concurrency",
"channels.discord.threadBindings.enabled": "Discord Thread Binding Enabled",
"channels.discord.threadBindings.idleHours": "Discord Thread Binding Idle Timeout (hours)",
"channels.discord.threadBindings.maxAgeHours": "Discord Thread Binding Max Age (hours)",