feat(extension): bound native messaging host authority - #82
Open
seonghobae wants to merge 5 commits into
Open
Conversation
📝 WalkthroughWalkthroughNative-messaging 호스트 이름 검증 타입과 명시적 접근 grant 평가 API를 추가했습니다. 확장 ID와 호스트 이름이 모두 일치할 때만 접근을 허용합니다. 관련 거부 조건과 확장 에이전트 capability 분리를 테스트합니다. ChangesNative messaging 권한 경계
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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 |
seonghobae
marked this pull request as ready for review
August 11, 2026 11:04
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.
Buyer/security gap
Issue #27 requires native messaging only behind an explicit host-managed allow-list and process boundary. Protected main already separates Chromium extension permission from OriginWeave Agent capability, but it has no typed native-messaging host authority. A future adapter must not be able to treat the manifest
nativeMessagingpermission or an arbitrary host-name string as OriginWeave authority.Test-first implementation
This branch is based directly on protected main
67af7c87589edc2039545af335c95064d9b8391c. Exact test-only headafea70bee5f479fc0b925be154fe79279fc34ae4established the missing production boundary before the narrow implementation was added.The contract requires:
The intended production boundary is deliberately narrow and deterministic. It does not launch a process, parse a host manifest, read the registry/filesystem, communicate over stdio, parse messages, expose secrets, grant Agent actions, or treat extension content as trusted instruction.
Primary platform contract
The design follows Chrome's native-messaging contract: registered host names are restricted to lowercase alphanumeric characters, underscores and dots;
allowed_originsis an explicit extension allow-list without wildcards; and Chrome launches each native messaging host in a separate process. The process/stdio integration remains a later separately tested boundary; this PR first establishes the Rust-side exact authority primitive.Exact-head verification
Head
28593cf991cc552968da54b722a887252a3695e7is directly ahead of protected main67af7c87589edc2039545af335c95064d9b8391cwith no intervening base movement. The exact-head CI run31484721598, Manifest V3 Compatibility run31484721575, Security Scan run31484721547, and SAST Semgrep run31484721542all completed successfully. The final coverage-only repair exercised the already-supported numeric native-host-name branch and restored exact production branch coverage without widening production authority.Governance
The PR is ready for review because the intended RED was observed and the smallest implementation is exact-head GREEN. No predecessor-head evidence is transferred. This scheduled actor does not merge, self-approve, weaken checks, or alter workflows.
Summary by CodeRabbit
새로운 기능
테스트