---
name: per-os-and-setup-waves
description: "per-OS adapter.spt assets (windows+linux, linux cross-built via cargo-zigbuild) DONE; LOCKED v1 /sptc:setup {1..7} feature-path status"
metadata: 
  node_type: memory
  type: project
  originSessionId: 974123d4-b1e5-466c-acbc-0fd29b08674a
---

Built 2026-06-16 while waiting on the v0.8.0 ping (operator: "work per-OS + setup {1..7}; linux is
the only other OS that matters").

**Per-OS adapter.spt (REQ-DIST-ADAPTER-PEROS) — DONE.** The .spt carries native binaries → ships
per-OS as `adapter-<os>-<arch>.spt`. spt's `--release --asset` is caller-named (default adapter.spt),
so the packer names + /sptc:setup selects.
- `ci/publish/package-adapter.sh`: emits adapter-<os>-<arch>.spt; os/arch from uname, override via
  SPTC_OS/SPTC_ARCH; **SPTC_TARGET** points at target/<triple>/release for a cross build.
- **Linux cross-build from Windows PROVEN** (45a1ef1): bare `cargo build --target
  x86_64-unknown-linux-gnu` fails `linker cc not found`; **cargo-zigbuild** (zig 0.14.1 as linker)
  produces real ELF x86-64 GNU/Linux binaries. zig lives OUT of the repo (`~/.sptc-zig/` — tools/ is
  a traceable-reqs scan root; zig's libc headers trip the scanner). dist/adapter-linux-x86_64.spt
  packs + verified. Recipe in docs/RELEASE-RUNBOOK.md.
- /sptc:setup (both bodies) detect os/arch → pass `--asset adapter-$os-$arch.spt`.
- **Coupling:** the os-detecting setup floor must ship WITH a per-OS-asset release (else end-user
  setup 404s) → cplugs republish (v0.1.2) is sequenced AFTER the per-OS release. Folds into the
  v0.8.0 dogfood ([[v074-follow-ups]] step 7).

**LOCKED v1 /sptc:setup {1..7} status** (SCOPE.md §/spt:setup):
- **#7 ccs wiring** — DONE (ec4a1ae, REQ-SETUP-CCS): detect ~/.ccs → point at the :ccs profile / offer install.
- **#3/#4 subnet onboarding** — DONE (494c564, REQ-SETUP-SUBNET): detect membership, branch create/
  join/show-code, delegate verbs to /sptc:subnet, surface OS-elevation (create/join/show-code are
  elevation-gated; full elevation AUTOMATION = a deeper wave, not built).
- **#6 OS-service** — installer-handled (the install bootstrap registers the at-logon daemon task);
  no adapter build, setup just relies on it.
- **#1 cc launcher** — gated on full-fat M12 (todlando prereq); shortcut_basename="cc" already in manifest.
- **#5 legacy migration** — DEFERRED-BY-DESIGN (F-008 ruling): no `spt migrate` verb by design;
  migration is the installer's job (auto-detect+offer), setup VERIFIES when built (mirrors #6). doyle pings.
- **{8,9}** — deferred per SCOPE.
