Files
rose-ash/scripts/loop-release.sh
giles e67852ca96 Scheduled-loop infra: lockfile guard + release + fire log
- scripts/loop-guard.sh — atomic claim with 30-min staleness overtake,
  appends NDJSON event to .loop-logs/<lang>.ndjson. Exit 0 = go ahead,
  exit 1 = another run is live, skip.
- scripts/loop-release.sh — clear lock, log release with exit status.

Intended for 7 per-language /schedule routines firing every 15 minutes.
Lock detects overlap so tight cadences are safe; stale lock (>30 min)
overtaken automatically if an agent dies mid-run.
2026-04-24 16:39:17 +00:00

14 lines
383 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
LANG=${1:?usage: loop-release.sh <lang>}
STATUS=${2:-done}
ROOT=$(cd "$(dirname "$0")/.." && pwd)
cd "$ROOT"
LOCK=".loop-locks/$LANG.claim"
LOG=".loop-logs/$LANG.ndjson"
ISO=$(date -Iseconds)
rm -f "$LOCK"
printf '{"ts":"%s","lang":"%s","status":"released","exit":"%s"}\n' "$ISO" "$LANG" "$STATUS" >> "$LOG"
echo "OK: $LANG released ($STATUS)"