diff --git a/gateway/run.py b/gateway/run.py index 4890ebe66f9..acf712e484b 100644 --- a/gateway/run.py +++ b/gateway/run.py @@ -381,6 +381,8 @@ if _config_path.exists(): if _display_cfg and isinstance(_display_cfg, dict): if "busy_input_mode" in _display_cfg and "HERMES_GATEWAY_BUSY_INPUT_MODE" not in os.environ: os.environ["HERMES_GATEWAY_BUSY_INPUT_MODE"] = str(_display_cfg["busy_input_mode"]) + if "busy_ack_enabled" in _display_cfg and "HERMES_GATEWAY_BUSY_ACK_ENABLED" not in os.environ: + os.environ["HERMES_GATEWAY_BUSY_ACK_ENABLED"] = str(_display_cfg["busy_ack_enabled"]) # Timezone: bridge config.yaml → HERMES_TIMEZONE env var. # HERMES_TIMEZONE from .env takes precedence (already in os.environ). _tz_cfg = _cfg.get("timezone", "") @@ -1971,6 +1973,12 @@ class GatewayRunner: self._busy_ack_ts[session_key] = now + # Check if busy ack is disabled — skip sending but still process the input + busy_ack_enabled = os.environ.get("HERMES_GATEWAY_BUSY_ACK_ENABLED", "true").lower() == "true" + if not busy_ack_enabled: + logger.debug("Busy ack suppressed for session %s", session_key) + return True # input still processed, just no ack sent + # Build a status-rich acknowledgment status_parts = [] if running_agent and running_agent is not _AGENT_PENDING_SENTINEL: