v0.2.5
Durable escalations. No breaking changes.
Container image: docker pull ghcr.io/sylvester-francis/leash:0.2.5
Added: durable governance reactions
--webhook alone is best-effort. Add --reactions-db PATH (a store separate from --db) to make reactions crash-surviving: a stop or budget warning runs as a retried rerun workflow off the enforcement path (notify-webhook then run-command-hook), delivered at-least-once and deduplicated per run, and resumed after a restart. --on-event-exec CMD adds a local command hook with event data in LEASH_* env vars.
- leash ships no connectors - the command hook reaches yours. The day leash carries a Jira/Slack connector is the day it stops being small enough to audit.
- This is leash's first use of rerun's execution layer (nine symbols, no new dependency). The reaction workflow, its two sinks, the crash-resume path, and the non-blocking enqueue are all tested.
- One bounded gap at the async enqueue seam is documented (the enforcement path never waits): see ADR-0009.
Runnable demo: examples/demos/09-durable-reactions.sh. Reference command hook: examples/hooks/on-event.sh.
Verify
Every artifact is cosign-signed with SBOM and SLSA provenance; see docs/security-model.md.