Skip to content

docs(confinement): add execution-scope path-set model with order_create example - #740

Open
omwei-org wants to merge 1 commit into
agentrust-io:mainfrom
omwei-org:eabc-order-create-path-set
Open

omwei-org wants to merge 1 commit into
agentrust-io:mainfrom
omwei-org:eabc-order-create-path-set

Conversation

@omwei-org

Copy link
Copy Markdown

Summary

This change introduces an explicit protected-effect path-set model and makes execution-scope coverage visible for the confinement documentation.

Key changes

  • New section: Execution scope and path sets in docs/confinement.md
  • Path classification: Distinguishes agent-side (enforceable/testable through confinement) vs deployment-side (declared boundaries whose coverage remains NOT ESTABLISHED unless independently observed) paths
  • Worked example: Uses order_create as the protected effect with four declared paths (P1-P4)
  • Coverage model: P1-P3 (agent-side) are ENFORCED/TESTED via existing confinement fixtures; P4 (deployment-side) is DECLARED/NOT ESTABLISHED (requires deployment-level observation)
  • Test documentation: Maps existing confinement tests to the path-set model

Design rationale

The model explicitly distinguishes four different claims:

  1. Authorization (existing cMCP mechanism)
  2. Correlation (existing cMCP mechanism)
  3. Observation (existing cMCP mechanism)
  4. Complete mediation (new: addressed by path-set declaration)

This avoids conflating authorization with universal complete mediation. The model supports a scoped NON_BYPASSABILITY claim; it does NOT establish universal complete mediation.

Test plan

  • Code compiles successfully
  • Synchronous unit tests pass (25/25 in test_adapter.py)
  • Async test failures are pre-existing infrastructure issue (missing pytest-asyncio)
  • Linux Docker tests require CMCP_CONFINEMENT_IMAGE environment variable
  • No new test files added; existing tests mapped to path-set model via docstrings

Related issues

Generated with Devin: https://devin.ai

…te example

Extends the confinement documentation to address issue agentrust-io#736's execution-scope
question by defining a path-set model for protected effects. The model distinguishes:

- Agent-side paths: originating from the agent/runtime, enforceable and testable
  by confinement machinery (e.g., gateway path, alternate endpoint, filesystem/subprocess)
- Deployment-side paths: outside agent's enforcement domain, requiring
  independent deployment-level observation (e.g., external service writing to DB)

Implements a worked example for order_create as the protected effect,
demonstrating four distinct paths (P1-P4) with clear coverage status:
- P1: ENFORCED/TESTED (gateway path, validated by test_confinement_and_fresh_restart)
- P2: ENFORCED/TESTED (alternate endpoint, validated by network mutation tests)
- P3: ENFORCED/TESTED (filesystem/subprocess, validated by filesystem mutation tests
  and network namespace inheritance blocking subprocess network escape)
- P4: DECLARED/NOT ESTABLISHED (deployment-side, requires independent observation)

Adds documentation linking this to EABC's NON_BYPASSABILITY(B,E) claim
while explicitly noting that gateway mediation alone does not prove universal
complete mediation.

Updates test docstrings to map existing confinement tests to the path-set model,
clarifying that test_linux.py validates agent-side path coverage (P1-P3) while
deployment-side paths require separate deployment-level evidence.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Thanks for this, @omwei-org. Closing it for now, and it is not about the change itself.

This repository asks first-time contributors to be vouched by a maintainer before opening a pull request. That is because agent-written contributions are easy to produce and expensive to review, and we would rather talk to you first than review something neither of us can explain.

To get vouched: open an issue saying what you want to change and why, in your own words. A maintainer will reply, and add you with /vouch. After that, reopen this pull request or open a new one.

See CONTRIBUTING.md for the detail.

@rajnisht7 rajnisht7 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR direction looks good, but a few places overstate and needs to be tightened:

  • “Addressed by declaring” - Declaring a path set only scopes the claim whereas it does not prove complete mediation. it can be stated directly
  • order_create vs tests : P1–P3 are marked ENFORCED/TESTED for order_create, but the fixtures only uses synthetic tools and a canary. kindly call this an illustrative example of generic confinement coverage, not proof of order_create
  • “All alternate paths” : That test only covers the paths this fixture exercises. it would be good to drop “all” (the limits section already says coverage is partial).
  • Network mutation proves the tested escapes (TCP/IPv6/DNS), not every possible route to order_create. kindly narrow the wording.
  • File write and subprocess - network are different paths. kindly split them or only claim what was tested
  • Listing P1–P4 does not show the list is complete. it will be good to separate “this path was tested” from “the set is complete"
  • If P4 is NOT ESTABLISHED, kindly state that overall claim for that effect is also NOT ESTABLISHED
  • Logging / sink - Those are confinement checks, not order_create paths. it will be good to keep them out of P1–P3.
  • Mutation tests : They show a control was necessary when removed. kindly dont treat them alone as full path coverage
  • it would be nice to link or briefly define EABC NON_BYPASSABILITY(B,E)

@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants