feat(core): parse bounded WebDriver BiDi response envelopes - #186
Merged
seonghobae merged 129 commits intoAug 26, 2026
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 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 |
…websocket-handshake-request feat(network): serialize bounded BiDi WebSocket opening request
…socket-peer-verification feat(core): verify exact BiDi socket peer identity
…websocket-session-correlation feat(core): correlate BiDi WebSocket endpoint with exact session
…explicit-connect-target feat(core): derive explicit BiDi loopback connect targets
seonghobae
marked this pull request as ready for review
August 26, 2026 20:55
…websocket-endpoint feat(core): admit bounded WebDriver BiDi WebSocket endpoints
…loopback-tcp-connect feat(network): establish bounded BiDi loopback TCP transport
seonghobae
changed the base branch from
feat/webdriver-bidi-response-document-budget
to
feat/webdriver-bidi-correlated-result-budget
August 26, 2026 20:58
seonghobae
changed the base branch from
feat/webdriver-bidi-correlated-result-budget
to
feat/webdriver-bidi-locate-nodes-response-envelope
August 26, 2026 21:08
seonghobae
changed the base branch from
feat/webdriver-bidi-locate-nodes-response-envelope
to
cursor/bc-76ee265e-c335-4e79-9ce1-985ad0d8ea71-aa6b
August 26, 2026 21:30
seonghobae
merged commit Aug 26, 2026
51d4182
into
cursor/bc-76ee265e-c335-4e79-9ce1-985ad0d8ea71-aa6b
5 checks passed
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.
Stacked on exact PR #185 head
afe81c45b5d5be09f980bbd1dd153874b628fef1.Buyer/security gap
#185 bounds raw WebDriver BiDi response documents before parsing. This branch completes the bounded response-envelope/result path: exact success/error parsing, response-id correlation, typed protocol-error preservation, wire-derived
result.nodesadmission, and direct binding of admitted wire nodes to current OriginWeave session/context/origin/document-epoch authority without allowing a caller-selected intermediate result to replace wire evidence.It also admits raw response bytes only under the same 65,536-byte product safety budget before UTF-8 validation. The reviewed current WebDriver BiDi error vocabulary is retained as
WebDriverBiDiErrorCode; unknown protocol text remains fail closed.Current implemented boundary
Current exact head
a11b838823b185829267ea0c3cccbcaeb0793f2c:DocumentTooLarge/InvalidUtf8outcomes;WebDriverBiDiLocateNodesCommandwhile preserving nullable error responses as explicitly uncorrelatable;result.nodesfrom the same validated wire document and preserves the exact commandmaxNodeCountbudget;bind_response_document_nodes; andGitHub reports the Draft mergeable against the exact live prerequisite. Keep Draft while #185 and its prerequisite stack remain active.
Test-first / repair lineage
Earlier RED→GREEN cycles established complete-envelope parsing, exact correlation, hostile JSON/resource bounds, raw-byte admission, wire-derived node admission, and current-authority binding.
The compatible contributor delta after
b0c29ac48b66f81c0e59ce4abc625c04d1ddfd2fadded typed WebDriver BiDi protocol-error preservation through the complete wire admission path and removed an unreachable success-conversion edge. Exact current tests additionally prove that a correlated wire error remains typed and that an error response withid: nullremains uncorrelatable before protocol-error admission.No catch-all exception handling, retry loop, silent fallback, transport authority, parser-budget increase, or gate weakening was introduced.
Exact-current GREEN evidence
On unchanged exact head
a11b838823b185829267ea0c3cccbcaeb0793f2cagainst unchanged exact prerequisiteafe81c45b5d5be09f980bbd1dd153874b628fef1:32211029081: success;95943581967: checkout explicitly used exact SHAa11b838823b185829267ea0c3cccbcaeb0793f2c; repository contracts, canonical formatting, locked workspace/all-target check, full tests, strict Clippy, and rustdoc all success under Rust 1.97.1;95943581926: exact owned-production function/line/region/branch measurement and enforcement success;32211029060: success;Security/SAST/central review workflows absent for this stacked feature-base head are absent, not passing. No predecessor-head, prerequisite-head, queued, skipped, cancelled, stale, synthetic, status-only, or model-only evidence is promoted as current proof.
Standards / truth boundary
docs/doctoring/browser-agent-protocols.mdrecords the reviewed primary WebDriver BiDi sources and compatibility consequences. OriginWeave's JSON/document/node/raw-byte limits are product safety budgets rather than protocol maxima, and protocol compatibility never substitutes for authenticated transport or OriginWeave authority.This slice still does not authenticate Chromium, ChromeDriver, WebSocket/TLS provenance, or an adapter process; authorize a typed Agent action; execute browser I/O; or prove a post-condition. Those remain later trusted-runtime boundaries. Child Draft #188 begins the next bounded transport-endpoint admission step without claiming those authorities.
Passing automation is not independent approval. Protected-main
AGENTS.mdforbids this scheduled actor from merging, self-approving, altering workflows, adding secrets, weakening checks, tagging, or publishing.