layered-soul/docs/HOST-MATRIX.md

8.7 KiB

Host & Agent Matrix (shared, fill-as-you-go)

A living inventory of who runs where and what each host actually is. Any agent on any host fills in its own row. Source of truth for facts is the probe — not memory.

How to fill your row

cd ~/layered-soul
python3 scripts/verify_facts_probe.py --os --hardware --storage --network --text

Copy the verified values into the tables below, set Probed to today's UTC date, and commit. Never guess hardware, OS, or IPs — paste what the probe reports. On FreeBSD the probe synthesizes an OS-specific command map; trust its output over Linux habits.

Disk before action: before installing a toolchain or starting a build, check real free space (df -h /, or the probe's --storage) — never estimate. Keep the Disk (free) column current and flag any host past ~85%. See Disk discipline below.


1. Agent placement (who runs where)

Agent Host OS / Isolation Harness Role Bot / channel Status
Hermes debby Debian 13 / Docker Hermes Agent (upstream) Orchestrator, soul backup @hermes_samob_bot (Telegram) live
Zot debby Debian 13 / Docker Zot RPC Coding, media workflows @zot_samob_bot (Telegram) live
Claude domedog Ubuntu 24.04 / Docker Claude Code Verification, review — (CLI) live
Mevy osa FreeBSD 15 / jail Hermes Agent Operator bot (current) Mevy (Telegram) live
Codex osa FreeBSD 15 / jail Codex CLI ISO builds, validation installed (probe)
hermes-osa osa FreeBSD 15 / host service first Hermes Agent (FreeBSD) Native FreeBSD Hermes (planned) planned; not installed

Notes:

  • Provider per agent (DeepSeek / OpenRouter / Z.AI / local) — fill in the per-host table.
  • One Telegram token per running service. Never share a token across instances.

2. Host hardware & facts (one row per host)

Host Tailscale IP OS / Kernel Virt CPU vCPU RAM Swap Disk (free) GPU Probed By
domedog 100.103.255.41 Ubuntu 24.04.4 / 6.8.0-117 KVM AMD EPYC 7543P (32-core host) 2 7.8 GiB 2.0 GiB 100 GB QEMU (51G free) none (headless) 2026-06-17 Claude
debby 100.66.193.10 Debian 13 / 6.12.90+deb13.1-amd64 bare metal AMD Ryzen 7 5700U (8-core) 16 15 GiB 15 GiB nvme0n1p2 453G (23G free) Radeon Graphics (iGPU) 2026-06-17 Hermes
osa 100.72.229.63 FreeBSD 15.0-RELEASE-p10 / GENERIC not reported by probe Intel Core Processor (Haswell, no TSX) 6 11 GiB not reported by probe ZFS pool: zroot (23.4G free) not reported by probe 2026-06-17 Pi

Disk discipline (check, don't guess)

Disk is a first-class fact, same as OS or CPU — measure it before you act, don't estimate.

  • Before installing a toolchain or starting a build, run df -h / (Linux) or zfs list / df -h (FreeBSD), or the probe's --storage. Confirm the headroom is really there.
  • Keep the Disk (free) column above current when you add or remove anything large.
  • Flag any host past ~85% used. Reference footprints to budget with: Go SDK ≈ 290 MB, Rust toolchain (~/.rustup + ~/.cargo) ≈ 1.8 GB, a Node version ≈ 150 MB; build/module caches grow on top of these.
  • Standing watch: debby runs ~95% full (23 GB free). Treat new installs/builds there as a deliberate decision, not a default — prefer the host with real headroom.

This is the survivability principle applied to storage: a host that silently fills up is a host that fails. What you guess will be wrong; what you probe will be right.


3. Per-host detail (expand as needed)

domedog (Claude / verification) — probed 2026-06-17 by Claude

  • Identity: hostname domedog.pro, Tailscale 100.103.255.41
  • OS: Ubuntu 24.04.4 LTS, kernel 6.8.0-117-generic, x86_64, KVM guest
  • CPU: AMD EPYC 7543P 32-Core (2 vCPU exposed to guest)
  • Memory: 7.8 GiB RAM, 2.0 GiB swap
  • Storage: /dev/sda1 96 GB ext4 root, 51 GB free (QEMU HARDDISK). No ZFS.
  • GPU: none (headless VM)
  • Uptime at probe: ~3.5 weeks
  • Role here: Claude Code — verification & review lane. No Telegram bot.

debby (Hermes orchestrator + Zot) — probed 2026-06-17 by Hermes

  • Identity: hostname debby, Tailscale 100.66.193.10
  • OS: Debian 13 (Trixie), kernel 6.12.90+deb13.1-amd64, bare metal (KDE Plasma desktop)
  • CPU: AMD Ryzen 7 5700U with Radeon Graphics, 8 physical cores, 16 threads
  • Memory: 15 GiB RAM, 15 GiB swap
  • Storage: /dev/nvme0n1p2 453 GB ext4 root, 23 GB free (95% full). No ZFS.
  • GPU: AMD Radeon Graphics (integrated, Lucienne)
  • Containers: Docker 29.5.3 installed (daemon not currently running)
  • Hermes Agent: v0.16.0 (upstream f9c8d95e), DeepSeek v4 Pro primary provider, OpenRouter for vision/fallback, Z.AI/GLM available
  • Zot RPC: Go binary at ~/.local/bin/zot, GLM-5.1 model
  • Telegram: @hermes_samob_bot + @zot_samob_bot in "My Debby" group
  • Layered soul: commit 817624c, 6 curated memories, 9 cross-harness skills

osa (FreeBSD: Mevy + Codex + hermes-osa) — probed 2026-06-17 by Mevy

  • Identity: hostname osa.smilepowered.org, Tailscale 100.72.229.63
  • OS: FreeBSD 15.0-RELEASE-p10, kernel FreeBSD osa.smilepowered.org 15.0-RELEASE-p10 FreeBSD 15.0-RELEASE-p10 releng/15.0-n281064-98258a339269 GENERIC amd64
  • Virt: not reported by probe
  • CPU: Intel Core Processor (Haswell, no TSX), 6 vCPU
  • Memory: 11 GiB RAM, swap not reported by probe
  • Storage: ZFS pool zroot, 98.5G, ONLINE; latest storage probe reports 23.4G available
  • GPU: not reported by probe (lspci returned usage text)
  • Jails / containers: FreeBSD jails cms and worker; Docker not installed
  • Agents reported by probe: Codex CLI /usr/local/bin/codex (codex-cli 0.117.0); Claude Code /home/clawdie/.npm-global/bin/claude
  • Mevy Telegram / provider: not reported by probe; do not guess token ownership or provider
  • hermes-osa (FreeBSD-native Hermes): not installed yet — see install note below
  • Layered soul: commit 3ee2888, 7 curated memories, 10 cross-harness skills

hermes-osa install note (corrected)

The osa FreeBSD-native Hermes is the clean-room MIT hermes-bsd codebase — not "Autolycus" (an LGPL upstream dependency the layer explicitly avoids; the old codename is retired). Grounded in the actual code:

  • Service: hermes_daemon (packaging/freebsd/hermes_daemon.in/usr/local/etc/rc.d/hermes_daemon, sysrc hermes_daemon_enable=YES). Distinct from the old clawdie/clawdie_hostd rc.d entries, so it won't collide during validation.
  • State home: the app reads HERMES_HOME (get_hermes_home()). Do not set AUTOLYCUS_HOME for hermes-osa.
  • Local validation home: use the operator-owned default-compatible state directory first:
    HERMES_HOME=/home/clawdie/.hermes sh scripts/install-freebsd.sh
    HERMES_HOME=/home/clawdie/.hermes hermes setup     # Telegram off, no secrets first
    
  • Service home: the rc.d template defaults hermes_daemon_home to /var/db/hermes under the dedicated hermes service user. After local validation, either seed /var/db/hermes deliberately or set sysrc hermes_daemon_home=/home/clawdie/.hermes deliberately; do not let local and daemon state diverge by accident.
  • Do not use /home/clawdie/clawdie-ai as Hermes state. Preserve/retire the old Clawdie runtime path as a separate step after local Hermes validation.
  • Install source is hermes-bsd main at 912e697d (includes the Python 3.12 setup baseline).

See ../AGENTS.md for the canonical agent matrix and operating rules.