Server-only deployment has no console admin API, so the persona is
upserted directly into the SQLite DB via scripts/persona.py with the
prompt text versioned in the repo (VM persistence rules, Gitea/GitHub
remotes, rootless podman). Built-in personas are seeded by migration
063; this sets marvin as the interactive default.
tailcat (Tailscale data plane, no control plane) forwards the VM's
web UI and SSH ports to another machine via a stable saved-key
address; outbound-only, so it works through the nested slirp NAT.
Arch image with turnstone (venv), dev toolkit, rootless podman; boots
via boco (virtiofs shares, direct UID mapping for nested virtiofs).
sshd ops channel + turnstone-server as guest marvin; state (SQLite db,
config, work) on host shares; LLM via the TensorX OpenAI-compatible
gateway (https://api.tensorx.ai/v1), reachable from the guest through
both slirp layers with no relay.