Skip to content

GPU and remote workflows

Validate GPU and streaming changes on a Linux GPU host. Pass the host explicitly, by role or hostname:

Terminal window
make status HOST=<role-or-host>
make session-list HOST=<role-or-host>

The host map is .claude/skills/_shared/hosts.json, operator-local and not committed. Keep real hostnames out of prose and scripts.

Changed Command Expected cost
Go control plane only make redeploy-cp HOST=<role-or-host> About one minute; sessions survive
Rust, GStreamer, or agent image make rebuild HOST=<role-or-host> 40 minutes or more

Both accept REF=<branch-or-sha> and otherwise keep the host’s current branch. Don’t call deploy/redeploy.sh remotely without a ref: it defaults to origin/main.

Build images only with deploy/build-images.sh or the Makefile wrappers. Never hand-write a docker build or weaken deploy/image-contract.json to pass.

Two lanes: source builds and owned installs

Section titled “Two lanes: source builds and owned installs”

Contributor lane: everything above. A source-built Compose stack; fast, not a supported install, and never updated from the console.

Product lane: the user’s path. Build with deploy/build-images.sh, push to a registry namespace you control with a content-addressed tag, install with the seed, and move it with a developer apply from Admin ▸ Fleet ▸ Releases. Allow the test registry in the seed inputs at install:

QUASAR_UPDATER_ALLOWED_NAMESPACES: "<test-registry>:5000/<namespace>,ghcr.io/accreleus/quasar"
QUASAR_PLATFORM_INSECURE_REGISTRIES: "<test-registry>:5000"

A plain-HTTP registry must also be in the engine’s insecure-registries. Widen the lists later with reconfigure. See Developer apply.

A machine is in one lane at a time. Switch shared test hosts one at a time, following the shared-host preflight in AGENTS.md.

Terminal window
make session-verdict SID=latest HOST=<role-or-host>
make session-diagnose SID=latest HOST=<role-or-host>
make session-metrics SID=latest HOST=<role-or-host> SINCE=5m
make session-trace SID=latest HOST=<role-or-host>
make session-logs SID=latest HOST=<role-or-host> SINCE=10m

Each is bounded and exits 1 on a degraded verdict. Use them before raw SQL or log streams. Comparisons, impairment and soak workflows are in AGENTS.md and docs/developer-tooling.md.