Skip to content

pkg/sandbox: add direct backend for Kubernetes in-pod execution#214

Open
qu0b wants to merge 2 commits into
masterfrom
qu0b/panda-client-credentials
Open

pkg/sandbox: add direct backend for Kubernetes in-pod execution#214
qu0b wants to merge 2 commits into
masterfrom
qu0b/panda-client-credentials

Conversation

@qu0b

@qu0b qu0b commented Jun 12, 2026

Copy link
Copy Markdown
Member

Adds a direct sandbox backend to panda-server that runs Python as a subprocess instead of inside a Docker container. Intended for the Kubernetes deployment where the pod boundary itself provides isolation — no dockerd, no sandbox image, no privileged container needed.

Config: sandbox.backend: direct

See also:

@qu0b qu0b added the build label Jun 12, 2026
Runs Python as a subprocess inside the panda-server container, relying on
the Kubernetes pod boundary for isolation — no dockerd, no sandbox image,
no privileged container. For the EthPandaOps devnet chat (panda-chat
chart), which runs panda-server unprivileged.

- sandbox/direct.go: DirectBackend (Service impl). Builds the child env
  from SandboxEnvDefaults + a non-sensitive passthrough allowlist + req.Env,
  NOT os.Environ() — so PANDA_BOT_* never reaches untrusted, LLM-generated
  code. No sessions (the agent doesn't use them).
- sandbox/sandbox.go: BackendDirect ("direct") + New() case.
- config.go: sandbox.image only required for docker/gvisor backends.
- direct_test.go: regression gate that the bot token can't leak.

client_credentials auth and PANDA_ON_BEHALF_OF (from the earlier state of
this branch) already landed on master, so this is now direct-backend only.
@qu0b qu0b force-pushed the qu0b/panda-client-credentials branch from 6e51e04 to 2c3b20e Compare June 12, 2026 19:37
@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

🐼 Smoke eval — 4c57b49: ❌ 7/8 pass

📊 Interactive report — tokens p50 14,939 · tokens/solve 21,151.

Reference points: qu0b/panda-client-credentials@2c3b20e 100% · v0.36.0 100% · master@e33748e 100%.

question result tokens tools
forky_node_coverage 14,564 5
tracoor_node_coverage 13,162 3
mainnet_block_arrival_p50 15,319 7
list_datasources 12,574 2
block_count_24h 16,040 8
missed_slots_24h 14,939 5
chartkit_default_arrival_distribution 39,366 18
storage_upload_session_scoped 22,091 15
🔭 Langfuse traces (8 runs; ⚠️ = failed)

The report walks this branch's commits against the master baseline and the most recent release. A self-contained copy is in the run's eval-smoke-* artifact.

@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Docker images built

Commit: 657e208

Component Image
Server ethpandaops/panda:server-pr-214-657e208
CLI ethpandaops/panda:pr-214-657e208
Proxy ethpandaops/panda:proxy-pr-214-657e208
Sandbox ethpandaops/panda:sandbox-pr-214-657e208

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant