diff --git a/gateway/channel_directory.py b/gateway/channel_directory.py index f873414e..ae2beda9 100644 --- a/gateway/channel_directory.py +++ b/gateway/channel_directory.py @@ -76,10 +76,15 @@ def build_channel_directory(adapters: Dict[Any, Any]) -> Dict[str, Any]: except Exception as e: logger.warning("Channel directory: failed to build %s: %s", platform.value, e) - # Telegram, WhatsApp & Signal can't enumerate chats -- pull from session history - for plat_name in ("telegram", "whatsapp", "signal", "weixin", "email", "sms", "bluebubbles"): - if plat_name not in platforms: - platforms[plat_name] = _build_from_sessions(plat_name) + # Platforms that don't support direct channel enumeration get session-based + # discovery automatically. Skip infrastructure entries that aren't messaging + # platforms — everything else falls through to _build_from_sessions(). + _SKIP_SESSION_DISCOVERY = frozenset({"local", "api_server", "webhook"}) + for plat in Platform: + plat_name = plat.value + if plat_name in _SKIP_SESSION_DISCOVERY or plat_name in platforms: + continue + platforms[plat_name] = _build_from_sessions(plat_name) directory = { "updated_at": datetime.now().isoformat(),