ops(scripts): dispatch, queue gating, heartbeat, quota probe
dispatch-turn.sh (headless turn launcher with TURN_MODEL routing), queue-after.sh (serial gate chain + quota-wall guard), pmo-heartbeat.sh (PMO wake loop), quota-probe-then-chain.sh (post-wall relaunch).
This commit is contained in:
Executable
+34
@@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env bash
|
||||
# work-chain.sh <chain-name> <task-file>... — sequential overnight work driver.
|
||||
# Runs dispatch-turn.sh per TASK in order. Skips tasks already REPORTed.
|
||||
# Stops on first failure; status -> ~/.coordinate/logs/<chain-name>.status
|
||||
set -uo pipefail
|
||||
CHAIN=${1:?chain name}; shift
|
||||
LOGDIR="$HOME/.coordinate/logs"
|
||||
STATUS="$LOGDIR/$CHAIN.status"
|
||||
inbox="$HOME/.coordinate/inbox-pmo"
|
||||
|
||||
echo "$(date -Is) chain start: $*" > "$STATUS"
|
||||
for task in "$@"; do
|
||||
slug=$(basename "$task" .md | sed 's/^TASK-[0-9]*-[0-9]*-//')
|
||||
if ls "$inbox"/REPORT-*"$slug"* >/dev/null 2>&1; then
|
||||
echo "$(date -Is) SKIP $slug (reported)" >> "$STATUS"; continue
|
||||
fi
|
||||
if [ ! -f "$task" ]; then
|
||||
echo "$(date -Is) FAIL $slug (task file missing) — chain halted" >> "$STATUS"
|
||||
screen -S RCEO-PMO -X stuff "CHAIN $CHAIN HALTED missing task $slug.\r"
|
||||
exit 2
|
||||
fi
|
||||
echo "$(date -Is) RUN $slug" >> "$STATUS"
|
||||
bash "$HOME/.coordinate/scripts/dispatch-turn.sh" "$CHAIN-$slug" "$task" \
|
||||
>> "$LOGDIR/$CHAIN-$slug.log" 2>&1
|
||||
rc=$?
|
||||
if [ $rc -ne 0 ]; then
|
||||
echo "$(date -Is) FAIL $slug rc=$rc — chain halted" >> "$STATUS"
|
||||
screen -S RCEO-PMO -X stuff "CHAIN $CHAIN HALTED at $slug - read $STATUS.\r"
|
||||
exit $rc
|
||||
fi
|
||||
echo "$(date -Is) OK $slug" >> "$STATUS"
|
||||
done
|
||||
echo "$(date -Is) chain COMPLETE" >> "$STATUS"
|
||||
screen -S RCEO-PMO -X stuff "CHAIN $CHAIN COMPLETE - read status + inbox-pmo.\r"
|
||||
Reference in New Issue
Block a user