Skip to content

chore: align sandbox tooling and policies with upstream OpenShell#24

Merged
drew merged 2 commits intomainfrom
chore/align-sandbox-tooling-and-policies
Mar 13, 2026
Merged

chore: align sandbox tooling and policies with upstream OpenShell#24
drew merged 2 commits intomainfrom
chore/align-sandbox-tooling-and-policies

Conversation

@drew
Copy link
Collaborator

@drew drew commented Mar 12, 2026

Summary

Aligns the community base sandbox container and network policies with the upstream NVIDIA/OpenShell sandbox that is being removed from deploy/docker/sandbox/. After this change, all tools and policies from the upstream sandbox are present in the community repo.

Base Dockerfile (sandboxes/base/Dockerfile)

  • Added coding agents: Claude CLI (native installer), OpenCode CLI (1.2.18), Codex CLI (0.111.0)
  • Pinned versions for reproducibility: Node.js 22.22.1, npm 11.11.0, uv 0.10.8
  • Added python3.13-dev package (needed for native extensions)
  • Added @hono/node-server@1.19.11 transitive vulnerability fix (GHSA-wc8c-qw6v-h7f6)
  • Created writable /sandbox/.venv overlay with --system-site-packages so sandbox users can pip install
  • Set environment variables: PATH, VIRTUAL_ENV, UV_PYTHON_INSTALL_DIR in both Dockerfile ENV and .bashrc
  • Baked GitHub skill (skills/github/SKILL.md) — REST-only gh CLI usage guide
  • Created /sandbox/.claude/skills/ with symlinks into .agents/skills/ for agent discovery

Network Policies (openclaw/policy.yaml, nemoclaw/policy.yaml)

  • Added 3 missing policies: pypi (pip/uv package installs), cursor (Cursor IDE), opencode (OpenCode CLI)
  • Fixed vscode wildcard endpoints — replaced *.vo.msecnd.net and *.gallerycdn.vsassets.io with exact hosts (az764295.vo.msecnd.net, gallerycdn.vsassets.io) since OPA uses exact host matching
  • Removed hardcoded repo-specific rules — replaced johntmyers/alpha-claw and johntmyers/bravo-claw write rules with generic read-only access matching upstream
  • Renamed policies to match upstream naming: githubgithub_ssh_over_https, nvidianvidia_inference, github_reposgithub_rest_api
  • Normalized policy names to use hyphens (e.g., claude_codeclaude-code)
  • Kept community-specific extras: gitlab, nvidia_web, cluster_pods, inference

Upstream policy coverage

All 8 upstream network policies are now present: claude_code, github_ssh_over_https, nvidia_inference, github_rest_api, pypi, vscode, cursor, opencode.

drew added 2 commits March 12, 2026 18:46
Add missing coding agents (Claude CLI, OpenCode, Codex), pin versions
for reproducibility (Node.js 22.22.1, npm 11.11.0, uv 0.10.8), create
a writable /sandbox/.venv overlay, set PATH/VIRTUAL_ENV/UV_PYTHON_INSTALL_DIR
env vars, and bake the GitHub REST-only skill into the base image.

Align openclaw and nemoclaw network policies with upstream: add pypi,
cursor, and opencode policies; fix vscode wildcard endpoints that
silently fail with OPA exact-match; replace hardcoded repo-specific
write rules with generic read-only access; normalize policy names to
use hyphens.
…nd clean up policies

- Remove deadsnakes PPA, apt Python packages, and pip bootstrap; let uv
  manage the full Python 3.13 toolchain
- Merge Node.js install + npm upgrade into a single RUN layer
- Merge all npm global installs (vuln fixes + CLI tools) into one call
- Add uv cache clean after python install and venv creation
- Copy base policy.yaml into the image instead of just creating the dir
- Remove duplicate UV_PYTHON_INSTALL_DIR ENV and redundant mkdir
- Update syntax directive from dockerfile:1.4 to dockerfile:1
- Revert nemoclaw/openclaw policies to main and replace repo-specific
  rules (johntmyers/alpha-claw, bravo-claw) with generic placeholders
@drew drew force-pushed the chore/align-sandbox-tooling-and-policies branch from f89cc63 to 0d6d027 Compare March 13, 2026 01:46
@drew drew merged commit d430717 into main Mar 13, 2026
5 checks passed
drew added a commit that referenced this pull request Mar 13, 2026
The cluster_pods allowed_ips policy was accidentally removed in #24.
This policy allows sandbox binaries to reach services on the k3s
cluster pod network (10.42.0.0/16), which is required for internal
service communication.
drew added a commit that referenced this pull request Mar 13, 2026
The cluster_pods allowed_ips policy was accidentally removed in #24.
This policy allows sandbox binaries to reach services on the k3s
cluster pod network (10.42.0.0/16), which is required for internal
service communication.
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.

1 participant