verify(P01): passed — sandbox fabric verified end-to-end on this box

Four layers all PASS:
- Structural: sandbox/ AST-audited — zero imports of api/, agents/, llm/;
  manager composed only via api/deps.py DI + main.py lifespan; no docker/
  podman/sudo/containerd in the spawner path (D-024 holds).
- Behavioral: pnpm ai:test = 174/174 green; sandbox+api slice 40/40 green
  with ALL probe-gated tests RAN (zero skips) — uid=0 in-ns, 0 network
  interfaces, workspace-write lands on host, no escape into snapshots,
  /proc-remount blocked, memory/CPU/FSIZE rlimits kill violators,
  wall-clock reaper proven, G-2 size sweep destroys + preserves snapshot,
  orphan startup reaper proven, 503/403/429 paths all live-verified via
  a real uvicorn probe (curl roundtrip: 201→list→snapshot→403→429→204→404).
- Security: no secrets in sandbox/api code or logs (sk-test key in tests is
  an anti-leak assertion fixture); CORS localhost-only, no credentials;
  documented gaps (userns != DAC write-barrier; in-ns children reparent to
  host PID 1 when supervisor is killed; per-sandbox NPROC shared at host
  uid) are present in unshare_backend.py, test_resource_limits.py, README,
  and are NOT relied on — RLIMIT_NPROC is never set, disk cap is the G-2
  sweep not a kernel quota.
- Quality: pnpm ai:lint = ruff clean; pnpm ai:bootstrap idempotent (exit 0);
  all config keys env-overridable (AI_SANDBOX_*); zero cloud calls in
  sandbox/api tests (mock-first verified by grep).

Must-haves 1-8 (PLAN.md Phase 1): all SATISFIED.

---ci---
phase: 1
milestone: v0.3
status: verify
requirements:
  covered: [REQ-3-001, REQ-3-002]
  partial: []
lessons:
  - util-linux 2.38 lacks unshare --bind; the in-namespace mount shim is the
    correct swap — keep the rlimit-on-payload-only ordering (bind, then
    ulimit, then exec) so unshare/mount stay unconstrained.
  - tmp_path under /tmp breaks the backend (in-ns tmpfs shadows host /tmp);
    repo-anchored tests/sandboxes/ is the load-bearing fixture choice.
  - pnpm on this box needs 'corepack enable' before turbo can resolve the
    package-manager binary; bootstrap env setup, not a repo defect.
---/ci---
This commit is contained in:
CIAgent
2026-09-11 18:42:09 +00:00
parent b01de4be7d
commit 76f15622d6

Diff Content Not Available