feat(extension): bound native messaging frame codec - #213
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
|
Closing as a proven duplicate of the earlier canonical framing owner #154 ( |
Partial implementation of #27, stacked on exact current #82 head
c639cd78e3acad235be4cbbfdef67b84ce7ddbfa.Buyer/security boundary
This Draft adds the next separately reviewed native-messaging boundary after exact extension-to-host authority: a bounded Chrome native-messaging frame codec. It uses the official Chrome framing contract without promoting transport bytes into process, registration, Agent, or secret authority.
The production boundary:
This layer deliberately does not spawn or supervise a native process, parse JSON syntax or schemas, authenticate operating-system host registration, trust Chrome's process arguments as OriginWeave authorization, grant Agent capability, carry secrets, or weaken #82's exact extension-to-host authority boundary.
Test-first evidence
The realistic regression was established before production support. Exact test-only head
3d9b8a2f0468848f7f3eeaeb13ac75c0798da0e8reached the intended compiler boundary: CI checked out that exact head and failedcargo check --locked --workspace --all-targetswith unresolved production imports forNativeMessagingFrameDirection,NativeMessagingFrameError,decode_native_messaging_frame, andencode_native_messaging_frame.The same canonical branch then received the minimal production implementation, exact-limit encoding coverage, all deterministic error-display branches, the primary-source doctoring update, and the Unreleased changelog record. A source-only rustfmt defect surfaced on an intermediate exact head and was repaired by applying the canonical formatter output rather than changing semantics.
Exact-current verification
Current exact contributor head is
57dc0b4886cff1dc22a2ab1c251c5e5bff84158e; GitHub reports this Draft open and mergeable against exact prerequisite #82.On this unchanged exact head:
32461885323: success;96710344984: repository contracts, canonical formatting, locked workspace/all-target check, full tests, strict Clippy, and rustdoc success;96710345129: exact owned-production function, line, region, and branch coverage enforcement success;32461885241: success;32461885233: queued at the latest bounded refetch; and32461885346: queued at the latest bounded refetch.Queued scanners are continuation evidence and are not represented as passing. Fresh formal-review inventory contains no submitted reviews and fresh inline-review inventory contains no threads. No predecessor, prerequisite, queued, skipped, cancelled, synthetic, status-only, or model-only result is promoted as current proof.
Standards / truth boundary
docs/doctoring/browser-agent-protocols.mdnow records Chrome's current native-messaging contract and keeps framing distinct from manifest/OS registration, process identity/supervision, caller-origin binding, JSON schema validation, extension-to-host authority, Agent capability, and secret disclosure. The current framing layer is only a reusable byte-level transport primitive.Keep this PR Draft while #82 remains active. Protected-main
AGENTS.mdforbids this scheduled actor from merging, self-approving, altering workflows, adding secrets, weakening checks, tagging, or publishing.