feat(extension): bound Agent Task managed extension admission - #85
feat(extension): bound Agent Task managed extension admission#85seonghobae wants to merge 28 commits into
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks 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 |
…sion-policy-freshness feat(extension): expire managed Agent Task policy
Signed-off-by: Seongho Bae <me@seonghobae.me>
|
Restacked this branch onto its current parent #83 at |
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.