Skip to content

feat(extension): expire managed Agent Task policy - #94

Draft
seonghobae wants to merge 12 commits into
feat/agent-task-managed-extension-policyfrom
feat/agent-task-extension-policy-freshness
Draft

feat(extension): expire managed Agent Task policy#94
seonghobae wants to merge 12 commits into
feat/agent-task-managed-extension-policyfrom
feat/agent-task-extension-policy-freshness

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

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

  1. Exact test-only head f4521bacf98f052f275fc87d0f75c108f6e096e9 established 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::MAX safety, exact extension identity matching, and preservation of the separate Agent capability boundary.
  2. Production carries the deterministic implementation: AgentTaskExtensionPolicy stores valid_from and valid_until; evaluate_agent_task_extension receives 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.
  3. After the live prerequisite advanced, exact old head 891e8b7271d4e1cfcda615053efe54ddf4ce2627 failed exact CI run 32024561674, Rust contracts job 95371180991, at cargo check --locked --workspace --all-targets: the prerequisite had hardened ExtensionAccessRequest::new to require canonical Origin plus trusted evaluation time, while this branch-local negative-capability test still supplied the former four-argument request shape.
  4. Current exact head ed6d191802d378303d1dd71a742f86592f206639 non-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 is ed6d191802d378303d1dd71a742f86592f206639.

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, and crates/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 ed6d191802d378303d1dd71a742f86592f206639 on exact live prerequisite a3cfb7cc763841fa6953b459bd7c6f4047cd6c6d:

  • CI run 32077245758: success;
  • Rust contracts job 95532953003: repository contracts, canonical formatting, locked workspace/all-target check, full tests, strict Clippy, and rustdoc success;
  • Production coverage job 95532953056: exact owned production function/line/region/branch measurement and enforcement success;
  • GitHub reports the Draft mergeable;
  • formal reviews currently returned: none; and
  • inline review threads currently returned: none.

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.

@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: c4ca3aad-5a34-4343-9807-2c3389fcfd7c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant