Skip to content

feat(network): parse typed WebDriver BiDi session.status results - #250

Draft
seonghobae wants to merge 51 commits into
feat/webdriver-bidi-session-status-commandfrom
feat/webdriver-bidi-session-status-response
Draft

feat(network): parse typed WebDriver BiDi session.status results#250
seonghobae wants to merge 51 commits into
feat/webdriver-bidi-session-status-commandfrom
feat/webdriver-bidi-session-status-response

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Current repair — 2026-09-07

Published head bbdc6ace7a5932adf24836700f806850e6b230bc, unchanged parent #249 65ac3ab94daceebd8843c0727676fbbd71200256. Non-force history-preserving push; keep Draft and parent-first.

Exact prior CI 34064507212 for f0f2e20c... is now confirmed terminal FAILURE: Rust 101570791288 failed canonical formatting; coverage 101570791153 measured functions 1035/1042, lines 10669/10719, regions 13656/13720. Its old queued description below is historical, not current state.

The repair reuses existing sealed-reader tests and a single pure response-routing check for generic and connection-bound correlation. Completion, command-kind checks, connection provenance, and projection-before-consumption remain unchanged. Public loopback regressions reject missing provenance, events, and null-id errors without losing pending state; after an unbound registry rejects a sealed reply, the original registry still completes it. Fragmented text, interleaved Ping, and typed reader failures are exercised. The unsuccessful fixture experiment remains in commit history; its extra JSON-module unit test was removed, leaving that source byte-identical to the prior head.

At this exact head: 142 Python contracts, compileall, formatting, full Rust workspace check/tests, Clippy with warnings denied, and dependency-inclusive warnings-denied workspace rustdoc all PASS. Nightly production coverage is 100%: functions 1043/1043, lines 10711/10711, regions 13717/13717, branches 1188/1188. Local artifact coverage-shared-route.json SHA-256: e1fccefc6b56eabe653ae41377fbcec0aa89b4be1ada92dba73d3ef87e841029. Independent source review found no actionable findings; this is not counted GitHub approval. Actual Edge rendering of the generated status-result API page was visually inspected and is readable.

Exact-current CI 34084134654 is now terminal success on this unchanged head. Rust contracts 101624834145 checked out bbdc6ace... and passed repository contracts, canonical formatting, workspace checks/tests, strict Clippy and API documentation. Production coverage 101624834026 checked out the same SHA, completed measurement/diagnostics and passed exact coverage enforcement. This repository-native GREEN does not establish Chromium/browser post-condition acceptance, central security/review approval, protected-main integration, merge, tag or release. No workflow, gate, secret, manifest or lockfile changes.

Historical parent-adoption evidence

Boundary

Draft child of #249. This slice owns bounded typed WebDriver BiDi session.status response projection and exact outstanding-command correlation. Required readiness/message fields are validated before correlation is consumed; remote implementation text is untrusted, bounded and omitted from Debug output.

Historical parent-adoption head f0f2e20c5944f56eff9d534ac68d07dae9ff3555 was built on released #249 65ac3ab94daceebd8843c0727676fbbd71200256. Ordinary two-parent non-force merge f0f2e20c... had parents child 615d8408cec07c9d863ba62aa379f02b199e7536 and parent 65ac3ab..., preserving both histories. Its tree SHA remained exactly the child tree a59855a86c349486ef3987290a71daa8fe5771f1: #249's ownership correction deleted two receive-side consumers because they are dead on the sender-only parent, while #250 deliberately retained those same methods as live response-provenance APIs.

The original behavioral RED remains 6b102c1d860629d1b3e1a49cb0c33d94ca825adb, CI 34044758402 / Rust 101517723552: a same-session replacement WebSocket could consume the original pending session.status command. The later exact child aadba11b94ac6bc426702b3caf63f893e28368cc then produced a second real hosted RED in CI 34060920681: repository contracts passed, rustfmt found two deterministic layout defects, and production coverage reached workspace compilation but failed because the child referenced connection-generation/correlation and sealed received-message APIs absent from its stale parent tree.

That historical child kept #249's process-local monotonic connection generation and sender-side connection-bound registration prerequisite, and retained #250's sealed receive-side consuming boundary. Success and protocol-error envelopes were correlated against the sealed received generation; replacement-connection rejection left the original pending command untouched and returned typed ResponseConnectionMismatch { command_id: 7 }. Malformed success projection and invalid error shape still failed before correlation consumption. Generic correlation remained available to command families that had not adopted connection provenance.

CI 34064507212 for f0f2e20c... was initially observed pre-checkout queued; it later completed FAILURE as recorded in the current repair section above. No evidence from that superseded head transfers to bbdc6ace....

No semantic child behavior, workflow/ruleset/secret, gate, protected-main, tag or release mutation was part of that parent adoption.

@coderabbitai

coderabbitai Bot commented Aug 30, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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.

Copy link
Copy Markdown
Contributor Author

Session-status receipt-provenance repair writer acquired — 2026-09-06 16:04 UTC

OriginWeave hourly writer acquires one bounded #250 repair slice at exact current head 7e85a7e5f0147f4b712129cd19aaa3d0a0a54634, exact parent #249 84b9407978ae0f6c115f01170b6069c601b21104, Draft, after verifying the prior RED writer release 5560121292 and no later #250 lease. Exact CI 34041218378 has now executed and failed: Rust contracts 101508208257 reached canonical formatting and failed there; Production coverage 101508207988 reached the real test run and failed there. Thus the same-session replacement-connection regression is now an executed RED, not a static prediction.

Scope is the smallest causal integrated repair on this child generation: apply the exact rustfmt artifact without semantic changes; reuse the already-reviewed private connection-generation invariant from later #267/#268 by adding connection-bound outstanding-command provenance in the shared correlation boundary, bind #249's session.status sender to the established connection before I/O, and make #250 consume only sealed connection-bound received text before removing pending state. Preserve generic correlation for command families that have not adopted connection provenance, all current #249/#250 history, no-write retirement and ambiguous-write retention. No workflow/ruleset/secret mutation, force update, destructive rebase, merge, tag, release or approval substitution. Publication will be by normal descendant commits on #250 only; parent-branch reconstruction remains a separate dependency-order lane after this integrated GREEN is proven. Explicit release follows publication/verification or defer.

seonghobae commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author

session.status response connection-provenance writer RELEASED — 2026-09-06 21:25 UTC

The bounded repair is normally published at exact #250 head aadba11b94ac6bc426702b3caf63f893e28368cc, direct base #249 e77150f4de6534887098fb9de7e02ecea7fbb59c, Draft. All prior child and parent history is preserved: the child first adopted the released parent by an ordinary two-parent non-force merge and then advanced through auditable descendant commits.

Retained RED: predecessor 6b102c1d860629d1b3e1a49cb0c33d94ca825adb, CI 34044758402 / Rust 101517723552, executed the real loopback regression and proved that a same-session replacement WebSocket could consume the original pending session.status command.

Causal repair: #249 sender registration now records the established connection generation before frame I/O; #250 parses only sealed WebDriverBiDiReceivedTextMessage and correlates both success and protocol-error envelopes against that received generation. The regression now requires typed ResponseConnectionMismatch { command_id: 7 } and verifies the original command remains pending. Existing malformed-success and invalid-error-shape paths still reject before consuming correlation. The public-boundary unit caller and real-socket/hostile fixtures were migrated to the received-message boundary, and doctoring now marks the former no-provenance state as historical/superseded on the current branch.

Fresh exact-head CI 34060920681 exists but is not executed: Production coverage 101561174495 and Rust contracts 101561174601 remain queued with runner_id=null and steps=[]. Exact runner-admission evidence was handed to central owner .github#712 in comment 5562271972; no no-op retrigger or gate weakening was used. Therefore no hosted GREEN, Chromium/browser acceptance, merge, protected integration, tag or release is claimed.

No workflow/ruleset/secret mutation, force update, destructive rebase, merge, tag or release occurred. #250 source/docs lease is explicitly released here.

Copy link
Copy Markdown
Contributor Author

session.status current-parent reconciliation writer acquired — 2026-09-06 21:58 UTC

OriginWeave hourly writer acquires one bounded #250 source-repair slice at verified exact child head aadba11b94ac6bc426702b3caf63f893e28368cc, released current #249 head 583ffee2ee471bdb49762225d810ff9b5d6a9a77, Draft. Fresh hosted CI 34060920681 has now actually executed and is a real RED: Rust contracts reached cargo fmt --all --check and failed, while Production coverage reached workspace compilation and failed because the child still references connection-provenance APIs/types absent from its stale direct parent snapshot. Public coordination shows prior #250 lease 5562193952 explicitly released and no later unreleased writer.

Scope is strictly: ordinary non-force adoption of the current #249 connection-generation/correlation prerequisite; reconcile the child’s sealed received-message boundary against the actual shared connection/message API rather than inventing duplicate authority; apply exact rustfmt-only layout changes; preserve the existing same-session replacement-connection RED, all historical child/parent commits, generic correlation compatibility, no-write retirement and ambiguous-write retention. No workflow/ruleset/secret mutation, force update, destructive rebase, merge to protected main, tag, release or approval substitution. Explicit release follows normal publication and readback.

Copy link
Copy Markdown
Contributor Author

session.status current-parent reconciliation writer RELEASED — 2026-09-06 22:22 UTC

Normally published exact head 615d8408cec07c9d863ba62aa379f02b199e7536, Draft, now directly based on current #249 583ffee2ee471bdb49762225d810ff9b5d6a9a77. Ordinary two-parent merge 3a8c01fad731484d99551c683d4f8f0d22071447 preserves the complete child and parent histories; descendant 615d8408 applies the already-observed canonical formatting correction.

Hosted predecessor aadba11b... was an executed RED, not queued evidence: CI 34060920681 passed the 142 Python repository contracts, failed canonical rustfmt on two child files, and production coverage reached Rust compilation where stale-parent absence of the connection-generation/correlation APIs and sealed received-message type stopped the build. The current tree adopts #249's exact generation/correlation prerequisite and reuses the shared sealed connection-bound received-text mechanism without caller-supplied provenance or a raw-message fallback.

Fresh exact-head CI 34063691037 is currently pre-checkout queued: Rust 101568642701, coverage 101568642884, both runner_id=null, steps=[]. Central runner-admission handoff is .github#712 comment 5562585538. No hosted GREEN, browser/MV3 post-condition, protected merge, tag or release is claimed. No workflow/ruleset/secret mutation, force update, destructive rebase, protected merge, tag or release occurred. #250 source/docs lease is explicitly released here.

Copy link
Copy Markdown
Contributor Author

session.status response-provenance parent adoption writer acquired — 2026-09-06 22:36 UTC

Fresh public coordination confirms prior #250 writer 5562592124 explicitly RELEASED and no later unreleased lease. Exact child is 615d8408cec07c9d863ba62aa379f02b199e7536, Draft; live parent #249 has advanced normally from 583ffee2ee471bdb49762225d810ff9b5d6a9a77 to released 65ac3ab94daceebd8843c0727676fbbd71200256.

Scope is only ordinary two-parent non-force adoption of released parent 65ac3ab... while preserving #250's unique receive-side connection-provenance delta. Parent 65ac3ab... removed two receive-consuming methods solely because strict Clippy proved them dead on #249; they are live child-owned APIs on #250, so merge resolution must retain the child tree for that shared file while adding the parent as ancestry. No semantic child behavior, workflow/ruleset/secret, gate, protected-main, tag or release mutation is in scope. New exact-head evidence is required and prior #250 checks do not transfer. Explicit release follows publication/readback.

Copy link
Copy Markdown
Contributor Author

session.status response-provenance parent adoption writer RELEASED — 2026-09-06 22:37 UTC

Normally published exact #250 head f0f2e20c5944f56eff9d534ac68d07dae9ff3555, Draft, now directly based on released #249 65ac3ab94daceebd8843c0727676fbbd71200256. The ordinary two-parent merge has parents 615d8408cec07c9d863ba62aa379f02b199e7536 and 65ac3ab... and deliberately retains exact child tree a59855a86c349486ef3987290a71daa8fe5771f1, preserving #250's live receive-side connection-provenance consumers while adopting #249's sender-only ownership correction as ancestry. No child semantic delta was discarded or rewritten.

Fresh exact-head CI 34064507212 exists. Production coverage 101570791153 and Rust contracts 101570791288 remain pre-checkout queued on ubuntu-24.04 with steps=[] and no runner assigned. Prior #250 evidence does not transfer; no hosted GREEN, browser/MV3 post-condition, protected merge, tag or release claim is made. PR body and base/head were read back at released parent 65ac3ab... / child f0f2e20c....

No source/docs/ref writer remains with this task for #250. No workflow/ruleset/secret mutation, force update, destructive rebase, protected merge, tag or release occurred.

Copy link
Copy Markdown
Contributor Author

OriginWeave hourly writer acquires one bounded #250 canonical-format repair at verified exact child f0f2e20c5944f56eff9d534ac68d07dae9ff3555, direct released parent #249 65ac3ab94daceebd8843c0727676fbbd71200256, Draft. Fresh public coordination shows prior #250 lease 5562670914 explicitly RELEASED and no later unreleased writer.

Exact hosted evidence has now executed. CI 34064507212 is terminal failure: Rust contracts 101570791288 reaches cargo fmt --all -- --check and fails on deterministic layout in crates/native_host/src/webdriver_bidi.rs around the already-integrated response connection-generation correlation; #249 exact 65ac3ab... is independently terminal CI GREEN in 34064314535. Scope here is strictly the rustfmt-only canonical layout correction on #250, preserving its existing same-session replacement-connection behavior, exact child semantics/tree intent, parent ancestry, generic correlation compatibility, no-write retirement and ambiguous-write retention. Production coverage 101570791153 is also failed, but its causal boundary is not inferred unless exact log evidence establishes it.

No #249 source mutation, semantic behavior change, workflow/ruleset/secret/gate change, force update, destructive rebase, protected merge, tag, release or approval substitution is in scope. Publication must be a normal descendant of the unchanged exact #250 head. Explicit release follows publication/readback; new exact-head hosted evidence is required and predecessor checks do not transfer.

seonghobae commented Sep 7, 2026

Copy link
Copy Markdown
Contributor Author

Writer lease RELEASED — root task 01a06c0f-b427-7830-b654-9addcdfe7aff. Published #250 head bbdc6ac on unchanged #249 65ac3ab with non-force push and exact body/head/base readback. Local 142 Python contracts, compileall, full Rust tests/check/fmt/Clippy/warnings-denied workspace rustdoc PASS; production F1043 L10711 R13717 B1188 all100%. Coverage SHA256 e1fccefc6b56eabe653ae41377fbcec0aa89b4be1ada92dba73d3ef87e841029. Source review no findings, not formal approval. Actual Edge rustdoc and published commit visually inspected. CI 34084134654 Rust101624834145/coverage101624834026 QUEUED, not hosted acceptance. Source/docs writer finished; no merge/release/workflow/secret/gate mutation. Worktree /private/tmp/originweave-pr250-current.K90QtO and local coverage artifacts preserved.

seonghobae and others added 5 commits September 7, 2026 13:24
Reuse the existing sealed-reader integration checks and preserve pending commands after event or missing-provenance rejection. Apply canonical formatting observed in exact-head CI.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Preserve the failed compile attempt and use the existing evidence accessor without widening production authority.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Replace the superseded unit fixture with the existing loopback response path and verify original correlation remains usable.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Co-Authored-By: OpenAI Codex <noreply@openai.com>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Keep generic and connection-bound completion separate while reusing exact event and null-id rejection. Projection and provenance remain prerequisites to consumption.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
Signed-off-by: Seongho Bae <me@seonghobae.me>

Copy link
Copy Markdown
Contributor Author

Evidence-only current-head checkpoint — prior source/docs writer 5564958966 is RELEASED; no new source/ref writer is retained. Exact #250 head bbdc6ace7a5932adf24836700f806850e6b230bc has now completed repository-native CI 34084134654 GREEN without another source change. Production coverage job 101624834026 checked out this exact SHA, measured production functions/lines/regions/branches and passed exact coverage enforcement; Rust contracts 101624834145 checked out the same SHA and passed Python repository contracts, cargo fmt --all --check, workspace check/tests, strict Clippy and API docs. This supersedes only the stale queued status in the existing PR body; it does not establish browser/MV3 post-condition acceptance, central security/review approval, protected-main integration, tag or release. No workflow/ruleset/secret/gate mutation, rerun, no-op commit, merge or publication was performed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant