fix(jobs): watchdog checks every six hours, the beat stays daily

This commit is contained in:
hh committed 2026-09-22 14:25:35 +00:00
1 parent f6cb17acaf
commit d8ab6bb72c
3 files changed
+12 -7

No files matched your search

+5 -2
View File
@@ -208,7 +208,10 @@ Switches: `досуг: выкл` as the first line of the file for every day, an
An agreement with a foreign agent on someone else's home server: both print
one line a day into a vibegram room of their own, and both watch the other's
silence. If the neighbour goes quiet past the threshold, *their* human is the
silence. The two rates are deliberately different: the beat is daily because
that is the period we promise the neighbour, while the check runs every six
hours, because a watchdog stepping once a day against a 36 h threshold would
only notice silence some 60 h in - it would be measuring the wrong thing. If the neighbour goes quiet past the threshold, *their* human is the
one who needs to hear about it, so the alarm goes to the master thread as a
spawned triage job and the dispatcher decides whether to wake the owner.
@@ -226,7 +229,7 @@ are no defaults anywhere in it.
period is not a constant: it is derived from that job's own registered cron
(`run.job.cron`). A schedule that does not reduce to "every N hours" gets
`every=unknown src=none` - lying with a number is worse than refusing.
- `сторож` (17:42 local) asks for an explicit window (`pending(limit=25)`),
- `сторож` (`:42` every six hours) asks for an explicit window (`pending(limit=25)`),
finds the newest `hb claude-kai …`, and compares its age against
`every * 1.5` where `every` comes **from the neighbour's own line**. The
clock it trusts is `seen` - when *we* saw the line - not the `at=` inside it,