use-workshop
<essential_principles> Five rules that always apply to operating Workshop. These come first; every workflow assumes them.
-
The workshop is an isolation boundary. Processes running inside a workshop cannot reach host resources except through declared interface connections. State this when relevant; do not assume any specific workload runs inside.
-
State changes are async. Every mutating command produces a numbered
changecomposed oftasks. To diagnose what happened, useworkshop changesthenworkshop tasks <ID>— never guess. -
Refresh is non-destructive; prefer it to remove+launch. If
workshop refresherrors, rerun with--wait-on-errorto pause inWaiting, investigate viaworkshop shell, then--continue(after fixing) or--abort(to revert). Constraint:--wait-on-erroris single-workshop only. -
Auto-connect vs manual-connect differs by interface. Mount and GPU auto-connect. Camera, desktop, ssh-agent, custom-device, and most tunnel cases require an explicit
workshop connect <plug-ref> [<slot-ref>]after launch. If the user wants those, schedule theconnectstep — once, not per refresh: manual connections persist acrossworkshop refresh(0.9.5+) and are re-wired only afterworkshop restoreor remove+launch. -
The project directory is mounted at
/project/. Any path that needs to be visible to the workshop must be reachable under/project/. Working directories passed viaworkshop exec --cwdorworkshop run --cwduse workshop paths. </essential_principles>