diff --git a/src/praisonai-bot/praisonai_bot/gateway/server.py b/src/praisonai-bot/praisonai_bot/gateway/server.py index c097e8035..8a4d16eef 100644 --- a/src/praisonai-bot/praisonai_bot/gateway/server.py +++ b/src/praisonai-bot/praisonai_bot/gateway/server.py @@ -6200,7 +6200,7 @@ def _resolve(obj): elif not isinstance(channels_cfg, dict): errors.append("'channels' must be a non-empty dictionary") else: - _tokenless = {"email", "agentmail", "signal"} + _tokenless = {"email", "agentmail", "signal", "local"} for cname, cdef in channels_cfg.items(): if not isinstance(cdef, dict): continue @@ -6752,8 +6752,9 @@ async def start_channels(self, channels_cfg: Dict[str, Dict[str, Any]]) -> None: wa_web_mode = (channel_type == "whatsapp" and ch_cfg.get("mode", "cloud").lower().strip() == "web") # Email/AgentMail use env vars for tokens; Signal links a device via - # a local bridge — none require a token in YAML. - is_email_platform = channel_type in ("email", "agentmail", "signal") + # a local bridge; ``local`` is the token-free terminal channel — + # none require a token in YAML. + is_email_platform = channel_type in ("email", "agentmail", "signal", "local") if not token and not wa_web_mode and not is_email_platform: logger.warning(f"No token for channel '{channel_name}', skipping") # Issue #3159: keep the skipped channel queryable as degraded so @@ -8269,8 +8270,9 @@ async def _start_single_channel(self, channel_name: str, ch_cfg: Dict[str, Any]) wa_web_mode = (channel_type == "whatsapp" and ch_cfg.get("mode", "cloud").lower().strip() == "web") # Email/AgentMail use env vars for tokens; Signal links a device via a - # local bridge — none require a token in YAML. - is_email_platform = channel_type in ("email", "agentmail", "signal") + # local bridge; ``local`` is the token-free terminal channel — none + # require a token in YAML. + is_email_platform = channel_type in ("email", "agentmail", "signal", "local") if not token and not wa_web_mode and not is_email_platform: logger.warning(f"No token for channel '{channel_name}', skipping")