Conversation
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Critical policy enforcement, network validation, and isolation issues remain unresolved.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 6
Open (6)
Enforce approved command policy before container execution · New Revalidate network ownership and isolation before container start · New Revalidate network and proxy state at launch · New Prevent cross-agent traffic on shared vendor networks · New Restrict Claude tools to the phase-approved tool set · New Disable Codex shell tool for agent invocations · New
What changed in this PR
Adds D3 vendor-only Docker egress and phase-specific agent policies, with expanded integration and policy tests.
Changes:
- Adds restricted vendor proxy networks.
- Enforces phase-specific tool and worktree controls.
- Expands Docker, network, policy, and CI validation.
- Critical review findings remain unresolved.
| File | Description |
|---|---|
test/agent-policy.test.ts |
Tests phase policy enforcement |
test/agent-network.test.ts |
Tests vendor-only egress |
test/agent-container.test.ts |
Tests container isolation |
agents/policy.ts |
Defines phase and vendor controls |
agents/network/proxy.mjs |
Implements CONNECT filtering |
agents/network/network.ts |
Creates and manages vendor networks |
agents/container/run.ts |
Validates network and proxy settings |
agents/container/profile.ts |
Attaches networks and policies |
agents/container/image.ts |
Updates Docker build context |
agents/container/Dockerfile |
Includes the egress proxy |
.github/workflows/agent-isolation.yml |
Runs expanded isolation tests |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This was referenced Sep 24, 2026
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Unresolved critical vendor-binding and proxy/network validation issues remain.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 4
Open (5)
Resolved since last review (6)
Disable Codex shell tool for agent invocations Restrict Claude tools to the phase-approved tool set Prevent cross-agent traffic on shared vendor networks Revalidate network and proxy state at launch Revalidate network ownership and isolation before container start Enforce approved command policy before container execution
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.


Problem and resulting behavior
D2 isolates agents in pinned containers, but those containers still need a narrowly controlled path to the selected model vendor and a phase-specific tool policy. This change adds D3 / T2: each agent runs on an internal Docker network whose CONNECT-only proxy permits only the pinned vendor hosts, while Claude/Codex web and MCP access are disabled and phase policies deny writes and command dispatch where the plan requires.
This PR is stacked on #40 (
codex/agent-isolation-d2) and should be reviewed as the D3 increment only.Scope
api.anthropic.com; pin Codex toapi.openai.comandchatgpt.com.Owned files:
.github/workflows/agent-isolation.ymlagents/container/Dockerfileagents/container/image.tsagents/container/profile.tsagents/container/run.tsagents/network/network.tsagents/network/proxy.mjsagents/policy.tstest/agent-container.test.tstest/agent-network.test.tstest/agent-policy.test.tstest/questions.test.tsValidation
Validated head:
981e831637c1d19c3b4c759e18cc5ec06e8a5f33npm run typechecknpx vitest run --no-file-parallelism— 16 files, 255 tests passed (serialized locally to avoid Docker resource contention; CI runs the default command)CLAUDE_CODE_OAUTH_TOKEN=... CODEBOOST_RUN_AUTH_PROBES=1 CODEBOOST_CODEX_AUTH_FILE=... npx vitest run test/agent-container.test.ts— 23 tests passed, including live Codex and Claude startup through vendor-only egressDependencies and deferrals
Review record
981e831.Closes the D3 increment tracked in #28; it does not close the full lane.