fix: discord auto presence health signal (#33277) (thanks @thewilloftheshadow) (#33277)

This commit is contained in:
Shadow
2026-03-03 11:20:59 -06:00
committed by GitHub
parent 3d998828b9
commit e28ff1215c
13 changed files with 690 additions and 3 deletions

View File

@@ -786,7 +786,7 @@ Default slash command settings:
</Accordion>
<Accordion title="Presence configuration">
Presence updates are applied only when you set a status or activity field.
Presence updates are applied when you set a status or activity field, or when you enable auto presence.
Status only example:
@@ -836,6 +836,29 @@ Default slash command settings:
- 4: Custom (uses the activity text as the status state; emoji is optional)
- 5: Competing
Auto presence example (runtime health signal):
```json5
{
channels: {
discord: {
autoPresence: {
enabled: true,
intervalMs: 30000,
minUpdateIntervalMs: 15000,
exhaustedText: "token exhausted",
},
},
},
}
```
Auto presence maps runtime availability to Discord status: healthy => online, degraded or unknown => idle, exhausted or unavailable => dnd. Optional text overrides:
- `autoPresence.healthyText`
- `autoPresence.degradedText`
- `autoPresence.exhaustedText` (supports `{reason}` placeholder)
</Accordion>
<Accordion title="Exec approvals in Discord">

View File

@@ -317,6 +317,7 @@ WhatsApp runs through the gateway's web channel (Baileys Web). It starts automat
- `channels.discord.voice.daveEncryption` and `channels.discord.voice.decryptionFailureTolerance` pass through to `@discordjs/voice` DAVE options (`true` and `24` by default).
- OpenClaw additionally attempts voice receive recovery by leaving/rejoining a voice session after repeated decrypt failures.
- `channels.discord.streaming` is the canonical stream mode key. Legacy `streamMode` and boolean `streaming` values are auto-migrated.
- `channels.discord.autoPresence` maps runtime availability to bot presence (healthy => online, degraded => idle, exhausted => dnd) and allows optional status text overrides.
- `channels.discord.dangerouslyAllowNameMatching` re-enables mutable name/tag matching (break-glass compatibility mode).
**Reaction notification modes:** `off` (none), `own` (bot's messages, default), `all` (all messages), `allowlist` (from `guilds.<id>.users` on all messages).