Skip to content

feat(network): send bounded WebDriver BiDi session.status command - #249

Draft
seonghobae wants to merge 42 commits into
feat/webdriver-bidi-command-correlationfrom
feat/webdriver-bidi-session-status-command
Draft

feat(network): send bounded WebDriver BiDi session.status command#249
seonghobae wants to merge 42 commits into
feat/webdriver-bidi-command-correlationfrom
feat/webdriver-bidi-session-status-command

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Current session.status sender prerequisite repair — 2026-09-08

Exact head 65ac3ab94daceebd8843c0727676fbbd71200256 on exact #248 base b386f17c4826adabebda084bff2fba35aee94dd0; Draft. The branch remains an ordinary non-force descendant of the original typed session.status sender and preserves the executed sender connection-provenance prerequisite introduced at 583ffee2ee471bdb49762225d810ff9b5d6a9a77.

Executed RED and minimal parent-scope correction

CI 34061733042 actually executed exact 583ffee2...; it was not queued evidence. Rust contracts 101563339058 passed all 142 Python repository contracts, rustfmt, workspace check and the full workspace tests, then failed strict Clippy only because two receive-side helpers in webdriver_bidi_command_correlation.rs were dead code on this parent:

  • correlate_response_for_connection
  • complete_on_connection

Those helpers consume received-connection provenance and belong to child #250's response-provenance slice. Parent #249 only needs the sender-side prerequisite already used by session.status before I/O: process-local verified connection generation plus connection-bound command registration. Production coverage 101563338988 also failed on the same exact head, but its job log was not available through the evidence path at that checkpoint, so no unsupported coverage root-cause claim is made.

65ac3ab... is one ordinary commit ahead of 583ffee2... and changes only crates/originweave-network/src/webdriver_bidi_command_correlation.rs. It removes those two unused receive-side consuming methods from the parent while retaining:

  • process-local WebDriverBiDiConnectionGeneration provenance on outstanding commands;
  • crate-private register_command_for_connection(...) for sender-side binding before I/O;
  • the generic typed correlation/retirement path;
  • generation allocation/exhaustion and verified transport evidence supplied by the shared connection owner.

The comments make the ownership split explicit: generic parent correlation does not claim received-connection provenance; a child slice that owns received transport evidence supplies the connection-sensitive consuming boundary. No command family, subscription intent, teardown semantics, raw dispatcher, caller-supplied generation, workflow, ruleset, secret or gate change is included.

Exact-head GREEN — 2026-09-08

Fresh readback shows CI 34064314535 completed success on unchanged exact 65ac3ab94daceebd8843c0727676fbbd71200256. Production coverage job 101570292594 passed measurement, diagnostics upload and exact production coverage enforcement. Rust contracts job 101570292728 passed Python repository contracts, canonical formatting, workspace check, full tests, strict Clippy and warnings-denied API documentation. The earlier queued description is therefore stale and is superseded by this exact-head terminal evidence.

This GREEN validates only #249's sender-side prerequisite. Child #250 already owns the receive-side replacement-connection provenance boundary and must remain independently verified on its own exact head; protocol write success remains distinct from received response provenance, Chromium authentication, browser post-condition, protected-main delivery and release eligibility.

Keep Draft and parent-first. No workflow/ruleset/secret mutation, force update, destructive rebase, self-approval, protected merge, tag or release is part of this repair.

Historical executed prerequisite checkpoint

Exact 583ffee2ee471bdb49762225d810ff9b5d6a9a77 restored the sender connection-generation prerequisite after predecessor e77150f4de6534887098fb9de7e02ecea7fbb59c exposed the missing shared API. CI 34061733042 later demonstrated that the parent had also inherited two receive-only helpers that strict Clippy correctly rejected as unused. 65ac3ab... is the minimal ownership correction of that executed RED.

Historical pre-provenance checkpoint

Exact 84b9407978ae0f6c115f01170b6069c601b21104 on #248 b386f17c4826adabebda084bff2fba35aee94dd0 passed native CI 33954334610 before sender connection provenance was introduced. It remains historical repository-quality evidence only and does not validate later provenance heads.

@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.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Parent-first reconstruction review: #248 4b9a04e... is now exact-head GREEN, so this child was rebuilt from that verified tree and only its four session.status command files were reapplied. This avoids carrying the predecessor parent's uncovered impossible branch or duplicating the parent repair. Fresh exact-head CI 33771106565 is still required before any child result or descendant restack can be accepted.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Superseding my earlier date correction: direct retrieval of the rendered W3C WebDriver BiDi Editor's Draft header now shows 3 September 2026. Commit 588514bfa2150381bff8f3ccbb81e6072fde6218 corrected docs/doctoring.md to that authoritative date and APA reference; commit 422ac8cce072cb016af16ed37e0de357a9ce854d restored an unrelated RFC 5280 author citation that was accidentally transcribed while replacing the whole documentation file. Current base→head remains exact #248, 0 behind, six semantic paths. Fresh CI 33859271719 is still non-terminal: Production coverage 100979703576 and Rust contracts 100979703825 are queued without runner/steps. This is a correction/verification comment, not approval or GREEN.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Parent-first stack update after this head's documentation repair: canonical common-envelope #247 has now moved to test-only 1bdfb42b35f1bda118e4b4b1a4d331db2190c3bc for the finite WebDriver BiDi ErrorCode repair. Direct parent #248 is consequently non-mergeable against its live base until that ancestor is fixed and reverified. This #249 branch remains structurally a child of the old exact #248 generation, so even if CI 33859271719 later completes successfully it can prove only this commit's own delta on that old generation, not the live parent-first stack. Keep Draft. Required continuation is #247 RED→minimal fix→exact GREEN, then non-force #248 restack+GREEN, then non-force #249 restack+fresh GREEN. Do not copy the common ErrorCode rule into this command sender or force-push. This is a dependency note, not approval.

Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-parent reconstruction and exact-head RCA on 6860fc573f6d0c3ea5affc7804d386827dc7407d:

  • Refetched feat(network): correlate bounded WebDriver BiDi responses #248 at 43e428a4000972f78c20fb062ee0140ce65cb8d8 and merged it non-destructively.
  • Prior Rust failure was pinned-rustfmt output; the branch is now formatted.
  • Prior coverage missed the failure-propagation branch after a registered session.status frame write. The deterministic policy helper now tests both observable outcomes directly: pre-write malformed-frame rejection retires the exact typed correlation, while an ambiguous write failure retains it. The impossible retirement-error mapping branch was removed without weakening correlation or write ambiguity rules.
  • Local documentation contracts, focused policy tests, strict workspace/all-target/all-feature Clippy, all workspace/all-target/all-feature tests, and rustdoc passed.
  • A first local pinned-nightly run reached the expected single branch deficit before the helper test repair. Subsequent full coverage executions were interrupted by existing macOS loopback socket timing failures in unrelated WebSocket tests; no skip or coverage exclusion was added. Hosted Linux exact-head coverage remains authoritative.

This PR remains draft and stacked on #248.

Commit-Message-Assisted-by: Claude (via Claude Code)
Signed-off-by: Seongho Bae <me@seonghobae.me>
Commit-Message-Assisted-by: Claude (via Claude Code)
Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-head repair evidence for 44387182ddd2c416e5c5182c8eeee1957fed6ade on parent 7349dc4b5f4564824a04a0edc8b3bbebbec974ce:

  • Root cause: the only uncovered regions were the failure arms generated by two redundant assert!(matches!(...)) calls inside the correlation-state test, not production behavior.
  • Minimal repair: removed those redundant return-wrapper assertions; the test still proves preflight retirement and ambiguous-write retention from the observable outstanding-correlation count.
  • Parent refresh: merged the current exact parent non-destructively; the sole conflict retained both changelog entries.
  • Verification on the final exact head: focused regression passed; cargo fmt --all -- --check; workspace all-feature/all-target check; strict Clippy; rustdoc with warnings denied; 139 Python contracts; full workspace tests under cargo llvm-cov; production functions, lines, regions, and branches all 100%.

The newly queued GitHub checks remain authoritative for this changed head; this comment does not claim protected merge or shipment.

Commit-Message-Assisted-by: Claude (via Claude Code)
Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-head child refresh evidence for 2279d18189fcd6cdb2b38aca53b877434d41c913 on current #248 parent de7754aaeb97ccb0fd47bcbe1c4d99c10eaf84eb:

  • Adopted the current parent non-destructively with no conflicts; the coverage repair remains unchanged.
  • Verification passed: rustfmt; workspace all-feature/all-target check; strict Clippy; rustdoc with warnings denied; 141 Python contracts; and the repository CI-equivalent pinned nightly-2026-08-01 branch-coverage command at 100% for production functions, lines, regions, and branches.
  • This child remains Draft until parent-first integration; newly queued hosted checks are authoritative.

Commit-Message-Assisted-by: Claude (via Claude Code)
Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae

Copy link
Copy Markdown
Contributor Author

Verified PR #248 current exact head 7d6db16b2ead201fcec320854923f90d3ad0d8bc locally, then non-force restacked this child on it. PR #249 is now exact head 017d6e816f5a86544a63821b3ceaba94d5f17f44. Both the parent verification and this final tree passed rustfmt, all-feature/all-target check, strict Clippy, rustdoc, 141 Python contracts, and CI-equivalent pinned-nightly production function/line/region/branch coverage at 100%. Fresh hosted exact-head checks and ordered parent integration remain required.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exact-head focused review for stacked child 017d6e816f5a86544a63821b3ceaba94d5f17f44 over parent #248 7d6db16b2ead201fcec320854923f90d3ad0d8bc: no actionable defect found in the bounded session.status sender. The command has static method/params serialization, enforces the WebDriver BiDi js-uint ceiling, registers typed correlation before I/O, rejects invalid deadlines before registration, retires only proven preflight failures, and consumes the established stream on ambiguous write failure. Local exact-head evidence: rustfmt passed; all 5 focused integration tests passed; strict all-target/all-feature Clippy passed. Keep Draft and parent-first: its two hosted checks are queued and #248 has not reached protected main.

seonghobae added a commit that referenced this pull request Sep 5, 2026
Update the live queue to 12 Ready and 113 Draft PRs after #248's parent repair. Preserve the zero-test RED, exact local gates and coverage, current parent lineage, and #249's remaining dependency adoption without claiming hosted or protected delivery.

Commit-Message-Assisted-by: Codex (via Codex)
Signed-off-by: Seongho Bae <me@seonghobae.me>
Preserve the session-status sender and Rust tests while integrating the owning fixture and native release-check repairs. Retain both conflicting changelog entries and record exact ancestry and discovery evidence.

Commit-Message-Assisted-by: Codex (via Codex)
Signed-off-by: Seongho Bae <me@seonghobae.me>
seonghobae added a commit that referenced this pull request Sep 5, 2026
Record #249 parent adoption, #142/#143 verified failure boundaries, and the exact #255 remaining quality failures. Preserve historical snapshots and separate local proof from hosted acceptance.

Commit-Message-Assisted-by: Codex (via Codex)
Signed-off-by: Seongho Bae <me@seonghobae.me>
seonghobae added a commit that referenced this pull request Sep 5, 2026
Preserve the five status-response owner blobs while merging the canonical opening fixture and discoverable correlation release contract from current #249. Verify the integrated tree without transferring predecessor hosted evidence.

Commit-Message-Assisted-by: Codex (via Codex)
Signed-off-by: Seongho Bae <me@seonghobae.me>

seonghobae commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author

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

Normal publication advanced #249 from 84b9407978ae0f6c115f01170b6069c601b21104 to exact head e77150f4de6534887098fb9de7e02ecea7fbb59c. The only production change binds SessionStatus correlation to established.transport_evidence().connection_generation() before frame I/O, matching the already-proven typed-input sender pattern. Existing timeout/preflight/ambiguous-write behavior is otherwise unchanged.

Fresh exact-head CI 34060161679 is queued, so no hosted GREEN, merge, protected integration, browser outcome or release acceptance is claimed. Child #250 exact 6b102c1d860629d1b3e1a49cb0c33d94ca825adb retains the real hosted replacement-socket RED and must adopt this parent before its connection-aware consumer repair can prove GREEN. No workflow/ruleset/secret change, force update, merge, tag or release. #249 source lease is explicitly released here.

Acquisition record

Bounded source lease was acquired on #249 exact head 84b9407978ae0f6c115f01170b6069c601b21104. Child #250 exact 6b102c1d860629d1b3e1a49cb0c33d94ca825adb had a real hosted RED in CI 34044758402 / Rust job 101517723552: a same-session replacement WebSocket consumed the original pending session.status id. The child regression was preserved as the acceptance test. Scope was limited to retaining the established connection generation when registering SessionStatus.

Copy link
Copy Markdown
Contributor Author

session.status prerequisite-repair writer acquired — 2026-09-06 21:29 UTC

Fresh exact-head evidence changed the state after the prior release: #249 is e77150f4de6534887098fb9de7e02ecea7fbb59c on #248 b386f17c4826adabebda084bff2fba35aee94dd0, Draft, and CI 34060161679 actually executed. Rust contracts 101559143081 passed repository contracts and rustfmt, then failed Check workspace; Production coverage 101559143125 reached real measurement and failed. Exact source inspection identifies the causal compile boundary: webdriver_bidi_session_status_command.rs calls register_command_for_connection(...) and transport_evidence().connection_generation(), but the current shared correlation and transport-evidence owners on this branch expose neither API.

This lease is bounded to repairing that missing prerequisite without reverting the executed same-session replacement-socket security requirement. I will add only the private per-connection provenance needed by the existing sender/consumer contract, with realistic tests and no public caller-supplied generation, then re-run exact-head gates. No workflow/ruleset/secret mutation, force update, destructive rebase, merge, tag, release or approval substitution. #250 remains read-only while this parent repair is active. Explicit release follows publication/verification or defer.

Copy link
Copy Markdown
Contributor Author

session.status prerequisite-repair writer RELEASED — 2026-09-06 21:42 UTC

The bounded writer acquired in 5562330308 is released after normal fast-forward publication and readback of exact 583ffee2ee471bdb49762225d810ff9b5d6a9a77, unchanged #248 base b386f17c4826adabebda084bff2fba35aee94dd0, Draft.

The executed predecessor failure remains CI 34060161679: Rust 101559143081 reached Check workspace failure and coverage 101559143125 reached measurement failure because e77150f4... invoked connection-bound correlation APIs absent from its shared connection/correlation owners. The repair is one ordinary descendant commit and exactly five prerequisite paths, restoring the already-established private monotonic connection-generation + fail-closed exhaustion + optional bound command-correlation invariant without importing later command families or removing the existing stream API. Exact e77150f4..583ffee2 is 1 commit ahead / 0 behind.

Fresh CI 34061733042 exists, but at release time coverage 101563338988 and Rust 101563339058 are still queued pre-checkout (steps=[], runner null/0). This is not exact-head GREEN. The runner-admission evidence was handed to .github#712 in comment 5562363998; no leaf workflow mutation, no-op retrigger or gate weakening was used.

PR body now records the executed RED, causal repair and current pending boundary. #250 remains read-only and should adopt this exact parent only after actual execution/verification, then separately close its missing received-message prerequisite. No workflow/ruleset/secret change, force update, destructive rebase, self-approval, protected merge, tag or release. No #249 source/docs writer remains here.

Copy link
Copy Markdown
Contributor Author

session.status parent-scope writer acquired — exact 583ffee2ee471bdb49762225d810ff9b5d6a9a77, unchanged #248 base b386f17c4826adabebda084bff2fba35aee94dd0, Draft.

Fresh hosted execution of CI 34061733042 is now a real RED, not queued evidence. Rust contracts 101563339058 checked out this exact head and reached strict Clippy, where only WebDriverBiDiCommandCorrelation::{correlate_response_for_connection,complete_on_connection} fail as dead code. All 142 Python repository contracts, rustfmt, workspace check and the full workspace tests passed before Clippy. Those two receive-side consumers belong to child #250's response-provenance slice; parent #249 only needs the sender-side process-local connection generation and bound registration prerequisite already used by session.status before I/O.

This bounded lease removes only those unused receive-side methods from #249 while preserving the optional private sender generation, connection-generation allocator/exhaustion contract, generic correlation path, all histories and #250 read-only. No workflow/ruleset/secret mutation, force update, destructive rebase, gate weakening, protected merge, tag or release. Publication will be ordinary, followed by exact-head readback and explicit release; new hosted checks remain required before GREEN.

Copy link
Copy Markdown
Contributor Author

session.status parent-scope writer RELEASED — 2026-09-06 22:34 UTC

This bounded #249 writer releases after normal publication and readback verification of exact 65ac3ab94daceebd8843c0727676fbbd71200256 on unchanged #248 base b386f17c4826adabebda084bff2fba35aee94dd0, still Draft. The ordinary one-commit descendant removes only the two receive-side consuming helpers that strict Clippy proved unused on this parent while preserving the sender-side connection-generation and bound-registration prerequisite required before session.status I/O. All prior histories remain ancestors; #250 remains read-only and owns the response-provenance consuming boundary.

Fresh CI 34064314535 exists on this exact head. Production coverage 101570292594 and Rust contracts 101570292728 are currently queued on ubuntu-24.04 with runner_id=0, steps=[]; no hosted GREEN, acceptance, merge-ready, protected-main, tag or release claim is made. The PR body was updated and read back with the executed 583ffee2... RED and this minimal ownership correction.

No source/docs/ref writer remains with this task for #249. Any child adoption must first acquire its own fresh lease and preserve its unique response-provenance delta by ordinary non-force integration.

Copy link
Copy Markdown
Contributor Author

Exact-head hosted evidence checkpoint — evidence-only PR-state lease acquired after fresh coordination confirmed the #249 source writer is RELEASED and no later unreleased #249 lease; released in this same checkpoint with no source/docs/ref mutation.

Exact current head 65ac3ab94daceebd8843c0727676fbbd71200256, Draft. CI 34064314535 is now terminal GREEN on this unchanged head: Production coverage job 101570292594 completed successfully and Rust contracts job 101570292728 completed successfully. These results validate #249's exact current tree only and do not transfer to child #250, whose own exact-head CI failure remains separately owned by its active canonical-format writer.

No workflow/ruleset/secret/gate change, force update, source write, protected merge, tag or release occurred. No #249 writer remains held after this checkpoint.

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