S3 review: overview pool-cap check, membership re-read on pool_full (server-26#225)

- guild_overview offered an invite link to a full pool bot whenever it was
  in ANY server (`if member` tested the non-empty guild_ids list, not
  membership of this guild). Now: in this guild, or invitable.
- start_stream re-reads membership once on pool_full as it already does on
  no_bot_in_guild, so a full pool bot an admin just invited by hand is found.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Logan Cusano
2026-10-05 02:30:51 -04:00
co-authored by Claude Opus 5.5
parent 2c2cf9d9be
commit 8bdcfcae9c
3 changed files with 28 additions and 2 deletions
+1 -1
View File
@@ -626,7 +626,7 @@ async def _start_locked(*, org_id: str, guild_id: str, channel_id: str, system_i
res = await leases.lease_for_stream(stream_id, node_id=node["node_id"], org_id=org_id,
preferred_token_id=preferred_token_id, stream_fields=fields,
soft_preferred_token_id=soft_pref, perms=perms)
if not res.ok and res.error == "no_bot_in_guild" and not refreshed:
if not res.ok and res.error in ("no_bot_in_guild", "pool_full") and not refreshed:
# Membership is cached on the token doc; someone may have just
# invited a bot. Re-read it from Discord once, then retry.
refreshed = True