docs + nit: busy_ack_enabled follow-ups

- Move the disabled-ack guard above the debounce so we don't stamp
  _busy_ack_ts[session_key] when no ack was actually sent. Harmless
  (never read when disabled) but cosmetically off.
- Document display.busy_ack_enabled in user-guide/messaging/index.md
  and HERMES_GATEWAY_BUSY_ACK_ENABLED in reference/environment-variables.md.
- Add JezzaHehn to scripts/release.py AUTHOR_MAP for contributor credit.

Follow-up to #17491 (Jezza Hehn).
This commit is contained in:
Teknium
2026-04-30 20:19:03 -07:00
parent 2b512cbca4
commit 01cc701e54
4 changed files with 13 additions and 6 deletions

View File

@@ -1963,6 +1963,14 @@ class GatewayRunner:
except Exception:
pass # don't let interrupt failure block the ack
# Check if busy ack is disabled — skip sending but still process the input.
# Placed before debounce so we don't stamp a "last ack" timestamp that was
# never actually delivered.
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
# Debounce: only send an acknowledgment once every 30 seconds per session
# to avoid spamming the user when they send multiple messages quickly
_BUSY_ACK_COOLDOWN = 30
@@ -1973,12 +1981,6 @@ 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: