hermes-agent/plugins/platforms
Brin Shadewater e6f1d613b6 fix(discord): leave voice channels before cancelling the bot task
`DiscordAdapter.disconnect()` cancelled the bot task before tearing down voice
clients. `leave_voice_channel()` ends in `await vc.disconnect()`, and discord.py
sends a voice state update over the main gateway websocket and then waits for the
voice socket to close. The bot task is the loop running that gateway connection,
so cancelling it first left the handshake with no transport: it could never
complete and blocked until the caller's shutdown timeout fired.

The effect was a fixed ~5s penalty on every shutdown with a voice connection
open, ending in "discord disconnect timed out after 5.0s - forcing continue",
with the voice disconnect abandoned rather than completed.

Measured on a live gateway with a voice connection open in both cases:

  before: timed out after 5.0s, all adapters disconnected at +5.29s
  after:  discord disconnected (0.12s), all adapters disconnected at +0.46s

Moving the voice-cleanup loop above `_cancel_bot_task()` preserves the
zombie-client protection its comment describes: the bot task is still cancelled
before `client.close()`, just after voice teardown rather than before it. Voice
teardown is the one step that still requires a live gateway.

Adds a regression test asserting the ordering. It fails on the previous ordering
at index 1 with `cancel_bot_task != leave_voice_channel:111`.

Fixes #76044
2026-08-03 22:47:14 +05:30
..
a2a docs(a2a): website docs page + canonical agent-card.json path in prose 2026-08-02 15:10:15 -07:00
buzz
dingtalk
discord fix(discord): leave voice channels before cancelling the bot task 2026-08-03 22:47:14 +05:30
email
feishu fix(feishu): test SDK globals by None-ness, not globals() membership 2026-08-03 17:24:11 +05:30
google_chat
homeassistant
irc
line fix(platforms/line): fix broken import of non-existent config functions 2026-08-03 16:54:02 +05:30
matrix fix(matrix): pickle key from resolved device ID, skip migration after reset, cache enc info 2026-08-03 10:03:35 +05:30
mattermost
ntfy
photon
raft
simplex
slack
sms
teams
telegram
wecom
whatsapp