From 997f73af1f8ed60e16c34a2c287797d91d43b919 Mon Sep 17 00:00:00 2001 From: mfowler Date: Tue, 7 Jul 2026 20:02:05 +0000 Subject: [PATCH] =?UTF-8?q?fix(watchdog):=20don't=20treat=20idle=20footer'?= =?UTF-8?q?s=20'=C2=B7=20N=20shells'=20as=20active=20(default=20active=5Fr?= =?UTF-8?q?e)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The default active_re matched a bare middle-dot+number, which also matches the TUI idle footer's '· 3 shells' / '· 1 shell still running'. Any background shell then read as ACTIVE, masking a genuine idle from the stall detector — the agent hung at an empty/stranded prompt and never rebooted. Drop the timer token; genuine activity is 'esc to interrupt'/'Running tool' plus the log-recently-touched grace. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01UWTdUq2bsic7JZGqJp3nD6 --- agents.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agents.py b/agents.py index 3c3df63..bc6a414 100755 --- a/agents.py +++ b/agents.py @@ -1262,7 +1262,7 @@ prompt_delivery = "arg" process_name = "claude" submit_key = "Enter" stall_idle = 300 -active_re = "esc to interrupt|Running tool|\\\\u00b7 \\\\d+" +active_re = "esc to interrupt|Running tool" limit_re = "usage limit|limit reached|reached your .*limit" [[agent]]