From 91a2f0fb62dc102d5829c337b58bb95ef18567f8 Mon Sep 17 00:00:00 2001 From: Hans Heinemann Date: Sun, 15 Mar 2026 22:58:50 -0400 Subject: [PATCH] fix(gh-monitor): filter own comments to prevent loops; switch delivery to announce --- tools/gh-monitor/config/watched.yaml | 1 + tools/gh-monitor/poll.py | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/tools/gh-monitor/config/watched.yaml b/tools/gh-monitor/config/watched.yaml index 4cacafc..5e250fe 100644 --- a/tools/gh-monitor/config/watched.yaml +++ b/tools/gh-monitor/config/watched.yaml @@ -6,3 +6,4 @@ repos: - review_comment - issue_comment - pr_closed + ignore_actor: hansheinemann # skip my own comments to prevent feedback loops diff --git a/tools/gh-monitor/poll.py b/tools/gh-monitor/poll.py index 8a0d910..9123fb1 100644 --- a/tools/gh-monitor/poll.py +++ b/tools/gh-monitor/poll.py @@ -191,7 +191,7 @@ def dispatch_agent(repo_slug: str, pr: dict, event: dict) -> None: "--session", "isolated", "--message", message, "--delete-after-run", - "--no-deliver", + "--announce", "--timeout-seconds", "300", ], capture_output=True, @@ -261,6 +261,8 @@ def poll_repo(repo_cfg: dict, state: dict) -> dict: all_new_events: list[tuple[dict, dict]] = [] # (pr, event) + my_login = repo_cfg.get("ignore_actor", "hansheinemann") + for pr in open_prs: pr_number = pr["number"] fetchers = [] @@ -276,6 +278,11 @@ def poll_repo(repo_cfg: dict, state: dict) -> dict: events = fetcher(owner, repo, pr_number) new = new_events_since(events, cursor, seen_ids) for event in new: + if event.get("actor") == my_login: + log.debug("Skipping own event from %s", my_login) + if event.get("id"): + seen_ids.add(event["id"]) + continue all_new_events.append((pr, event)) except GHAPIError as e: log.error("[%s] PR #%d fetch error: %s", repo_slug, pr_number, e)