LAB connectivity + control-plane audit — 2026-09-27 (Tam)
LAB connectivity + control-plane audit — 2026-09-27 (Tam)
All findings reproduced with live probes. Corrections to my earlier migration plan incorporated (Sol/Young review).
1. No tailnet on LAB — confirmed
tailscalebinary absent (as userlab);tailscale: command not found.- LAB interfaces: lo,
wlp0s20f3 192.168.4.60/22, IPv6 only on the rest. Zero100.xaddrs. - LAB is reachable from laptop only on LAN
192.168.4.60(wireless — flaps;brd 192.168.7.255 /22). - Laptop DOES have tailscale0 (100.85.164.30) but LAB doesn't → no tailnet leg to LAB at all.
- Away-from-home leg to LAB is currently nonexistent. The mesh ports LAB binds are LAN-only:
ss -ltnon LAB shows 8300-8307 + 8432 bound to192.168.4.60(not 0.0.0.0), plus 22, 4090 (opencode), 6333/6334 (qdrant) on 0.0.0.0, and reverse-tunnel listeners 8442/8443 on 127.0.0.1.
2. SSH user is lab, not sol — username bug, no sudo needed
~/.ssh/configHost lab→HostName 192.168.4.60, User lab, IdentityFile ~/.ssh/lab_ctrl_key.- Verified:
ssh -o BatchMode=yes lab→OK user=lab host=LAB ip=192.168.4.60, up 17h56m. idas lab: uid 1001, in groups adm, sudo, dip, plugdev (sudo group membership exists but passwordless sudo is NOT configured —sudo -n true→ "a password is required").- No
soluser required. My key was already installed.
3. The laptop tunnel picture (corrected twice — final truth)
Two distinct tunnels, both pointing at the OLD cloud box ubuntu@100.124.146.127 (tailnet IP; still up as a wireguard/tunnel interface on the laptop, so the old box is NOT dead):
- autossh A (pid 1008068, key
~/.ssh/id_ed25519): -L 18300-18307 → old-box 8300-8307, + 19902/18442, plus -L 8300-8307 → old-box 8300-8307 (LOCAL-HIJACK: old-box agent ports squat on laptop loopback — dangerous). - autossh B (pid 1008069, key
laptop_ctrl_reverse): -R 9222→laptop-ssh, -R 8443→laptop-8441, -R 9903→9901, -R 5902, -R 8765, -R 9904→192.168.4.28:8446 — plus a SEPARATE manually-spawned ssh (pid 1225072, PPID = user systemd, NOT a declared unit) carrying the -L 1830x and -L 8432/8430/8320/8091/8433/8434 forwards. - Liveness: the old-box stack is alive through the tunnel: laptop
:8432/tasks(via the manual ssh) returns JSON;:18300-18307respond HTTP 405 (A2A servers, alive — earlier "000" was wrong);:8430CostGov 200;:8433/reports 200. - Unit drift (systemd):
laptop-tunnel.service= system unit not found; user units exist and run:laptop-reverse-tunnel.service(autossh B),eva-a2a-tunnel.service, and alaptop-tunnel.service(running, description "Laptop Consolidated Tunnel — single SSH"). Service names in fleet notes are ambiguous — pinsystemctl --user cat laptop-tunnel.service. - socat: a
socat(pid 1399) is listening on laptop:9901; laptop:8441/:8447are real python A2A servers (eva-a2a/server.pypid 1401,tam-a2a/server.pypid 87802) answering JSON-RPC (empty POST → proper -32601) — both alive.
4. Registry split-brain — quantified (fresh evidence)
Pulled task ID sets from both boards:
- Tunnel-path board (old box via laptop :8432): 100 tasks; LAB board (192.168.4.60:8432): 100 tasks; 89 shared, 11 only-old, 11 only-LAB.
- Only-old includes my
task-83bf0aec, thetask-2a00d648migration-directive copy,task-0f36620c. - Only-LAB includes
task-12a7bca6,task-5edc1a4d(migration directive copy),task-fc043640(split-brain reconciliation plan — Sol's verdict is posted there),task-2ad56118(probe for Ace). - This is the split-brain Sol's
task-fc043640describes: prod registry receives tunnel-path writes, LAB receives LAN/tailnet writes. That task says EXECUTE IN ORDER: freeze prod writes → snapshot prod solos.db → reconcile tasks+reports into LAB → verify → repoint laptop-tunnel writers to LAB → port governance (cron 8436 first, CostGov 8430, discovery 8433, Conductor 8320) → prod warm 48h → web tier last. - LAB
:8436cron registry and:8430CostGov: 000 — not present on LAB. Governance still only lives on old box via tunnel.
5. Vault state on LAB
labalready has a vault tree at/home/lab/.solos/docs/vault/solos/research/tam/with 49 .md files (tech/... etc.).- Tam's
lab_ctrl_keyis NOT authorized there (ssh -i lab_ctrl_key lab@...→ Permission denied; the working lane uses a different key/agent identity). Syncing to LAB needs either key installation by whoever holds the lab auth (Young's laptop id_ed25519 works) or the scp-to-old-box lane until reconciliation. sync_vault.sh(on/home/eva/tam_vault_mirror/) SRC=/home/eva/.solos/docs/Research/tam/, RHOST=ubuntu@100.124.146.127, RBASE=/home/ubuntu/.solos/docs/vault/solos/research/tam— still targets OLD BOX (correct choice until registry-of-record is declared; writes land wherever the old box's path points).- Write-lane test to old box:
ssh -i tam_vault_key ubuntu@100.124.146.127 'echo X'returns forced-command banner "tam vault access is write-only (scp/mkdir into vault)" — lane intact (scp writes only, exec refused).
6. Implications for the Hermes→LAB migration plan
- Sol's "sol-user blocker" dissolved (username bug), but the real blocker moved: LAB has no tailnet + governance services (cron 8436, CostGov 8430, Conductor 8320) are not on LAB. Migration sequencing must follow task-fc043640: reconcile registries first, port governance to LAB second, then move agents.
- Away-from-home access path today: laptop's own tailscale → old box → laptop reverse tunnel (9222). After LAB becomes home, needs either (a) tailscale install on LAB (needs Young sudo once, or
tailscaledin rootless mode), (b) a persistent laptop→LAB forward via the laptop's existing tailnet membership, or (c) LAB behind the old box nginx domains. Until then: LAB = LAN-only; moving agents there today strands them off-home. - 8300-8307 loopback-hijack (autossh A forwards laptop loopback 8300-8307 to old box) will collide with any future local/LAB service on those ports — flag for cleanup at repoint.
- 48h warm-rollback requirement + laptop is the only tunnel holder: while agents run on LAB off-home there is no path in. Keep agents on laptop until LAB leg exists, or bring tailscale to LAB as step 0.
7. What I changed (nothing destructive)
- No service edits, no key moves, no registry writes. Added this audit note to the vault (queued for sync). Board reply posted to task-fc043640 (LAB) + task-83bf0aec (old board) so both boards carry the audit.
Cron & Vault-Sync Inventory Audit — LAB vs Laptop (2026-09-27)
Joint review with Eva for Young. Every claim below is verified by direct command output on the named host, not inferred. Three claims in the incoming inventory are wrong and one live silent failure is running right now.
LAB cutover phase 2 — agents home, nervous system still in the cloud
Requested by: Young (DM, 2026-09-27): "Connect with LAB, all our agents should be on it now." Method: off-box probes from the laptop (tailnet 100.94.188.127, LAN relay 192.168.4.60, old-server 100.124.146.127), cross-checked against Alpha/Ace reports. No destructive action.

