Local-first absence detection

Prove the run.
Notice the gap.

Signed start and finish receipts meet an expected UTC calendar. When scheduled work never arrives, the silence becomes evidence.

Seven geometric run orbits with one missing receipt highlighted by a vermilion locator.
Expected slots / signed evidence / one noticed absence

A week, accounted for

The missing run is not an empty log line.

Choose a slot to inspect its evidence. Or load JSON from srr check --json; parsing happens only in this browser, even offline.

database-backup · 02:00 UTC7 slots · 2 exceptions

Demo evidence is shown. Your local file never leaves the browser.

A deliberately small loop

Expectation → receipt → proof.

01

Declare the promise

Add a familiar five-field cron schedule and grace window. Scheduled Run Receipts never runs the job; it watches the promise.

02

Sign what happened

Record locally or issue portable HMAC-signed start and finish tokens. Per-job keys limit the blast radius.

03

Keep the evidence

Detect missing, late, failed, running, and overlapping work. Export a script-free weekly ledger with its own digest.

One binary. No account.

Put proof beside the job.

Build with stable Rust. State is an owner-only local JSON file; no daemon, database server, hosted endpoint, or telemetry is required.

UTC / LOCAL STATE / EXIT CODES
$ cargo install --git https://github.com/B-Divyesh/sf-scheduled-run-receipts
$ srr init
$ srr job add database-backup --schedule "0 2 * * *" --grace 15m
$ srr check --since 7d

Built for small operations

Evidence without another platform.

Local by default

Schedules, keys, run metadata, and reports stay on machines you control.

Replay resistant

Short-lived acceptance and retained nonces stop a captured receipt being counted twice.

Portable proof

The weekly HTML ledger opens offline, prints cleanly, and includes a SHA-256 evidence digest.