From 273e5ee53f1a247a1d81091611b0c08f86606bbd Mon Sep 17 00:00:00 2001 From: openhands Date: Fri, 20 Mar 2026 20:14:15 +0000 Subject: [PATCH] =?UTF-8?q?supervisor:=20learned=20=E2=80=94=20False=20Pos?= =?UTF-8?q?itive:=20Shared=20Status=20File=20Causes=20Giant=20Age=20(29M+?= =?UTF-8?q?=20min)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- supervisor/best-practices/dev-agent.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/supervisor/best-practices/dev-agent.md b/supervisor/best-practices/dev-agent.md index ce0f472..3490a39 100644 --- a/supervisor/best-practices/dev-agent.md +++ b/supervisor/best-practices/dev-agent.md @@ -53,3 +53,8 @@ The supervisor-poll alert 'status unchanged for Nmin' is a false positive for co ### False Positive: 'Waiting for CI + Review' Alert The 'status unchanged for Nmin' alert is also a false positive when status is 'waiting for CI + review on PR #N (round R)'. This is an intentional sleep/poll loop — the agent is waiting for CI to pass and then for review-poll to post a review. CI can take 20–40 minutes; review follows. Do NOT restart the agent. Confirm by checking: (1) agent PID is alive, (2) CI commit status via `codeberg_api GET /commits//status`, (3) review-poll log shows it will pick up the PR on next cycle. + +### False Positive: Shared Status File Causes Giant Age (29M+ min) +When the status file `/tmp/dev-agent-status` doesn't exist, `stat -c %Y` fails and the supervisor falls back to epoch 0. The computed age is then `NOW_EPOCH/60 ≈ 29,567,290 min`, which is unmistakably a false positive. +Root cause: the status file is not per-project (tracked as disinto issue #423). It can be missing if: (1) the agent has not written to it yet, (2) cleanup ran early, or (3) another project's cleanup deleted it. +Fix: confirm the agent PID is alive and the tmux session shows active work, then touch the file: `printf '[%s] dev-agent #NNN: ()\n' "$(date -u '+%Y-%m-%d %H:%M:%S UTC')" > /tmp/dev-agent-status`. This clears the alert without restarting anything.