mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 19:10:58 +00:00
docs(discord): standardize eventQueue timeout guidance
This commit is contained in:
@@ -1003,6 +1003,40 @@ openclaw logs --follow
|
|||||||
|
|
||||||
</Accordion>
|
</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">
|
<Accordion title="Permissions audit mismatches">
|
||||||
`channels status --probe` permission checks only work for numeric channel IDs.
|
`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`
|
- startup/auth: `enabled`, `token`, `accounts.*`, `allowBots`
|
||||||
- policy: `groupPolicy`, `dm.*`, `guilds.*`, `guilds.*.channels.*`
|
- policy: `groupPolicy`, `dm.*`, `guilds.*`, `guilds.*.channels.*`
|
||||||
- command: `commands.native`, `commands.useAccessGroups`, `configWrites`, `slashCommand.*`
|
- command: `commands.native`, `commands.useAccessGroups`, `configWrites`, `slashCommand.*`
|
||||||
|
- event queue: `eventQueue.listenerTimeout` (canonical), `eventQueue.maxQueueSize`, `eventQueue.maxConcurrency`
|
||||||
- reply/history: `replyToMode`, `historyLimit`, `dmHistoryLimit`, `dms.*.historyLimit`
|
- reply/history: `replyToMode`, `historyLimit`, `dmHistoryLimit`, `dms.*.historyLimit`
|
||||||
- delivery: `textChunkLimit`, `chunkMode`, `maxLinesPerMessage`
|
- delivery: `textChunkLimit`, `chunkMode`, `maxLinesPerMessage`
|
||||||
- streaming: `streaming` (legacy alias: `streamMode`), `draftChunk`, `blockStreaming`, `blockStreamingCoalesce`
|
- streaming: `streaming` (legacy alias: `streamMode`), `draftChunk`, `blockStreaming`, `blockStreamingCoalesce`
|
||||||
|
|||||||
@@ -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.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.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.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":
|
"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.",
|
"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":
|
"channels.discord.threadBindings.idleHours":
|
||||||
|
|||||||
@@ -703,6 +703,9 @@ export const FIELD_LABELS: Record<string, string> = {
|
|||||||
"channels.discord.retry.maxDelayMs": "Discord Retry Max Delay (ms)",
|
"channels.discord.retry.maxDelayMs": "Discord Retry Max Delay (ms)",
|
||||||
"channels.discord.retry.jitter": "Discord Retry Jitter",
|
"channels.discord.retry.jitter": "Discord Retry Jitter",
|
||||||
"channels.discord.maxLinesPerMessage": "Discord Max Lines Per Message",
|
"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.enabled": "Discord Thread Binding Enabled",
|
||||||
"channels.discord.threadBindings.idleHours": "Discord Thread Binding Idle Timeout (hours)",
|
"channels.discord.threadBindings.idleHours": "Discord Thread Binding Idle Timeout (hours)",
|
||||||
"channels.discord.threadBindings.maxAgeHours": "Discord Thread Binding Max Age (hours)",
|
"channels.discord.threadBindings.maxAgeHours": "Discord Thread Binding Max Age (hours)",
|
||||||
|
|||||||
Reference in New Issue
Block a user