Add fail-closed Windows Node + MXC sandbox - #216
Merged
yikkuro (yikkuro) merged 24 commits intoAug 25, 2026
Merged
Conversation
Relates to security framework issue #202. Adds fail-closed policy generation, Windows Companion and MXC readiness attestation, contained smoke diagnostics, Security UI, and focused tests. Runtime activation remains blocked pending upstream cwd enforcement and atomic Gateway ingress quarantine. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Defer effective tool inventory drift enforcement until the managed Gateway WebSocket is connected. The sentinel locked policy remains mandatory while startup diagnostics complete. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Add generation-bound ingress release, signed helper activation leases, strict Gateway policy attestation, contained child-process readiness, and fail-closed drift handling for the experimental bundled Windows Node route. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Implement staged folder-policy reactivation and exact durable command approvals with fail-closed lifecycle, proof, process-tree, and rollback hardening. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Send the one-shot host bootstrap with EOF and bind host lifetime to the Electron owner process so startup can proceed into the Gateway connection without weakening descendant cleanup. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Remember the selected security mode, gate startup and toggles behind one serialized attended MXC readiness transaction, and keep loading state accurate until verified ingress is released. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Use transition-bound one-use HMAC proofs for the exact built-in hostname and PowerShell readiness checks while preserving attended approval for every normal system.run command. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This was referenced Aug 25, 2026
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
Closes #202.
This experimental Windows-only path packages a pinned, headless Windows Node capability host alongside MicroClaw and routes agent-controlled
system.runrequests through the managed OpenClaw Gateway into MXC (MxcCommandRunner->DirectAppContainerExecutor-> bundledwxc-exec.exe). MicroClaw's Electron UI and Gateway remain outside MXC; only node command payloads enter the container.Security model
Lifecycle and readiness
Remembered MXC selection is restored at startup. When enabled, chat ingress remains blocked on the loading screen while one serialized transition:
Toggling MXC on or off follows the same serialized, fail-closed loading transition. Restarts, disconnects, policy/tool drift, invalid probes, or stale leases revoke readiness and keep ingress closed. The cold compatibility-preload readiness budget is finite but allows up to five minutes for known slow Windows starts.
User experience
The Security page keeps the MXC toggle, concise Protected / Starting / Action required / Off state, actionable errors, global RO/RW folders, and remembered-command revocation visible. Node identity, lifecycle/generation, Gateway policy, activation lease, containment tier, contracts, fingerprints, attestation, declared commands, pairing, and smoke evidence are grouped in an accessible Technical details disclosure that starts collapsed.
Runtime and provenance
openclaw/openclaw-windows-nodebaseline atfc9add75eda78daf548d80a55ffb64e63b159961rather than copying its large subsystems.Validation
Completed focused validation across the Electron main process, renderer, compatibility/proof boundary, and Windows host:
No full installer packaging run was performed after the latest renderer-only Security UX changes.
Manual testing
hostname; confirm exactly one attended prompt appears and deny or allow it explicitly.Known constraints
This is an experimental Windows-only feature, not a claim of a fully mature production security boundary. MXC 0.7 is preview technology. Machines limited to
appcontainer-daclare accepted but prominently reported as degraded containment, and PowerShell currently requiresallowWindowsUi=trueas an MXC compatibility relaxation without enabling screen/input or other UI capabilities. Cold compatibility preload and Gateway startup can take several minutes.