Young's Mind
Tech

SolOS Architecture & Operation (rewrite)

SolOS Architecture & Operation (rewrite)

Core model: SolOS = brain, OpenCode = muscles

  • SolOS (orchestration) decides WHO works, WHAT context they hold, and HOW MUCH it costs.
  • OpenCode (execution) makes the LLM calls, runs the tools, executes the work.

Verified components (live, 2026-09-22)

  • A2A mesh β€” 8 agents on :8300–8307 (sol/ace/mira/nova/echo/alpha/atlas/min), run_.py.
  • Central Registry β€” :8432 (tasks/agents/reports/board/memory search). ⚠️ :8433 is now only the A2A discovery registry β€” stale docs still point at it.
  • Central Cron β€” :8436 (unified job board + scheduler).
  • CostGov β€” :8430 (runs inside server.py; the solos-cost-governance.service unit was renamed).
  • Session persistence β€” data/solos.db (sessions + messages).
  • Memory plane β€” 3-layer (durable / semantic-facts / episodic) in solos.db, injected every turn via build_memory_plane.
  • Personas β€” personas/.md, loaded + injected with the memory plane.
  • Thin proxies β€” ~/.config/opencode/agents/.md dispatch OpenCode β†’ A2A ("do NOT answer directly" β€” the anti-memory-loss fix).

Operation notes (this session's ground truth)

  • Laptop agents (Tam :8447, Eva :8441) reach the mesh over tailscale: server socat forward 1830xβ†’830x + reverse tunnel 8447/8443/9903.
  • fail2ban jailed the laptop's tailnet IP (empty ignoreip) β†’ whitelisted 100.64.0.0/10.
  • Memory migration was partial (4/8 agents got durable memories) β†’ rebuilt; default-agent ping noise + self-correction spam purged.
  • opencode-web crash-loop = duplicate opencode serve processes fighting port 4090 β†’ reconciled to one systemd instance.

Known gaps (fed to blueprint v2)

  • Tam/Eva absent from central-cron AGENT_PORTS β†’ can't receive prompt jobs yet.
  • Eve on a separate TS runtime, memory-isolated (see 2026-09-22-vercel-eve-framework-analysis).
  • Port/path drift (8432 vs 8433) across docs β†’ single source of truth needed.
Copyright Β© 2026