docs: note the unikernel runtime in CLAUDE.md

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Kyle Isom
2026-06-11 01:12:37 -07:00
parent 47ec4e60ad
commit d2431f281d

View File

@@ -10,6 +10,20 @@ MCP has two components:
- **CLI** (`mcp`) — thin client on the operator's workstation. Reads local service definition files, pushes intent to agents, queries status. No database. - **CLI** (`mcp`) — thin client on the operator's workstation. Reads local service definition files, pushes intent to agents, queries status. No database.
- **Agent** (`mcp-agent`) — smart per-node daemon. Manages containers via podman, stores the registry (SQLite), monitors for drift, alerts the operator. - **Agent** (`mcp-agent`) — smart per-node daemon. Manages containers via podman, stores the registry (SQLite), monitors for drift, alerts the operator.
### Runtimes (containers + unikernels)
The agent holds two `runtime.Runtime` backends and selects per component via
`a.runtimeFor(comp.Runtime)`:
- **Podman** (`internal/runtime/podman.go`) — containers (default).
- **QEMU** (`internal/runtime/qemu.go`) — Nanos unikernel VMs, when a component
sets `runtime = "unikernel"` and the node has KVM + `ops`.
`listAllContainers()` merges both backends so status/drift see VMs and
containers uniformly. See the root repo's `docs/unikernels.md` for the full
operator + developer guide, and `docs/hypervisor-design.md` for the rationale.
Service-def fields: `runtime`, `memory`, `vcpus` (proto `ComponentSpec`
fields 1113; registry migration 5). **All container behavior is unchanged.**
Services have one or more components (containers). Container naming: `<service>-<component>`. Services have one or more components (containers). Container naming: `<service>-<component>`.
## v2 Development (Multi-Node) ## v2 Development (Multi-Node)