feat(extension): expire managed Agent Task policy - #94
Draft
seonghobae wants to merge 12 commits into
Draft
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 PR #85.
Buyer/security gap
PR #85 makes Agent Task extension admission an exact managed allow-list but deliberately carries no policy freshness. A previously valid managed-extension set must not remain replayable indefinitely after enterprise policy changes.
TDD / RCA sequence
f4521bacf98f052f275fc87d0f75c108f6e096e9established the missing freshness boundary before production changed. The tests require one explicit half-open validity window, caller-supplied trusted evaluation time, fail-closed invalid/reversed windows, not-yet-valid and expired decisions, exact-boundary expiry,u64::MAXsafety, exact extension identity matching, and preservation of the separate Agent capability boundary.AgentTaskExtensionPolicystoresvalid_fromandvalid_until;evaluate_agent_task_extensionreceives the trusted evaluation time; invalid windows, not-yet-valid policy and expired policy have separate typed denials; membership is evaluated only after freshness checks; and the policy window is bounded rather than becoming indefinite ambient authority. The implementation does not read or attest a clock, so all time values remain in one caller-attested time domain.891e8b7271d4e1cfcda615053efe54ddf4ce2627failed exact CI run32024561674, Rust contracts job95371180991, 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.ed6d191802d378303d1dd71a742f86592f206639non-destructively reconciles the live feat(extension): bound Agent Task managed extension admission #85 parent while preserving this PR's freshness semantics. The repair adapts only that negative-capability request to supply a valid controlled HTTPS origin and trusted time, preserving the assertion that managed-profile admission does not mint Agent capability. No production authority or evidence gate was weakened.Live dependency / stack state
The independently resolved live prerequisite is exact PR #85 head
a3cfb7cc763841fa6953b459bd7c6f4047cd6c6d. Current exact #94 head ised6d191802d378303d1dd71a742f86592f206639.Fresh compare reports ahead 12 / behind 0, with merge base exactly the live prerequisite. The unique freshness delta is again limited to
CHANGELOG.md,crates/originweave-policy/src/lib.rs, andcrates/originweave-policy/tests/agent_task_extension_policy.rs. The reconciliation preserves prerequisite native-messaging/core authority changes without promoting any prerequisite review, check, status, coverage, mergeability, or synthetic-merge evidence to this head.Keep Draft while #85/#83/#82 remain active.
Current exact-head evidence
For unchanged exact head
ed6d191802d378303d1dd71a742f86592f206639on exact live prerequisitea3cfb7cc763841fa6953b459bd7c6f4047cd6c6d:32077245758: success;95532953003: repository contracts, canonical formatting, locked workspace/all-target check, full tests, strict Clippy, and rustdoc success;95532953056: exact owned production function/line/region/branch measurement and enforcement success;Manifest V3, Security/SAST and central/model workflows not returned for this stacked Draft are absent evidence, not passing evidence. 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 slice governs deterministic managed-extension policy validity time. It does not authenticate an administrator, read Chrome enterprise policy, attest a clock, install/enable/disable extensions, verify extension signatures/update provenance, mutate profiles, grant Agent capability, authorize native messaging, persist policy, or claim managed enterprise extension support complete.