last_tick is epoch seconds while opencode's call start times are epoch milliseconds, so every call ever made looked "since the last tick". Each tick re-judged the whole session history: a dry run against live opencode triggered three alerts (two critical) for sessions idle since the night before, which could never resolve because their history never changes. The tests hid it by stubbing call times in seconds. They now use milliseconds, and the idle-session test carries a 60-call loop that would flag if judged, plus the tables a full tick reads, so a swallowed crash can no longer pass as "no alert". It fails without this fix. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N9biTbFC63yDfYfUsZmhgd
44 KiB
44 KiB