Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
afea70b
test(extension): require native messaging host authority
seonghobae Aug 11, 2026
6502448
test(extension): prove native host grant cannot mint agent authority
seonghobae Aug 11, 2026
6390465
feat(extension): enforce native messaging host allow-list
seonghobae Aug 11, 2026
9b2bbb7
style(extension): apply canonical rustfmt
seonghobae Aug 11, 2026
28593cf
test(extension): cover numeric native host names
seonghobae Aug 11, 2026
1c32eff
test(extension): bound native messaging host identity
seonghobae Aug 14, 2026
4ed1ac2
fix(extension): bound native messaging host identity
seonghobae Aug 14, 2026
a0b1020
Merge protected main into native messaging authority
seonghobae Aug 14, 2026
8da1772
test(extension): expose native messaging authority identities
seonghobae Aug 15, 2026
427d2f3
feat(extension): expose native messaging authority identities
seonghobae Aug 15, 2026
f6e0314
Merge branch 'main' into feat/native-messaging-host-authority
seonghobae Aug 16, 2026
ad1ece9
test(core): align native messaging Agent request scope
seonghobae Aug 16, 2026
2d16411
test(core): require standard native messaging host errors
seonghobae Aug 17, 2026
c639cd7
fix(core): expose standard native messaging host errors
seonghobae Aug 17, 2026
c4bad34
merge(main): reconcile native messaging host authority
seonghobae Aug 24, 2026
48521b2
docs(changelog): record native messaging authority
seonghobae Aug 24, 2026
cdf9daa
docs: mark merged MCP foundation as protected-main truth
seonghobae Aug 24, 2026
810d3fb
docs: preserve exact origin-grant changelog wording
seonghobae Aug 24, 2026
ddb79fa
Merge remote-tracking branch 'origin/main' into pr82
seonghobae Aug 27, 2026
79d8c85
merge(main): reconcile native messaging host authority
seonghobae Aug 27, 2026
f5776f5
feat(extension): bound native messaging framing
seonghobae Aug 28, 2026
89fe04b
test(native-messaging): require exact manifest access policy
seonghobae Aug 29, 2026
5c50ab5
test(native-messaging): defer manifest policy to canonical descendant
seonghobae Aug 29, 2026
9652e62
test(docs): pin full Chromium native-messaging source identity
seonghobae Aug 29, 2026
f850eb4
test(ddd): require extension adapter bounded context
seonghobae Sep 1, 2026
ca2ea5a
refactor(ddd): isolate extension adapter context
seonghobae Sep 1, 2026
1ca7ca9
test(ddd): register extension bounded context
seonghobae Sep 1, 2026
0572357
build: lock extension bounded context
seonghobae Sep 1, 2026
12360a6
fix(build): restore pinned registry checksums
seonghobae Sep 1, 2026
90c4e9a
test(extension): keep moved host bounds lint-clean
seonghobae Sep 1, 2026
cec5992
chore(extension): adopt current protected main without product-tree c…
seonghobae Sep 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ All notable changes to OriginWeave are documented in this file. The format follo
- Refreshed the product and technical gap baseline with the current open-PR inventory and exact base/head evidence for the newest Chromium, BAP, extraction, WARC, and idempotency slices.
- Bound explicit extension-to-Agent grants to exclusive trusted-time expiry in addition to extension identity, session, browsing context, and canonical origin, so a same-origin grant cannot be reused at or after the deadline.
- Bound explicit extension-to-Agent grants to the exact canonical origin in addition to extension identity, session, and browsing context, so a same-session navigation or port change cannot reuse the grant.
- Added bounded native-messaging host-name identity and explicit exact extension-to-host grants so Chrome native-messaging permission or a manifest host name cannot implicitly become OriginWeave Agent authority.
- Bounded Chrome native-messaging framing with native-endian 32-bit byte lengths, direction-specific 1 MiB host-to-browser and 64 MiB browser-to-host payload ceilings, bounded 64 KiB stream reads that avoid allocating a declared maximum before bytes arrive, fail-closed rejection of oversized, truncated, or trailing frame data, and explicit UTF-8 payload validation before framed bytes can be treated as native-messaging text, without granting Agent authority or claiming JSON trust.
- Pinned the native-messaging compatibility evidence to an immutable Chromium revision and connected its framing, resource-ceiling, and non-authority decisions to the standards doctoring record.
- Rust workspace for independently reusable core, policy, destination, network, TLS, resource, and evidence modules.
- Canonical HTTPS and loopback-origin boundary with case-normalized schemes and hosts, default-port normalization, IPv4/IPv6 handling, browser-special numeric-host rejection, and explicit malformed-input errors.
- Typed browser actions, capabilities, risk classes, execution modes, robots decisions, secret-delivery contracts, immutable canonical action-intent digests, and intent-bound approval scopes.
Expand Down Expand Up @@ -102,4 +105,4 @@ All notable changes to OriginWeave are documented in this file. The format follo
- The hourly product agent has no Git metadata or repository authority. A separate post-verification publisher opens one PR and cannot approve or merge it.
- The unprivileged OpenCode user is restricted to loopback egress during model execution, preventing runner-wide allow-listed endpoints from becoming direct source-exfiltration channels.

[Unreleased]: https://github.com/ContextualWisdomLab/OriginWeave/compare/main...HEAD
[Unreleased]: https://github.com/ContextualWisdomLab/OriginWeave/compare/main...HEAD
7 changes: 7 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
[workspace]
members = [
"crates/originweave-core",
"crates/originweave-extension",
Comment thread
seonghobae marked this conversation as resolved.
"crates/originweave-bap",
"crates/originweave-policy",
"crates/originweave-resource",
Expand Down
20 changes: 20 additions & 0 deletions crates/originweave-extension/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[package]
name = "originweave-extension"
description = "OriginWeave Extension Policy bounded context and Chromium extension adapter contracts."
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
publish = false

[lib]
path = "src/lib.rs"

[dependencies]
originweave-core = { path = "../originweave-core" }

[lints]
workspace = true
13 changes: 13 additions & 0 deletions crates/originweave-extension/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
//! Extension Policy bounded context for Chromium-compatible extension integration.
//!
//! This crate owns Chrome-specific extension adapter vocabulary and authority checks.
//! Stable browser/session/action contracts remain in `originweave-core`; this context
//! depends inward on those contracts without exporting Chromium adapter types back into core.

#![forbid(unsafe_code)]
#![deny(missing_docs)]

use originweave_core::ExtensionId;

mod native_messaging;
pub use native_messaging::*;
Loading
Loading