- SOUL.md: full agent identity, operating principles, voice - IDENTITY.md: runtime identity, hosts, boundaries - USER.md: operator context imported from hermes-soul - AGENTS.md: actual operating rules, infrastructure, quick reference - memories/curated/: 5 topics (tailscale, forgejo, agents, projects, vaultwarden) - skills/: 9 cross-harness skills imported from hermes-soul after review - docs/PLAN-CONFIGURE-PRIVATE-REPO.md: configuration plan - Validate: passes clean
2 KiB
2 KiB
FreeBSD Daemon Smoke Test Pattern
When to use
Before running colibri-daemon as a real FreeBSD service, validate it in
isolated /tmp paths. This is prototype validation — tear down after.
Quick smoke
# Build on FreeBSD
cargo build --release
# Isolated env
export COLIBRI_DAEMON_DATA_DIR=/tmp/colibri-osa-smoke-$USER
export COLIBRI_DAEMON_SOCKET=$COLIBRI_DAEMON_DATA_DIR/colibri.sock
export COLIBRI_DB_PATH=$COLIBRI_DAEMON_DATA_DIR/colibri.sqlite
export COLIBRI_HOST=osa-smoke
# Start daemon in background
target/release/colibri-daemon &
DAEMON_PID=$!
# Verify
target/release/colibri --socket "$COLIBRI_DAEMON_SOCKET" status
target/release/colibri --socket "$COLIBRI_DAEMON_SOCKET" snapshot
target/release/colibri --socket "$COLIBRI_DAEMON_SOCKET" spawn-local target/release/colibri-smoke-agent
# Check SQLite
sqlite3 "$COLIBRI_DB_PATH" "PRAGMA journal_mode;"
# Tear down
kill $DAEMON_PID
rm -rf "$COLIBRI_DAEMON_DATA_DIR"
Checks
- Socket appears at the expected path
- SQLite DB +
-wal+-shmfiles created journal_mode=walcolibri statusreturns JSON with host/version/sessions/agentscolibri snapshotreturnsclawdie.glasspane.snapshot.v1with pane listspawn-locallaunches smoke agent, glasspane showsdonestatecreate-task/list-tasksround-trips through SQLiteintake-taskdrains into SQLite via scheduler tick (30s)- Ctrl-C cleanly removes socket, no zombie processes
- Restart against same
/tmppaths recovers without error
rc.d service file
The prototype lives at packaging/freebsd/colibri_daemon.in. Do NOT install
to /usr/local/etc/rc.d/ yet. The file uses daemon(8) to background the
process, restart on crash, and log output. Review-only until validated on
real FreeBSD hardware.
Session reports
Write results to docs/internal/sessions/YYYY-MM-DD-osa-freebsd-<topic>-smoke.md.
Include: FreeBSD version, Rust version, commit hash, exact env vars, command
outputs, and cleanup confirmation.