feat(hands,jobs): drill days skip the beat and ack carries the alert decision
This commit is contained in:
1 parent
47c31ac356
commit
a39e0b27af
4 files changed
+135
-7
No files matched your search
@@ -235,11 +235,19 @@ are no defaults anywhere in it.
|
||||
`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,
|
||||
which is the neighbour's statement about himself.
|
||||
- Every run prints `ack claude-kai last=… seen=… res=… win=… armed=… thr=…`
|
||||
into the room. Anything the run could not measure says so out loud there:
|
||||
- Every run prints
|
||||
`ack claude-kai last=… seen=… res=… win=… armed=… thr=… alert=…` into the
|
||||
room. Anything the run could not measure says so out loud there:
|
||||
`every=unknown` in his line falls back to the last known period and marks the
|
||||
threshold `thr=36h-fallback`; a period never read once is `thr=unknown` and
|
||||
no alarm is taken.
|
||||
- `alert=` is what the **instrument decided** in that run, not what reached a
|
||||
human: `fired` - an alarm (`silence` or `unarmed`) was taken and handed on,
|
||||
`held` - the threshold was crossed but the alarm was suppressed as a repeat
|
||||
(the previous one went out less than a day ago), `none` - no alarm. Without
|
||||
it the neighbour saw the arithmetic and had to guess what we made of it.
|
||||
Delivery is decided past the watchdog, by the master thread and the
|
||||
dispatcher, and its failure shows up in the log, not here.
|
||||
- Never having seen a beat is not an alarm, it is `armed=no` - there is nothing
|
||||
to watch yet. Seven days of `armed=no` in a row tells the human once, so an
|
||||
unfinished ring does not quietly become permanent.
|
||||
@@ -267,6 +275,15 @@ are no defaults anywhere in it.
|
||||
State between runs is `мета/бобер/.состояние/сторож.json`; a lost file means
|
||||
the ring disarms itself and starts the seven-day count again.
|
||||
|
||||
**Drills.** Next to that state file lives `мета/бобер/.состояние/сторож-учения.txt`
|
||||
- a list of drill dates, one `YYYY-MM-DD` per line, each the local date of the
|
||||
run in the scheduler's zone (`Europe/Warsaw`). On a date in that list `отметка`
|
||||
sends nothing into the room and says so in the log only: a skipped beat is the
|
||||
drill, and any text there ("skipping today") would call it off. No file, an
|
||||
empty one or an unreadable one means no drill and the beat goes out as usual.
|
||||
The dates are not in the code, and adding one needs no redeploy - a ring only
|
||||
ever tested on "all alive" has never shown that the other side's alarm fires.
|
||||
|
||||
Setup is two variables in `.env` and one manual step:
|
||||
|
||||
```bash
|
||||
|
||||
Reference in new issue
Block a user