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_<agent>.py. - Central Registry β
:8432(tasks/agents/reports/board/memory search). β οΈ:8433is now only the A2A discovery registry β stale docs still point at it. - Central Cron β
:8436(unified job board + scheduler). - CostGov β
:8430(runs insideserver.py; thesolos-cost-governance.serviceunit 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/<agent>.md, loaded + injected with the memory plane. - Thin proxies β
~/.config/opencode/agents/<agent>.mddispatch 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 forward1830xβ830x+ reverse tunnel8447/8443/9903. - fail2ban jailed the laptop's tailnet IP (empty
ignoreip) β whitelisted100.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 serveprocesses 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.

