Repository navigation
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.
Define dynamic repository enclave contract #8196
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
Define dynamic repository enclave contract #8196
Changes from 2 commits
0525609cc98d2b1f6500883dc208File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The contract should require a versioned, closed allowlist of repository-scopable read-only GitHub tools. Merely requiring tools to be policy-approved could permit write operations or tools whose arguments escape the admitted repository scope. Those operations should fail closed until their repository confinement can be enforced.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Addressed in
1f65008: dynamic mode now requiresgithub-repository-read-v1, a closed versioned allowlist of repository-scopable read-only tools, and fails closed for writes, unscoped search, repository discovery, or tools that cannot be mechanically confined.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This one-repository guarantee does not hold for existing static GitHub-enabled agent enclaves. Their job-lifetime mcpg identity covers the union of configured repositories, so an invocation assigned one seed can still read sibling repositories through GitHub MCP. Please scope this guarantee to dynamic mode or require per-invocation repository-scoped identities for static GitHub access too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Addressed in
1f65008: the one-repository guarantee is now scoped to dynamic admissions and static seed exposure, with an explicit caveat for existing static GitHub-enabled agent enclaves using a union-scoped job-lifetime mcpg identity.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Dynamic mode cannot currently support
enclave_run_script: script enclaves are explicitly no-network, and this mode provides no immutable seed. The script would have no path to repository contents. Please either restrict dynamic admission to agent entries or define a secure repository-access topology for dynamic script execution.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Addressed in
1f65008: dynamic admission now rejectsenclave_run_scriptand is limited toenclave_run_agentunless a future ADR defines a secure dynamic script repository-access topology.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This does not yet define an implementable trust contract. The compiler is not a runtime service, and mcpg currently receives fixed identities and policies at startup. Please identify the component responsible for delegation and specify the authenticated control channel, capability ownership, atomic create/confirm/revoke semantics, restart recovery, and required component version gates.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Addressed in
1f65008: the docs now define mcpg’s dynamic-delegation controller, the private authenticated control channel, AWF-owned control capability, atomic create/confirm/revoke semantics, restart recovery, and required version gates.