Experimental: replace AppContainer with mandatory Docker sandbox - #198
Open
yikkuro (yikkuro) wants to merge 4 commits into
Open
Experimental: replace AppContainer with mandatory Docker sandbox#198yikkuro (yikkuro) wants to merge 4 commits into
yikkuro (yikkuro) wants to merge 4 commits into
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1fe75171-fea2-45ef-9401-bf8a4ea0f2ba
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1fe75171-fea2-45ef-9401-bf8a4ea0f2ba
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1fe75171-fea2-45ef-9401-bf8a4ea0f2ba
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1fe75171-fea2-45ef-9401-bf8a4ea0f2ba
6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Security posture
Enforces
mode: all, Docker backend,scope: agent,workspaceAccess: none, pinnedmicroclaw-openclaw-sandbox:2026.7.1-1, read-only root, non-root user, dropped capabilities, resource limits,network: none,tools.exec.host: sandbox, elevated tools disabled, ACP disabled, and a conservative sandbox tool allowlist.Per-agent folder grants use only the native directory picker. Main-process validation canonicalizes paths, resolves reparse targets, rejects missing/overlapping/broad/system/state/credential locations, deduplicates case-insensitively, and generates collision-safe
/mnt/microclaw/...targets. Docker enforcesro/rw; no arbitrary container target is accepted.dangerouslyAllowExternalBindSourcesis enabled only on agents with validated managed bindings.Binding mutations are serialized and atomically persisted. The managed Gateway restarts to acknowledge the config, then only the selected agent's sandbox runtimes are recreated. Durable pending/error state blocks execution until recreation succeeds; desired config remains visible for retry. Scope migration recreates runtimes and removes only orphaned OpenClaw containers whose mounts belong to this exact state directory.
MicroClaw rejects unowned Gateways. Missing WSL2/Docker/Linux-container/image readiness fails Gateway/chat/agent execution closed, with no host or AppContainer fallback.
Validation
git diff --checkpassed.scope=agentand removed five orphaned state-owned session containers;Read-only file system;rw-live-ok;coderagent reported the main-only target absent;1000:1000, read-only root,network=none,capDrop=ALL,no-new-privileges, and no elevated access.This PR does not install/elevate/reboot/accept licensing for Docker or WSL, and does not retain AppContainer or host execution as fallback.
Related: closed prerequisite-only PR #196.