Repository navigation
[2/6] Add agent-bound protection policy and plugin API - #1876
Draft
shellz-n-stuff wants to merge 1 commit into
Draft
shellz-n-stuff wants to merge 1 commit into
shellz-n-stuff wants to merge 1 commit into
Conversation
Co-authored-by: Codex <codex@openai.com> Signed-off-by: Alex Rosenzweig <arosenzweig@squareup.com>
This was referenced Oct 29, 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.
Agent protection must remain bound to the native-held identity across community memberships, policy changes, and running sessions. This adds native policy defaults and revisioned compare-and-swap, exclusive custody checks, and sticky version-3 identity storage, together with the shared
agentProtectionservice and runner enforcement that consume them.Plugins own policy content and review decisions. Buzz captures the provider and policy, routes manifest-declared workers through native containment, stops unsupported protected runs, and retires existing runtime sessions before changing protection. Shared Buzz tools check immutable arguments and conversation evidence; signing and stale handles remain bound to the active run. Browser identity projection continues to expose only public metadata.
Policy persistence, custody, shared service, runner, MCP, and identity projection coverage accompany their owners here. Runtime-specific adapters land in the following PRs and remain unavailable for protected work until their integration is present.
Code flow
Policy changes retire every membership before native compare-and-swap. An enabled action check continues only on exactly
true.Illustrative flow; checks shown enabled. Source: service.ts, runner.ts, app_agent.rs.
Review and merge bottom to top:
Validation
TypeScript and focused shared-service, runner, MCP and identity-projection tests pass (434 passed, 1 skipped). Native policy/controller tests (86), custody tests (12) and webview permission test (1) pass. Persistence and enforcing runner code land together.
Draft. Human app acceptance remains pending. The stack preserves the original implementation without functional changes from splitting it.