Skip to content

fix(backend): detach Herdr server from caller lifecycle #24

fix(backend): detach Herdr server from caller lifecycle

fix(backend): detach Herdr server from caller lifecycle #24

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
jobs:
lint:
name: Lint shell scripts
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install pinned ShellCheck
run: |
set -eu
bin/fm-install-shellcheck.sh "$RUNNER_TEMP/bin"
echo "$RUNNER_TEMP/bin" >> "$GITHUB_PATH"
# Single owner of the lint definition (file set + config + version). Do not
# re-spell the shellcheck command here; keep CI and the pre-push gate on it.
- run: bin/fm-lint.sh
tests:
name: Behavior tests
runs-on: ubuntu-latest
# The complete suite now takes roughly 16 minutes on ubuntu-latest. Keep a
# bounded cap that accommodates healthy growth while still failing loudly
# on a genuinely hung watcher or tmux test.
timeout-minutes: 30
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install pinned ShellCheck
run: |
set -eu
bin/fm-install-shellcheck.sh "$RUNNER_TEMP/bin"
echo "$RUNNER_TEMP/bin" >> "$GITHUB_PATH"
- name: Require tmux for e2e tests
run: |
set -eu
command -v tmux >/dev/null || {
echo "::error::tmux is required for real afk injection e2e coverage"
exit 1
}
tmux -V
- name: Install tasks-axi for backlog-handoff delegation
run: |
set -eu
npm install -g tasks-axi
tasks-axi --version
- run: |
set -eu
for test_script in tests/*.test.sh; do
"$test_script"
done
invariants:
name: Repo invariants
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Symlinks must stay intact
run: |
set -eu
[ "$(readlink CLAUDE.md)" = "AGENTS.md" ] || { echo "::error::CLAUDE.md must be a symlink to AGENTS.md"; exit 1; }
[ "$(readlink .claude/skills)" = "../.agents/skills" ] || { echo "::error::.claude/skills must be a symlink to ../.agents/skills"; exit 1; }
- name: Personal fleet paths must not be tracked
run: |
set -eu
tracked=$(git ls-files -- data state config projects .no-mistakes)
if [ -n "$tracked" ]; then
echo "::error::Personal fleet paths are tracked in git:"
printf '%s\n' "$tracked"
exit 1
fi