When the MediaWiki MCP server returned HTTP 400, the transport stream
broke silently and call_tool hung forever waiting for a response that
would never come. This caused the bot to silently drop Slack messages.
- Add 90s timeout to _do_call so hung MCP calls fail instead of blocking
- Broaden call_tool exception handler from transport-only errors to all
exceptions, so HTTP errors and McpError also trigger reconnect+retry
- Log failures in the Slack error handler instead of silently swallowing
DeepSeek was defaulting to wiki searches for stats questions instead of
using the sports database. Strengthen the system prompt to always prefer
database tools for quantitative data and only fall back to wiki for lore.
Move mediawiki-mcp-golly, wiki-golly-bot, and golly-personas-bot into
their own compose file so golly services can be managed independently
from the core bots.
* feature/personas-council: (50 commits)
update nicknames, improve sdba to only use shortnames
wikicruft cleanup (abq, ea, lbfb, ff)
wikicruft cleanup (atl, fff, fwpt)
fix timeout/stale connection issue with golly persona bot
wikicruft cleanup (deco, sfbs, sge)
wikicruft cleanup (bb, osha, sac)
fix wiki-golly permissions: flatten credential format in MCP config
improve tb persona
improve ss persona
improve sfbs persona
improve sac persona
improve milf persona
improve gjc persona
incorporate bpt into fwpt
improve slc persona
improve ff persona
improve orl persona
improve mw persona
improve lil persona
improve lbfb persona
...
The handle_mention handler was awaiting the full multi-turn DeepSeek
loop inline, blocking the event loop for minutes per request. Under
burst load (6+ concurrent mentions), this starved the websocket
keepalive and caused the Slack connection to silently drop.
Now the heavy work runs via asyncio.create_task() so the handler
returns immediately and the event loop stays responsive to pings.
The golly MCP config had username/password nested inside
credentials.botPassword, which the mediawiki-mcp-server doesn't
recognize — causing unauthenticated requests and permission errors.
Flatten to match the working charlesreid1 config format.