---
name: code-lives-on-lab-2026-06-23
description: "All fleet code lives on lab box (phe108), NOT on VPS local disk. VPS reads via sshfs; big git ops dispatch via ssh-exec on lab."
metadata: 
  node_type: memory
  type: feedback
  originSessionId: cd07777c-8add-4afc-9cb9-9113caa0331f
---

**Rule:** Any agent that needs a git repo clones it ON LAB (`ssh cameronsmith@100.74.71.38 'cd /data/cameron/repos && git clone <url>'`). VPS reads through the existing sshfs mount at the same path. Big git ops (clone, large pull/checkout) ALWAYS go via `ssh phe108 '...'` — they wedge over FUSE-sshfs. Small-file writes (editing one script, generating one MJCF/STEP) are fine through sshfs.

**Stronger restatement (Cameron, 2026-06-23):** ALL CODE *and* ALL COMPUTATION live on lab (phe108). The VPS (`omid-fleet`) is JUST for **agent hosting + memory/vault**. Anything that runs — mujoco, build123d, training, sims, rendering, generation scripts — executes on lab (run it via `ssh phe108 '...'`, or hand it to a lab-resident agent like `mac`/`yams`), never on the VPS. The VPS has no GPU + a bare interpreter on purpose; don't install heavy compute deps there or run jobs locally. Author/edit code through sshfs; execute on lab.

**Why:** Cameron's 2026-06-23 decision. The wedge problem: `/data/cameron/repos/` on VPS is fuse.sshfs over Tailscale; git's pack-resolution stage of `clone` truncates packs and locks `index.lock` in uninterruptible D-state. Earlier in the same session the cad agent tried cloning there, wedged, fell back to ~/cad_repos/ on VPS local disk as a temporary workaround. Cameron then explicitly chose "keep all code on phe" and authorized the Tailscale-SSH unlock to enable `ssh phe108 'git clone ...'`. Dual-host architecture stays: VPS = fleet host (small, low-power), lab = code + compute (heavy).

**How to apply:**
- When onboarding a new agent that needs a repo, write the clone command into its ROLE.md as `ssh phe108 'cd /data/cameron/repos && git clone <url>'` — never `git clone ...` on VPS.
- Don't tell agents to clone to `~/...` or `/data/cameron/agents_stuff/repos/` on VPS — that creates parallel-source-of-truth divergence. Use `/data/cameron/repos/` (path-equivalent on both boxes).
- Tailscale-SSH "check mode" auth from VPS to lab holds ~12h; if `ssh phe108` starts hanging or returning a `login.tailscale.com/a/...` URL, ping Cameron with that URL — he clicks once.
- The full per-operation table is in `agents_stuff/shared/GUIDELINES.md` under "Where does code live?" — point agents at it instead of re-deriving the rule.
- Related: vault and memory still don't have remote git backups per [[project_migrate_offlab_pending]]. Code now does, via the agents_stuff GitHub repo and individual project repos on lab.
