feat(extension): bound Agent Task managed extension admission - #85
Draft
seonghobae wants to merge 14 commits into
Draft
feat(extension): bound Agent Task managed extension admission#85seonghobae wants to merge 14 commits into
seonghobae wants to merge 14 commits into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This was referenced Aug 11, 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.
Partial implementation of #27, stacked on live PR #83 (
feat/attached-tab-reduced-assurance).Buyer/security gap
Issue #27 requires Agent Task mode to default to no extensions or an explicit managed allow-list. Existing work separates Chromium extension permissions, OriginWeave Agent grants, native-messaging host authority, and attached-tab assurance, but there was no production policy primitive that answered the narrower question: may this exact extension identity be present in an isolated Agent Task profile under the managed extension admission policy?
Current dependency / stack state
The independently resolved live prerequisite is exact #83 head
2412fb1f7eefd61f4e71985ece378a5604ac77b6. Current exact #85 head isa3cfb7cc763841fa6953b459bd7c6f4047cd6c6d.Fresh compare from the exact live prerequisite reports ahead 14 / behind 0, with merge base exactly
2412fb1f7eefd61f4e71985ece378a5604ac77b6. The unique managed-extension policy delta remains limited toCHANGELOG.md,crates/originweave-policy/src/lib.rs, andcrates/originweave-policy/tests/agent_task_extension_policy.rs. No prerequisite review, check, status, or synthetic-merge evidence transfers.Keep Draft while #83/#82 remain active.
TDD / RCA sequence
23f128fc84b2d2b5b4c188211575ef69c5c5d070established the intended production-boundary RED. CI run31490857300, Rust contracts job93776779728, passed repository contracts and formatting then failed at the workspace check with E0432 because the managed Agent Task admission API did not exist.originweave-policy, notoriginweave-core: core owns stable extension identity/grant value contracts, while policy owns fail-closed decisions. The test was therefore moved to the policy crate rather than widening the core authority surface.AgentTaskExtensionPolicy,AgentTaskExtensionDecision, andevaluate_agent_task_extension. An empty policy denies all; only exact canonicalExtensionIdmembership is admitted; duplicate entries collapse without widening authority; and policy admission never mintsExtensionAgentGrantcapability.a1234974e6c386859b315f12d4bc0f098cdc332afailed CI run32026832564, Rust contracts job95377888012, atcargo check --locked --workspace --all-targets: the prerequisite had hardenedExtensionAccessRequest::newto require canonicalOriginplus trusted evaluation time, while this branch-local negative-capability test still supplied the former four-argument request shape.a3cfb7cc763841fa6953b459bd7c6f4047cd6c6dperforms the smallest compatibility repair in the existing owning test: it supplies a valid controlled HTTPS origin and trusted time while preserving the assertion that managed-profile admission alone still yieldsDenyMissingGrant. No production authority was widened and no gate was weakened.Current exact-head evidence
For unchanged exact head
a3cfb7cc763841fa6953b459bd7c6f4047cd6c6don exact live prerequisite2412fb1f7eefd61f4e71985ece378a5604ac77b6:32076921926: success;95531989724: repository contracts, canonical formatting, locked workspace/all-target check, full tests, strict Clippy, and rustdoc success;95531989810: exact owned production function/line/region/branch measurement and enforcement success;Only checks actually returned for this exact stacked head are represented above. Manifest V3, central Security/SAST/OpenCode/Noema/Strix checks absent for this Draft base are absent, not passing. No predecessor-head, prerequisite-head, synthetic merge, queued, pending, skipped, cancelled, stale, status-only, or model-only evidence is promoted as current proof.
Truth boundary
This policy primitive does not read Chrome enterprise policy, install/enable/disable extensions, verify signatures or update provenance, mutate a browser profile, launch Chromium, persist policy, authenticate an administrator, authorize native messaging, or grant any OriginWeave Agent capability/action. A future trusted profile/enterprise-policy adapter must derive the exact managed extension set from independently authenticated policy and compose it with Chromium startup/install state.
This PR does not close #27. Passing automation is not independent approval, and this scheduled actor does not merge or self-approve.