Skip to content

feat(extension): isolate extension access from agent authority - #34

Merged
seonghobae merged 3 commits into
mainfrom
feat/extension-agent-authority
Aug 9, 2026
Merged

seonghobae merged 3 commits into
mainfrom
feat/extension-agent-authority

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 9, 2026 •

Copy link
Copy Markdown
Contributor

Buyer-visible gap

Begins #27 with a bounded reusable authority contract before Chromium integration: Chrome/Manifest V3 extension identity or permissions must never become OriginWeave Agent authority by ambient implication.

Implemented slice

  • validates canonical Chromium extension IDs as exactly 32 lowercase a-through-p characters without caller-controlled normalization;
  • defines bounded OriginWeave extension capabilities (ObserveCurrentContext, ProposeTypedAction);
  • binds each explicit host-originated grant to one extension identity, browser session, browsing context, and capability set;
  • evaluates requests fail-closed for missing grant, extension mismatch, session mismatch, context mismatch, and ungranted capability;
  • never consults ambient Chrome permissions, install state, page content, or extension messages as Agent authority;
  • remains pure Rust and browser-engine independent so a future Chromium adapter must construct and re-evaluate explicit OriginWeave grants at the authority crossing.

TDD lineage

The fail-first contract was committed before the production API. Exact RED head ec5429aca2e941117cac98af6ee9c2295cf4e889 reached cargo check --locked --workspace --all-targets in CI run 31320971404 and failed specifically with unresolved imports for ExtensionId, ExtensionAgentGrant, ExtensionAccessRequest, ExtensionAgentCapability, ExtensionAccessDecision, and evaluate_extension_access.

Production head 8c36dd26aeef18cc47e26b2cb56cb0b9320c746f implements that exact bounded contract.

Exact-head verification

On unchanged exact head 8c36dd26aeef18cc47e26b2cb56cb0b9320c746f:

  • CI run 31321538741 completed successfully;
  • SAST Semgrep run 31321538748 completed successfully;
  • Security Scan run 31321538754 completed successfully;
  • CodeRabbit exact-head status is successful;
  • no review threads are currently returned.

The branch is behind current protected main but GitHub currently reports it mergeable without conflicts; current live base and repository policy must be revalidated immediately before integration, and predecessor-head evidence never substitutes for this exact source head.

Scope boundary

This is only the reusable authority kernel. It does not yet claim Manifest V3 runtime compatibility, Chromium extension loading/update/restart behavior, signature verification, enterprise policy distribution, native messaging, secret-broker access, or real browser enforcement. Those remain acceptance work under #27, including the executable pinned-Chromium compatibility matrix.

Partial implementation of #27.

@coderabbitai

coderabbitai Bot commented Aug 9, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

@seonghobae, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 17 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 559ccde6-3a8a-4877-89dd-aa6b4067a443

📥 Commits

Reviewing files that changed from the base of the PR and between 6e24acc and 8c36dd2.

📒 Files selected for processing (2)
  • crates/originweave-core/src/lib.rs
  • crates/originweave-core/tests/extension_authority.rs

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.

@seonghobae
seonghobae marked this pull request as ready for review August 9, 2026 15:46
@seonghobae
seonghobae merged commit 076da42 into main Aug 9, 2026
29 checks passed
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