Repository navigation
Conversation
This was referenced Oct 9, 2026
6 tasks
zkwentz
force-pushed
the
zkwentz/openenvd-k5-unit
branch
from
October 12, 2026 17:35
7eccfe5 to
32ab710
Compare
zkwentz
force-pushed
the
zkwentz/openenvd-k5-unit
branch
from
October 13, 2026 00:31
32ab710 to
a276605
Compare
1 task done
zkwentz
force-pushed
the
zkwentz/openenvd-k5-unit
branch
from
October 13, 2026 01:09
a276605 to
28c1e9b
Compare
zkwentz
force-pushed
the
zkwentz/openenvd-k5-unit
branch
from
October 13, 2026 01:29
28c1e9b to
c8cf4f6
Compare
zkwentz
force-pushed
the
zkwentz/openenvd-k5-unit
branch
from
October 13, 2026 14:24
2e24d20 to
2848aa7
Compare
Part 5 of 5 of openenvd on kernel primitives (#1053). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
In a Novita Firecracker microVM, /run is a fresh tmpfs, so the image's /run/openenvd is gone and crun can't create it through the read-only bind of /. openenvd now creates missing mount destinations before starting a container on the root bind. systemd also makes / shared, so the bind of / joined its peer group and the lazy unmount at shutdown detached the VM's own /tmp. Binds now leave the peer group right after they are made. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The shim spec carries only argv, env, forwarders and workdir. The enforcement check drops the AF_INET probe, which only a strict zone failed; connecting outside the unit is still probed in every zone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
zkwentz
force-pushed
the
zkwentz/openenvd-k5-unit
branch
from
October 13, 2026 17:35
2848aa7 to
f01034d
Compare
This branch has not been deployed
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
This puts it together. openenvd starts as PID 1 of every image, runs the preflight, and either isolates or steps aside.
Each container's only way out is one socket that openenvd hands it. Nothing in a zone can address openenvd or another zone directly.
daemon.py:port.isolation disabled: <reasons>andexecs the environment's ownuvicornapp on the same port, exactly as the image ran before.--require-isolation(orOPENENVD_REQUIRE_ISOLATION=1) turns that fallback into a refusal, for production launchers.unit.py:inspect/resumefreeze and thawzones/agent;doneit kills the agent zone and waits for the kernel to report it empty;nosymfollow), with custody copies between them;agent_misbehaviorversusinfrastructure_error;GET /verdict.runtime.py. Thecrundriver and mount helpers.openenv check preflightsays whether isolation would be on here;openenv check enforcementstarts throwaway probe containers in every zone and tries what each zone must not be able to do.Grading
Agent code runs only where answers aren't, and answers exist only where agent code doesn't run. Each step starts only after the previous container's cgroup reports empty.
Test plan
tests/core/test_openenvd/integration/run.shruns the live tests in Docker twice:/verdict.isolation disabledand the echo env serves/mcpunchanged./run;/as shared and unmounting the bind of/would otherwise unmount the VM's/tmp.Stack
Part of openenvd on kernel primitives (#1053). Review bottom-up; each PR shows only its own layer.
Deployment assumption: openenvd ships in every image. Run privileged (a microVM in production, or
docker run --privilegedin development) and it isolates. Run any other way and it logsisolation disabledand serves the environment exactly as before.The trace machinery (hash-chained trace, seal, harness self-report cross-check,
/observe) is parked onzkwentz/openenvd-with-traceand is out of this stack's scope.🤖 Generated with Claude Code