Skip to content

feat(network): send bounded WebDriver BiDi session.end command - #251

Draft
seonghobae wants to merge 17 commits into
feat/webdriver-bidi-session-status-responsefrom
feat/webdriver-bidi-session-end-command
Draft

feat(network): send bounded WebDriver BiDi session.end command#251
seonghobae wants to merge 17 commits into
feat/webdriver-bidi-session-status-responsefrom
feat/webdriver-bidi-session-end-command

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Boundary

Draft child of #250. This slice owns one typed WebDriver BiDi session.end outbound command over an established RFC 6455 stream. Registration precedes frame emission; successful writing does not prove remote completion, process exit, profile deletion or browser authority.

Current exact head is 924ad97551750d4a901ded38b89488cc5438e54f on exact #250 bbdc6ace7a5932adf24836700f806850e6b230bc, adopted by ordinary merge. The original child sender and its two integration-test files are byte-identical to the previous child head; parent status-response production safeguards are preserved.

Current-head evidence

The new regression failed on the previous child when a replacement connection's status reply consumed the original pending request. It now checks the exact connection-mismatch error, preserves the pending request and completes it with the original retained receipt. The server fixtures have finished: this is receipt/correlation recovery evidence, not a live-original-stream or same-endpoint replacement test.

Passed 11 focused Rust tests, 142 Python contracts, compileall, Rust 1.97.1 fmt/check/full workspace tests/strict Clippy and dependency-inclusive warnings-denied rustdoc. Nightly coverage is 1057/1057 functions, 10840/10840 lines, 13873/13873 regions and 1194/1194 branches, all 100%; the known unstable branch-option warning remains. Coverage artifact SHA-256: 5cbb52b50b5740a22d269490f6296380d4b53bbe61ceae632376f6de63ff1054.

Rendered session-end command API inspected visually in installed Edge at this exact head. Documentation states that sending does not establish remote completion. Independent read-only agent review found no actionable findings; this is not a counted approval.

Exact-current CI 34085877650 is terminal success on this unchanged head. Production coverage job 101629699750 completed successfully, including exact coverage enforcement; Rust contracts job 101629699915 completed successfully through repository contracts, canonical formatting, workspace checks/tests, strict Clippy and rustdoc. This repository-native GREEN validates only this exact tree; it does not establish browser-process/profile teardown, central security/review acceptance, protected-main integration or release acceptance.

Historical evidence and limits

Previous head f02af6d0dd01708d495cc08dec785675f3d58898 on parent ec433b844a121f8554c062f92267991af9cacb6f passed local coverage 1037 functions / 10647 lines / 13681 regions / 1192 branches and hosted CI 33959168801. That success does not apply to the current head.

Keep Draft and parent-first integration. Session-end reply provenance belongs to the separate response consumer; session termination, process/profile cleanup, central security/review, protected integration and release acceptance are not established. No merge, self-approval, bypass, force update, destructive rebase, workflow/ruleset/secret mutation, tag, release or publication was performed.

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

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

Copy link
Copy Markdown
Contributor Author

Parent/base RCA completed for exact head 3ffd25ef744d472364cea8ca6ce59d5744840a6e.

I merged the current #250 head (e30cf49ffc2f46a16128361c4ddcb50a47b1d0af) without rewriting history. The historical coverage miss in shared command correlation is repaired by the parent. This child also exposed two local-preflight defects in session.end: invalid frame deadlines registered an id even though no write could begin, and adjacent masking-key reuse left that just-registered id outstanding. The command now validates deadlines before registration, retires only the exact id after a deterministic preflight rejection, and retains correlation after ambiguous writes. Changelog and protocol evidence documentation now cover session.end.

Test-first evidence: the invalid-timeout regression failed with outstanding count 1 before the change and passed with 0 afterward. Exact-tree local verification: docs 22 passed / 177 subtests; rustfmt clean; strict all-target/all-feature Clippy clean; full workspace tests passed; rustdoc with warnings denied passed; real socket reused-mask-key regression passed; pinned-nightly LLVM production functions, lines, regions, and branches are 100% covered. Hosted exact-head checks remain authoritative.

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 parent refresh: 99e2eb946e7ebbffa68f65a00d25243a2cf4242a now adopts #250 cbddf507ac41080ee65230a8d6047dd8d06fd719. The only doctoring conflict preserved both the session.end protocol contract and the newer observable-correlation coverage statement. Rustfmt, all-feature/all-target check, strict Clippy, rustdoc, 141 Python contracts, and CI-equivalent pinned-nightly 100% coverage all passed. Hosted checks remain authoritative; the PR stays Draft.

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

Copy link
Copy Markdown
Contributor Author

Non-force restacked on PR #250 exact head 0eab23d5e388c5c8b984c0021a58316680c9ba8b; PR #251 is now exact head 86e8ad76838f2a64aa7e0cd56ba1f931c8d0c3dc. Verification: 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 86e8ad76838f2a64aa7e0cd56ba1f931c8d0c3dc over #250 0eab23d5e388c5c8b984c0021a58316680c9ba8b: no actionable teardown or correlation defect found. session.end is a concrete static command, binds its id to the distinct SessionEnd kind before I/O, rejects invalid deadlines before registration, retires only a proven preflight failure, and does not claim session completion after a successful frame write. Local exact-head evidence: rustfmt passed; all 5 focused sender/failure tests passed; strict all-target/all-feature Clippy passed. Keep Draft and parent-first; its two hosted checks remain queued.

Preserve the session.end sender, exports and both child Rust integration tests while adopting #250 ec433b8. Resolve the changelog-only conflict by retaining both release records.

Native release contract: 0 discovered RED to 1 executed GREEN. Full 142 Python tests, compileall, Rust fmt/check/test/Clippy/rustdoc and enforced 100% coverage pass (1037 functions, 10647 lines, 13681 regions, 1192 branches). The pinned branch instrumentation still warns that its option is unstable; this is not warning-free or 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
Refresh live inventory to 125 open PRs, 12 Ready and 113 Draft after the external temporary synthesis closed. Preserve historical lossy-integration evidence and record the restored six tests with two remaining forced-close injection failures. Record #251 current-parent verification and queued hosted CI without claiming warning-free instrumentation or protected delivery.

Eight stale marker/count assertions failed before the documentation update; all169 repository contracts and compileall now pass. Historical snapshots and existing source-owned quality evidence remain intact.

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
Ordinarily integrate #251 f02af6d and retain both changelog records. Preserve the response implementation, exports and four loopback response tests byte-for-byte.

Native release contract: zero discovered RED to one executed GREEN. All142 Python tests and compileall, full Rust1.97.1 fmt/check/tests/Clippy/rustdoc and enforced100% coverage pass:1044 functions,10699 lines,13751 regions,1192 branches. Pinned branch instrumentation remains explicitly unstable; this is not hosted, warning-free or operational teardown acceptance.

Commit-Message-Assisted-by: Codex (via Codex)
Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae seonghobae added the enhancement New feature or request label Sep 7, 2026 — with ChatGPT Codex Connector

seonghobae commented Sep 7, 2026

Copy link
Copy Markdown
Contributor Author

Writer lease RELEASED — root task 01a06c0f-b427-7830-b654-9addcdfe7aff. Published #251 exact head 924ad97 on current #250 bbdc6ac by non-force push; head/base/body read back. Test-first replacement status-reply rejection and original receipt recovery passed; child sender/tests and parent production safeguards preserved. 11 focused Rust tests, 142 Python contracts, full stable checks and warnings-denied dependency-inclusive rustdoc passed. Coverage functions/lines/regions/branches all 100%. Rendered API visually inspected in Edge. CI 34085877650 queued, not acceptance. No merge/release or policy changes. Existing coverage artifacts preserved. No source/docs writer active in this worktree.

seonghobae and others added 3 commits September 7, 2026 13:55
Require pending-state preservation and acceptance of the original connection reply after rejection.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Adopt bbdc6ac with both histories and retain all child sender and failure-test blobs.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Require exact replacement-connection rejection without claiming stream liveness or end-response provenance.

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 5565223823 is RELEASED; no new source/ref writer is retained. Exact #251 head 924ad97551750d4a901ded38b89488cc5438e54f has now completed CI 34085877650 GREEN without source churn. Production coverage 101629699750 checked out this exact SHA and passed measurement plus exact function/line/region/branch enforcement; Rust contracts 101629699915 checked out the same SHA and passed Python repository contracts, canonical formatting, workspace check/tests, strict Clippy and API documentation. This supersedes only the stale queued status in the PR body. It does not transfer to #252 or establish session-end response, browser/process/profile teardown, MV3/browser post-condition, central review/security, protected integration, tag or release. No rerun, no-op commit, workflow/ruleset/secret/gate mutation, merge or publication was performed.

Copy link
Copy Markdown
Contributor Author

Exact-head hosted evidence update only; no source/branch mutation. CI 34085877650 for unchanged 924ad97551750d4a901ded38b89488cc5438e54f is now terminal success. Production coverage 101629699750 passed measurement/diagnostics/exact enforcement, and Rust contracts 101629699915 passed repository contracts, canonical formatting, workspace checks/tests, strict Clippy, and rustdoc. The PR body’s queued state is historical. This validates only #251's exact tree; it does not transfer to #252/#255 or prove remote session termination, browser-process exit/profile deletion, protected-main integration, tag, or release.

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