feat(seed): OOTB zot seed — AGENTS.md→ZOT_HOME, content + staging, regression tests #137
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/seed-population"
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?
What
Out-of-the-box zot seed propagation for the operator image, plus the regression
tests that prove it. Carries
feat/seed-agents-md(stacked).clawdie-live-seed): installsAGENTS.mdfrom theCLAWDIESEED partition to
$ZOT_HOME(/var/db/colibri/.local/state/zot) —the global slot the autospawned
zot rpcreads as system-prompt context.Installed as its own block after the ssh-material step.
seed/AGENTS.md(mother, MCP verbs, capabilities, "installHermes next"),
seed/harness.toml(zot),seed/env.placeholder(no secretsbaked), wired into
build.sh+stage-colibri-iso.shstaging.COLIBRI_AUTOSPAWN_RPC_PROMPTtells the booted zot toread
CLAWDIE_HW_PROFILEand callnode_registeron mother.tests/):seed-import-test.sh(Layer 0): runs the real importer in a sandbox andasserts the full propagation contract; 23/23 in
REQUIRE_AGENTS_MD=1.mcp-boundary-test.sh(Layer 2): forced-command allowlist + MCP handshake,incl. a real loopback sshd; skips cleanly without a sibling colibri.
Cross-repo dependency
The importer writes
AGENTS.mdto/var/db/colibri/.local/state/zot. That onlymatches zot's runtime
$ZOT_HOMEonce colibrifix/zot-homepins it(zot inherits the daemon's
HOME; without the pinZOT_HOMEresolves elsewhereand the file is never read). These two PRs must land together.
Verification (Linux, pre-merge)
readAgentsContextreads$ZOT_HOME/AGENTS.md;a unit test reproduces the HOME-mismatch miss and confirms the ZOT_HOME pin fixes it.
HOME, noZOT_HOMEset — confirming the pin is required.
Not yet proven: the runtime link (zot actually calling
node_registeron alive mother) — that's Layer 3 on osa, after
setup-mother.sh.🤖 Generated with Claude Code
Layer 0 (seed-import-test.sh): runs the real clawdie-live-seed importer in a sandbox (CLAWDIE_SEED_TEST=1, all paths overridden) and asserts the seed->runtime propagation contract — env split, provider.env, dual-home ssh, soul staging, and AGENTS.md -> $ZOT_HOME (the global slot the autospawned zot reads). Idempotent re-import is checked. REQUIRE_AGENTS_MD=1 enforces the AGENTS.md install added on this branch; it passes 23/23 here. Layer 2 (mcp-boundary-test.sh): exercises the mother MCP-over-SSH boundary on Linux — colibri-mcp-ssh forced-command allowlist (""/"tools" route, everything else rejected) and the MCP tools/list handshake, including a real loopback sshd with command=. Skips cleanly when colibri isn't a sibling checkout. Verified end to end on Linux before merge: importer target path and the ZOT_HOME pin in colibri (fix/zot-home) both resolve to /var/db/colibri/.local/state/zot. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>Paired merge — land with colibri#182.
This PR's seed importer writes
AGENTS.mdto/var/db/colibri/.local/state/zot.That only matches the autospawned zot's runtime
$ZOT_HOMEonce colibri#182 pinsit (zot inherits the daemon's
HOME; without the pin the file is written wherezot never looks). Merging this alone is inert; merging colibri#182 alone has
nothing to read. Merge both, then verify on osa (Layer 3).