diff --git a/services/albok-nemi/README.md b/services/albok-nemi/README.md index b0f43c8..df3e682 100644 --- a/services/albok-nemi/README.md +++ b/services/albok-nemi/README.md @@ -26,13 +26,15 @@ sixth of the interval). An unchanged object costs 0.042 s to submit, in batches Each run is its own ingest run id, and a full walk tombstones whatever the other run did not send. The timer gives this for free: it never starts a oneshot that is still active. **For a manual walk, use -`systemctl --user start albok-nemi.service`**, which joins or waits on the running one. Never run a bare -`uv run nemi run` alongside the timer. +`systemctl --user start albok-nemi.service`**, which joins or waits on the running one. Since 2026-10-03 0600 nemi +also takes a non-blocking `flock` on `/run.lock` for the whole run, so a second run exits 1 and names the +lock. If a hand-started run holds the lock when the timer fires, the unit exits 1 and OnFailure mails infra-ops +with that message. That mail is benign. ## Notes - It runs albok-dev's **working tree**, not a pinned release. A broken edit there fails the next walk, and OnFailure mails infra-ops. Forward that to albok-dev. -- ⚠ **The reports grow without limit:** about 2.3 MB per run, roughly 55 MB a day. Retention is albok-dev's to add - in nemi (flagged 2026-10-03). Until then, watch nh3-dev's root disk. +- **Reports:** since 2026-10-03 0600 nemi keeps the newest 48 run reports (two days, at most about 100 MB) and + prunes the rest on every write. `eval-*.json` files are measurements and are kept. - Uninstall: `systemctl --user disable --now albok-nemi.timer`, then remove the two units and the `.d` dir.