Skip to content

chore(sandbox): land the merged uid-remap and OpenClaw compat work on integration - #33

Merged
isadominguez314 merged 5 commits into
integrationfrom
feat/sandbox-all-harnesses
Sep 11, 2026
Merged

isadominguez314 merged 5 commits into
integrationfrom
feat/sandbox-all-harnesses

Conversation

@isadominguez314

Copy link
Copy Markdown
Collaborator

Follow-up carrier PR: feat/sandbox-all-harnesses no longer flows to integration on its own now that #14 is merged, so this brings over the two PRs merged into the branch since then.

  • fix(tf): pass HOME to local-exec provisioners that need it #26 — pass HOME to the tofu local-exec provisioners whose setup scripts read it under set -u, so clean-environment runners don't die with "HOME: unbound variable" before the agent starts.
  • Fix sandbox ownership, cleanup and OpenClaw provider compatibility #29 — remap out-of-range host uids/gids (external-IdP identities past docker's int32 --user limit) instead of failing to start, with chown coverage for the workspace, fixtures and the generated kubeconfig; owner-scoped container naming and sweep so parallel runs can't reap each other; and OpenClaw provider compat (node-fetch shim, headless anthropic-vertex auth profile, model catalog additions).

No new code beyond those two merges. Two deliberate behavior changes from #29, flagged at merge time: OpenClaw's _build_env now forwards ambient provider keys (e.g. OPENAI_API_KEY) across the sandbox boundary even without AGENT_API_KEY, and sweep_stray_containers is a no-op unless BENCH_AGENT_SANDBOX_OWNER is set, so crash orphans are no longer reaped by default.

🤖 Generated with Claude Code

geojaz and others added 5 commits September 10, 2026 14:54
Each prebuilt stack's setup script runs under `set -euo pipefail` and
reads $HOME on its first working line, for the KUBECONFIG default and
the leading-~ expansions:

    export KUBECONFIG="${KUBECONFIG:-$HOME/.kube/config}"
    REPO_PATH="${REPO_PATH/#\~/$HOME}"

A local-exec provisioner inherits only the environment tofu was invoked
with. A caller that constructs an allowlisted environment has no HOME to
pass through unless it had one itself, so the script aborts immediately:

    ./scripts/setup.sh: line 35: HOME: unbound variable

and the apply fails during provisioning, before the agent ever starts.

This does not reproduce from a login shell, which is why it survives
interactive use and only appears on an automated runner that builds a
clean environment. Every stack whose script reads $HOME is affected.

Stacks with no provisioner, or whose provisioner runs an inline command
that never reads $HOME, are left alone.
fix(tf): pass HOME to local-exec provisioners that need it
Fix sandbox ownership, cleanup and OpenClaw provider compatibility
@isadominguez314
isadominguez314 merged commit 99310bc into integration Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants