#!/usr/bin/env bash
# observability: what CI/builds run where (GH runners+jobs, debian1 offload, laptop)
set -uo pipefail
REPO="${BB_REPO:-alexcodeplace/multideal}"
BOX="${BB_BOX:-user@debian1}"

echo "== GH runners ($REPO) =="
gh api "repos/$REPO/actions/runners" --jq '.runners[] | "\(.name)\t\(.status)\tbusy=\(.busy)"' 2>/dev/null || echo "gh unavailable"
echo "queued runs: $(gh api "repos/$REPO/actions/runs?status=queued&per_page=50" --jq '.workflow_runs | length' 2>/dev/null || echo '?')"

echo
echo "== recent GH jobs (last 5 runs) =="
for id in $(gh api "repos/$REPO/actions/runs?per_page=5" --jq '.workflow_runs[].id' 2>/dev/null); do
  gh api "repos/$REPO/actions/runs/$id/jobs?per_page=20" \
    --jq '.jobs[] | "\(.started_at // "queued")\t\(.status)/\(.conclusion // "-")\trunner=\(.runner_name // "-")\t\(.name)"' 2>/dev/null
done

echo
echo "== debian1 offload jobs (rb-*) =="
ssh -o BatchMode=yes -o ConnectTimeout=4 "$BOX" \
  'systemctl --user list-units "rb-*.service" --state=running --no-legend --plain 2>/dev/null || true; uptime' 2>/dev/null \
  || echo "debian1 unreachable"

echo
echo "== laptop =="
echo "multideal-runner.service: $(systemctl --user is-active multideal-runner.service 2>/dev/null || true) (fallback-managed, debian1 is primary)"
echo "platform runner: $(systemctl is-active actions.runner.platform-modules-mod.platform-devbox.service 2>/dev/null || true)"
keys=$(ls "$HOME/.claude/run/local-gate/"*.key 2>/dev/null | xargs -rn1 basename | tr '\n' ' ')
echo "local-gate active keys: ${keys:-none}"
echo "-- offload log (last 5) --"
tail -5 "$HOME/.claude/local-gate.log" 2>/dev/null || echo none
echo "-- ci-fallback log (last 5) --"
tail -5 "$HOME/.claude/ci-fallback.log" 2>/dev/null || echo none
