trading-system-docs/a5/scripts/a5_heartbeat_tick.sh
Red Queen 968094498a feat(a5): Controlled Heartbeat & Resume v1
- a5/rq_heartbeat.py: HeartbeatStore + Heartbeat.run_tick (thin scheduler/resume layer)
- a5/rq_heartbeat_cli.py: status/tick/enable/disable/resume/approve/deny/priority
- a5/test_a5.py: 31 deterministic tests (tick-lock incl. ownership, eligibility, kill-switch, approval, circuit, git-conflict, bounded single A4)
- a5/DESIGN.md, a5/README.md, a5/scripts/a5_heartbeat_tick.sh
- a2/rq_mission.py: add read-only mission_list() for A5 enumeration (additive)
- Fresh checker: PASS after tick-lock ownership repair (Regressionschutz lock_owned)
2026-08-24 23:04:16 +00:00

14 lines
665 B
Bash
Executable file

#!/usr/bin/env bash
# A5 E2E: EIN bounded Heartbeat-Tick (synthetische Mission, isolierte DBs).
# Wird vom nativen Hermes Cron im no_agent-Modus aufgerufen. Fuehrt KEINEN
# Dauer-Loop aus — ein Tick, Ergebnis auf stdout, EXIT.
set -uo pipefail
REPO="/opt/data/forgejo/trading-system-docs"
export RQ_DATA="/opt/data/a5_e2e"
cd "$REPO"
out=$(python3 a5/rq_heartbeat_cli.py --execute tick --mission E2E-1 2>&1)
code=$(echo "$out" | python3 -c 'import sys,json; d=json.load(sys.stdin); print(d.get("code","?")); print("exit_reason:", d.get("exit_reason","")); print("mission:", d.get("mission_id",""))')
echo "A5-HEARTBEAT-TICK-RESULT $code"
echo "$code" | tail -3