mother: preflight python3, document prereqs, route from build handoff
Some checks failed
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
CI / agent-jail-pkgs (pull_request) Has been cancelled

Three reinforcing changes so the next agent's mother setup lands instead
of failing late:

- setup-mother.sh: fail-fast preflight for python3 (geodesic-dome-mcp is a
  python3 script that otherwise installs fine and fails only when invoked).
- MOTHER-SETUP.md: new Prerequisites section — python3 on PATH, and the
  COLIBRI_AUTOSPAWN_RPC_PROMPT boot decision (set = auto-spawn agent on
  boot; unset = quiet token-free boot).
- FREEBSD-BUILD-LANE-HANDOFF.md: pointer to MOTHER-SETUP.md/setup-mother.sh
  so the mother docs are discoverable from the build-lane entry point.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Sam & Claude 2026-06-24 19:24:30 +02:00 committed by Sam & Claude
parent 655b15f2f2
commit 382b4a9188
3 changed files with 30 additions and 0 deletions

View file

@ -13,6 +13,11 @@ build, boot it, and run the acceptance checks.
The `x86_64-unknown-freebsd` binaries must be compiled on the FreeBSD host;
this lane belongs to the FreeBSD agent end to end.
> **Mother-node setup (osa):** standing up the mother MCP host that USB nodes
> register into is a separate step from this build lane — follow
> `packaging/mother/MOTHER-SETUP.md` and run `packaging/mother/setup-mother.sh`
> (check its Prerequisites first).
## 0. Host evidence to report
Run once and paste into the validation report:

View file

@ -18,6 +18,16 @@ infrastructure.
| `build-colibri.sh` | MCP tool: build a colibri crate (branch-allowlisted) |
| `colibri-mcp-ssh` | SSH forced-command wrapper (allowlisted: `""`, `"tools"` only) |
## Prerequisites
- **`python3` on PATH** — `geodesic-dome-mcp` is a python3 script (standard
library only, no `pip install`). `setup-mother.sh` preflights this and aborts
if it is missing. Install with `pkg install python3`.
- **`COLIBRI_AUTOSPAWN_RPC_PROMPT` (a decision, not a dependency)** — the daemon
reads this on boot (`crates/colibri-daemon/src/socket.rs`). Set it to have the
daemon auto-spawn an agent with that opening prompt on boot; leave it unset for
a quiet, token-free boot. Choose deliberately when configuring the daemon env.
## Architecture
```

View file

@ -62,6 +62,21 @@ ensure_dir() {
chmod 750 "$1"
}
# ── 0. preflight ──────────────────────────────────────────────────────
# Fail fast on hard dependencies before installing anything, so a missing
# tool surfaces here rather than as a silent runtime failure later.
echo "--- 0. preflight ---"
if ! command -v python3 >/dev/null 2>&1; then
echo " ERROR: python3 not found on PATH."
echo " geodesic-dome-mcp is a python3 script; without python3 it"
echo " installs fine but fails when the MCP host invokes it."
echo " Install it first: pkg install python3"
exit 1
fi
echo " python3: $(command -v python3) OK"
echo ""
# ── 1. colibri binaries ───────────────────────────────────────────────
echo "--- 1. colibri binaries ---"