feat(iso): wire Colibri OOTB defaults + opt-in Mother MCP link #96
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "colibri-ootb-mcp-defaults"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Workstream C of the next ISO rebuild — wires the auto-spawn + MCP pieces into what Colibri runs out of the box.
C1 — Auto-spawn lit up OOTB:
provider.envshipsCOLIBRI_AUTOSPAWN_PI="YES", so the daemon auto-spawn (colibri#137) fires on the booted image once a DeepSeek key is present (pulled by Join Hive, PR #95).C2 — External MCP registry staged:
/usr/local/etc/colibri/external-mcp.jsonshipped as{"servers":{}}at colibri-mcp's default config path. Empty ⇒ mother off by default.C3 — Opt-in "Enable Mother Link" (
clawdie-enable-mother+ desktop entry). Direction is our Pi calls mother's tools —colibri-mcpdials out to mother over SSH-stdio and proxies mother's tools to the Pi via its external-call path. The toggle:colibriservice account (/var/db/colibri/.ssh— the daemon and its Pi run ascolibri, confirmed inbuild.sh),external-mcp.json(ssh -i <key> -o BatchMode=yes … mother <cmd>),COLIBRI_MCP_EXTERNAL_CALL=1intoprovider.env,colibri's pubkey to authorize on mother.provider.env.sampledocuments the new toggles.Verified locally:
sh -nclean on all scripts; the empty default and the emitted mother entry both validate as JSON and match theExternalMcpRegistry {servers:{command,args,env}}shape.⚠️ Dependency for Hermes to confirm on the image (C4): the mother proxy only reaches the Pi if the auto-spawned Pi launches
colibri-mcpas its MCP server. The image stages reference configs in/usr/local/share/clawdie-iso/mcp-examples/(incl.mcp-external-call.json), but I could not confirm from the repo whether the running Pi loads one. Please verify Pi's MCP config path on the live image; if it isn't wired, the small follow-up is pointing Pi's MCP config at/usr/local/bin/colibri-mcpwithCOLIBRI_MCP_EXTERNAL_CALL=1.This completes the planned A/B/C set (B merged #137; A in #95). With A + C merged, the OOTB flow is: boot → Join Hive (3 BW → DeepSeek pulled → restart) → Pi auto-spawns → optionally Enable Mother Link.
🤖 Generated with Claude Code
Workstream C of the next ISO rebuild. C1 — Auto-spawn lit up out of the box: provider.env now ships COLIBRI_AUTOSPAWN_PI="YES", so colibri#137 fires on the booted image once a DeepSeek key is present (pulled by Join Hive, A). C2 — External MCP registry staged: /usr/local/etc/colibri/external-mcp.json shipped as {"servers":{}} at the path colibri-mcp reads by default. Empty = mother off by default. C3 — Opt-in "Enable Mother Link" (clawdie-enable-mother + desktop entry): Direction is "our Pi calls mother's tools" — colibri-mcp dials OUT to mother over SSH-stdio and proxies mother's tools to the Pi via its external-call path. The toggle: - provisions an SSH identity for the colibri service account (/var/db/colibri/.ssh — the daemon and its Pi run as `colibri`), - writes the mother entry into external-mcp.json (ssh -i <key> ... mother), - upserts COLIBRI_MCP_EXTERNAL_CALL=1 into provider.env, - restarts the daemon and prints colibri's pubkey to authorize on mother. provider.env.sample documents the new toggles. sh -n clean on all scripts; the empty default and the emitted mother entry validate as JSON and match the ExternalMcpRegistry {servers:{command,args,env}} shape. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>Review — cross-repo verification (Claude on domedog)
Verified all paths, service names, env vars, and struct shapes against the colibri codebase (
79637ba). Everything matches:colibri_daemon(underscore) ✓/usr/local/etc/colibri/provider.env✓/usr/local/etc/colibri/external-mcp.json=COLIBRI_MCP_EXTERNAL_CONFIGdefault ✓ExternalMcpRegistry {servers:{command,args,env}}✓COLIBRI_MCP_EXTERNAL_CALL=1gate ✓COLIBRI_AUTOSPAWN_PI="YES"accepted byenv_truthy✓clawdie-join-hive.sh✓Bugs found (3)
1. JSON corruption — raw user input into JSON
clawdie-enable-mother.sh:67-73interpolatesMOTHER_HOST/MOTHER_CMDdirectly intoprintfJSON. A value containing"or\corruptsexternal-mcp.json.Fix — use
jq -n:2. Overwrites entire external-mcp.json
Step 2 writes a fresh object with only
mother. Re-running the script or having other servers configured clobbers everything.Fix — merge with existing:
3. provider.env non-atomic write
cat "$tmp" > "$f"truncates before writing. On failure (disk full),provider.envwith BW creds/API keys is left empty.Fix — write temp in same dir, then
mv:Follow-up items (not blockers)
colibri-mcpcolibri_external_mcp_list_toolsspawns processes withoutCOLIBRI_MCP_EXTERNAL_CALLgate — separate issue in colibriCross-referenced against colibri
79637baand clawdie-iso53d1212.