Skip to content

feat(extension): identify reduced-assurance attached tabs - #83

Draft
seonghobae wants to merge 7 commits into
feat/native-messaging-host-authorityfrom
feat/attached-tab-reduced-assurance
Draft

feat(extension): identify reduced-assurance attached tabs#83
seonghobae wants to merge 7 commits into
feat/native-messaging-host-authorityfrom
feat/attached-tab-reduced-assurance

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Partial implementation of #27, stacked on PR #82.

Buyer/security gap

Issue #27 requires attached human-tab sessions to be identified as reduced-assurance when existing extensions can influence page state. The extension/native-host authority work separates Chromium permissions and native-host grants from OriginWeave Agent capability, but protected main has no typed classification for the weaker assurance of an attached human tab whose page state can be modified by existing extensions.

Dependency and exact stack state

This Draft targets PR #82's branch. The independently refetched live prerequisite is exact #82 head 28593cf991cc552968da54b722a887252a3695e7; this PR is now exact head 204cedb1bee54a40a6d6bc0b97719afd309c3f71.

The branch previously diverged from current #82 only because #82 added the numeric native-host-name coverage commit after this stack was opened. Exact blob comparison showed that crates/originweave-core/tests/native_messaging_authority.rs was already content-identical on both branches. A non-destructive merge-topology commit therefore added current #82 as the second parent while preserving the exact existing #83 tree. Fresh compare now reports #83 ahead of current #82 with behind_by=0 and merge base exactly 28593cf991cc552968da54b722a887252a3695e7; no prerequisite review/check is transferred.

Test-first implementation and correction

The original test-only head eeec42404d2b2135f5550e1fbc71456594d513c2 established the missing reduced-assurance classifier before production implementation.

A later API-truth audit found that the public variant name NoExtensionInfluence overstated what the documented boundary could prove: absence of trusted positive evidence is not proof that extensions are absent or unable to interfere. Exact correction test-only head 292736fc8a697292e4ec49224b4c43f673ac1de9 therefore required the uncertainty-safe public name NoKnownExtensionInfluence. CI run 31489921146, Rust contracts job 93773720465, passed repository contracts and formatting and then failed at the workspace check as intended because production still exposed the old variant.

The production classifier returns ReducedAssuranceReason::AttachedTabExtensionInfluence only when both facts are present: the control surface is an attached human tab and trusted adapter evidence says an extension can influence page state. NoKnownExtensionInfluence and isolated profiles are not labeled by this specific reduction rule.

Exact-head verification

For exact current head 204cedb1bee54a40a6d6bc0b97719afd309c3f71:

  • CI run 31536812406: success;
  • Rust contracts job 93929752779: success, including repository contracts, formatting, locked workspace/all-target check, full tests, strict Clippy and rustdoc;
  • Production coverage job 93929752710: success, including exact owned production function/line/region/branch enforcement;
  • Manifest V3 Compatibility run 31536812367: success;
  • GitHub reports this Draft mergeable against exact current feat(extension): bound native messaging host authority #82 head with no dependency lag; and
  • no formal reviews or inline review threads are currently returned for this exact head.

No predecessor-head check, review, mergeability result, or synthetic status is transferred to this current head.

Truth boundary

The API records one specific reduction reason. None and NoKnownExtensionInfluence must never be interpreted as proof of full trust, extension absence, inability to interfere, or high assurance. This lane does not detect installed extensions, inspect Chrome policy, prove extension absence, attach to a real browser, grant Agent authority, execute actions, or replace the separate managed-extension/native-messaging boundaries. A future trusted Chromium adapter must supply the attachment and extension-influence evidence.

Keep Draft while #82 remains active. This PR does not close #27, and fresh exact-head/live-base acceptance is required after any dependency movement.

@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: 648bedda-f98a-4428-894d-861bf911eb5b

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