From 2f167a2b846082f347bc87792c3e5adeaa13ba72 Mon Sep 17 00:00:00 2001 From: teknium1 <127238744+teknium1@users.noreply.github.com> Date: Wed, 1 Jul 2026 04:41:43 -0700 Subject: [PATCH] fix: comment accuracy + AUTHOR_MAP for salvaged PR #50204 - Correct the exit-75 comment: Hermes-generated units set StartLimitIntervalSec=0 (rate limiting disabled), so StartLimitBurst does not bound loops. The real bound is that genuine crashes exit non-zero-but-not-75, and RestartForceExitStatus=75 only whitelists the planned code. - Add randomuser2026x AUTHOR_MAP entry (CI blocks unmapped emails). --- gateway/run.py | 8 ++++++-- scripts/release.py | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gateway/run.py b/gateway/run.py index 3f0dc4ff8..a42bd7c2b 100644 --- a/gateway/run.py +++ b/gateway/run.py @@ -7901,8 +7901,12 @@ class GatewayRunner(GatewayAuthorizationMixin, GatewayKanbanWatchersMixin, Gatew # failure and revive the unit via ``Restart=on-failure``, # regardless of whether the helper survived. Without # this, a clean exit (0) on Linux left the gateway dead - # until someone rebooted the host. ``StartLimitBurst`` - # in the unit file still bounds accidental loops. + # until someone rebooted the host. Only the planned code + # (75) is whitelisted via ``RestartForceExitStatus``; a + # genuine crash exits non-zero-but-not-75, so real crash + # loops are still governed by the unit's normal + # ``Restart=``/``RestartSec`` (and any StartLimit the + # operator sets) rather than force-restarted here. self._exit_code = GATEWAY_SERVICE_RESTART_EXIT_CODE self._exit_reason = self._exit_reason or "Gateway restart requested" diff --git a/scripts/release.py b/scripts/release.py index dc6fd0bb2..867093811 100755 --- a/scripts/release.py +++ b/scripts/release.py @@ -47,6 +47,7 @@ ACP_REGISTRY_MANIFEST = REPO_ROOT / "acp_registry" / "agent.json" AUTHOR_MAP = { "ud@arubangles.com": "udatny", # PR #29433 salvage (subdirectory_hints: catch RuntimeError from Path.expanduser()/Path.home() so a literal ~ in tool-call args — e.g. LLM "~500-700" or ~unknownuser — can't escape the hint walker and crash the conversation loop) "brett@personalfinancelab.com": "brett539", # PR #49369 salvage (cap Telegram initialize() with asyncio.wait_for(HERMES_TELEGRAM_INIT_TIMEOUT, default 30s) per attempt so an unreachable fallback-IP connect chain can't block gateway startup indefinitely; add WARNING progress logs before DoH discovery and each connect attempt) + "randomuser2026x@proton.me": "randomuser2026x", # PR #50204 salvage (gateway /restart under systemd: probe both system + --user scope for MainPID instead of hardcoding --user; always exit 75 so RestartForceExitStatus=75 revives the unit under Restart=on-failure too, not just Restart=always) "mac-studio@Fabios-Mac-Studio.local": "valenteff", # PR #53277 salvage (macOS launchd reload: retry bootstrap via _launchctl_bootstrap until launchctl-list confirms registration or the restart-drain window elapses; retry TimeoutExpired not just CalledProcessError; log persistent orphans) "gary@bitcryptic.com": "bitcryptic-gw", # PR #53997 salvage (Matrix E2EE: resolve device_id via query_keys({mxid: []}) when whoami returns none; guard verification call sites so query_keys is never sent [null]; reset _device_id_unverified at connect() start; disconnect before reconnect) "hodlclone@gmail.com": "HODLCLONE", # PR #49351 salvage (Nous Portal token resilience: rotate refresh tokens write-through to the source auth store in profile mode, skip Nous fallback when no local token, sync gateway session model after fallback)