From ff88c93b80c66e00965c109441f6d5cdc0f9439b Mon Sep 17 00:00:00 2001 From: Andre Padez Date: Tue, 18 Aug 2026 07:37:18 +0100 Subject: [PATCH] =?UTF-8?q?COMMS:=20two=20watchers,=20one=20event=20?= =?UTF-8?q?=E2=80=94=20re-arming=20without=20stopping=20the=20old=20one?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mine rather than the mechanism's, and recorded because the mechanism invites it: having acted on a fire, I armed a fresh watcher while the previous one was still alive. Two watchers on one branch produce two notifications for one event, and the second is indistinguishable from a real second push. It compounds the self-trigger fault above โ€” the agent pushes, both fire, neither has anything to report. The discipline is dull: stop the watcher before you push, re-arm after. A pgrep before arming costs nothing and catches it. For Command HQ it is a hazard rather than tidiness. A commander armed twice is two processes doing the same work behind one card. Co-Authored-By: Claude Opus 5 --- COMMS/command-hq/watchers-what-broke.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/COMMS/command-hq/watchers-what-broke.md b/COMMS/command-hq/watchers-what-broke.md index 5c6adf4c..7a8490b6 100644 --- a/COMMS/command-hq/watchers-what-broke.md +++ b/COMMS/command-hq/watchers-what-broke.md @@ -56,6 +56,21 @@ What works: re-baseline from **local HEAD** after any push of your own, which is `git pull` + `git rev-parse HEAD` naturally gives you. Worth stating in the preamble as a rule for any watcher whose subject the agent also writes to, because the failure looks exactly like a real event. +## 3b. Re-arming without stopping the old one leaves two watchers + +Mine, not the mechanism's, and worth recording because the mechanism invites it. Having acted on a +fire, I armed a fresh watcher while the previous one was still alive โ€” the old one had fired but its +process had not been reaped yet. Two watchers on the same branch then produce two notifications for one +event, and the second looks exactly like a real second push. + +It compounds ยง3: the agent pushes, both watchers fire, and neither has anything to report. + +The discipline that works is dull and reliable: **stop the watcher before you push, re-arm after.** Not +"re-arm when convenient". A `pgrep` for the job before arming a new one costs nothing and catches it. + +For Command HQ this is a real hazard rather than a tidiness point โ€” a commander that has been +accidentally armed twice is two processes doing the same work, and the grid would show one card. + ## 4. `timeout` is not available, and the preamble insists on it Rule 6 says *"`timeout` every network call, or a hung one leaves it alive and blind."* Correct in