Skip to content

feat(network): admit correlated WebDriver BiDi session.end response - #252

Draft
seonghobae wants to merge 17 commits into
feat/webdriver-bidi-session-end-commandfrom
feat/webdriver-bidi-session-end-response
Draft

feat(network): admit correlated WebDriver BiDi session.end response#252
seonghobae wants to merge 17 commits into
feat/webdriver-bidi-session-end-commandfrom
feat/webdriver-bidi-session-end-response

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Boundary

Draft child of #251. This slice owns typed session.end response admission after complete bounded-envelope validation and exact command-kind/received-connection correlation. Remote protocol errors remain failures. An acknowledgment is not browser-process exit, profile deletion or operational teardown proof.

Current exact head is 363a78e36e7690e9ed5bf49829567e00e2ec5d59 on exact #251 924ad97551750d4a901ded38b89488cc5438e54f, adopted by ordinary two-parent merge.

Test-first repair and exact-head evidence

Regression 6aaf7f3f reproduced acceptance of a replacement connection's end reply. Ordinary parent adoption e9d67949 retained the failure. The sender now reuses connection-bound registration before frame writing, and the parser reuses sealed received text and shared connection-aware correlation. Original sender preflight retirement and ambiguous-write logic are unchanged; both original sender integration-test files and parent status/reader/correlation production safeguards are preserved.

Tests reject replacement success and error replies with exact connection-mismatch errors, retain the original pending request and complete it using the original receipt. Unbound registrations, events and null-id errors also preserve pending state. These fixtures use separate listeners and retained receipts after server completion: they do not prove same-endpoint replacement rejection or live-original-stream recovery.

Passed 12 focused Rust tests, 142 Python contracts, compileall, Rust 1.97.1 fmt/check/full workspace tests/strict Clippy and dependency-inclusive warnings-denied rustdoc. Production coverage: 1064/1064 functions, 10898/10898 lines, 13947/13947 regions and 1194/1194 branches, all 100%, with the known unstable branch-option warning. Artifact SHA-256: 9f2249637f31916acf9874baec724ddedfe621e5b14fdb6f4bd850620e89f307.

Actual Edge visual inspection confirmed the rendered response API and its linked sealed-reply API. Independent read-only review found no actionable findings; it is not counted approval.

Exact-current CI 34087239755 is terminal success on this unchanged head. Production coverage job 101633511320 completed successfully through exact coverage enforcement; Rust contracts job 101633511589 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 readiness.

History and successor

Previous head 6569bf40b6595ac74c2f0a997d202137f07ba1db on parent f02af6d0dd01708d495cc08dec785675f3d58898 passed 142 Python contracts, local coverage 1044/10699/13751/1192 and hosted CI 33959789688. Those results do not apply to this new head.

The safe successor #255 targets this branch directly, preserving #253/#254 valid deltas while avoiding their unsafe intermediate evidence claims. #253/#254 remain open until successor delivery proves complete inheritance. The successor must adopt and verify this new parent without losing its stronger closure-provenance safeguards.

Keep Draft and parent-first integration. No merge, Close, self-approval, bypass, force update, destructive rebase, workflow/ruleset/secret mutation, tag, release or package publication was performed. Browser teardown, protected-main integration and release acceptance remain unverified.

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

I merged the current #251 head (3ffd25ef744d472364cea8ca6ce59d5744840a6e) without rewriting history. The historical shared-correlation coverage miss is repaired by the parent; this response slice now inherits the corrected session.end preflight/correlation semantics. I also added the missing buyer-visible changelog entry for typed response admission.

Exact-tree local evidence: documentation contracts 22 passed / 177 subtests; rustfmt clean; strict all-target/all-feature Clippy clean; full workspace tests and rustdoc with warnings denied passed after one retry of the existing macOS socket-timeout cleanup race. Two pinned-nightly coverage attempts were both interrupted by the separate existing revoked-loopback NotConnected timing test before a report could be produced; no test was skipped or weakened, and hosted Linux exact-head coverage remains 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: 881a599fb3a920b6bfd4f0a276f3cf24a61d8194 now adopts #251 99e2eb946e7ebbffa68f65a00d25243a2cf4242a without conflict. Rustfmt, all-feature/all-target check, strict Clippy, rustdoc, 141 Python contracts, and CI-equivalent pinned-nightly production function/line/region/branch coverage all passed. Hosted checks remain authoritative; the PR stays Draft for ordered stack integration.

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 #251 exact head 86e8ad76838f2a64aa7e0cd56ba1f931c8d0c3dc; PR #252 is now exact head 2015259529ada99af836989079cc85a15779a2d8. 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 2015259529ada99af836989079cc85a15779a2d8 over #251 86e8ad76838f2a64aa7e0cd56ba1f931c8d0c3dc: no actionable completion or correlation defect found. The result proves only a correlated protocol acknowledgment, explicitly not process exit/profile deletion/resource release; malformed, event, null-id, unknown-id, and wrong-kind responses cannot consume unrelated state, while both success and correlatable remote error retire exactly the SessionEnd id. Local exact-head evidence: rustfmt passed; all 4 focused response tests passed; strict all-target/all-feature Clippy and warnings-denied rustdoc passed. Keep Draft and parent-first; its two hosted checks remain queued.

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 added a commit that referenced this pull request Sep 5, 2026
Record #252 current-parent verification and #147 test-only reconciliation while retaining the preceding lossy-integration and two-failure evidence. Keep ordinary-pass deadlines, instrumentation warning, hosted checks and protected delivery separate.

Four missing current-evidence assertions failed before this update; all 169 repository tests, compileall and diff checks now pass.

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 #252 6569bf4 and retain both release records. Preserve child assessment source, exports and loopback tests while inheriting the canonical native contract and fixture repairs.

Native release-contract RED: zero tests discovered. GREEN: one executed contract, all 142 Python tests, compileall, complete Rust 1.97.1 gates and numerical 100% coverage (1054 functions, 10747 lines, 13787 regions, 1194 branches). Branch instrumentation warning remains explicit.

The raw caller-boolean operational-completion review finding remains unresolved in this intermediate layer. Preserve the later #255 owner repair; local gates do not prove evidence authenticity, security acceptance or protected delivery.

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 6, 2026
Retarget PR #255 directly to the verified #252 session.end response prerequisite so the unsafe caller-supplied teardown assessment in #253 is not a protected-main prerequisite.

The tree is intentionally unchanged: #255 already contains #253/#254 valid deltas and the connection-provenance repair. This marker binds fresh exact-head checks to the repaired PR topology without force-pushing or discarding ancestor history.

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

seonghobae commented Sep 7, 2026

Copy link
Copy Markdown
Contributor Author

Writer lease RELEASED — root task 01a06c0f-b427-7830-b654-9addcdfe7aff. #252 published 363a78e on #251 924ad97 by non-force push; exact head/base/body read back. RED 6aaf7f3 reproduced replacement end reply acceptance; ordinary parent merge e9d6794 retained failure. Existing sealed reader and connection-aware registration/correlation now enforce rejection before state consumption. 12 focused Rust tests, 142 Python contracts, compileall, full stable checks and dependency-inclusive warnings-denied rustdoc passed; coverage F1064/L10898/R13947/B1194 all100%. Actual Edge response API and linked sealed type visually inspected. Independent review no findings, not approval. CI34087239755 queued, not hosted acceptance. Original sender tests and parent safeguards preserved; receipt fixtures do not establish same-endpoint/live-stream/browser-shutdown proof. Worktree /private/tmp/originweave-pr252-parent-adoption.AIR7Cm and coverage artifacts preserved. No source/docs writer remains active here. No merge/release/gate mutation.

seonghobae and others added 3 commits September 7, 2026 14:14
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>
Co-Authored-By: OpenAI Codex <noreply@openai.com>
Signed-off-by: Seongho Bae <me@seonghobae.me>

Copy link
Copy Markdown
Contributor Author

Exact-head hosted evidence update only; no source/branch mutation. CI 34087239755 for unchanged 363a78e36e7690e9ed5bf49829567e00e2ec5d59 is now terminal success. Production coverage job 101633511320 completed success through measurement, diagnostics upload, and exact coverage enforcement; Rust contracts 101633511589 completed success through repository contracts, canonical formatting, workspace check/tests, strict Clippy, and rustdoc. The PR body’s queued statement is now historical. This does not transfer acceptance to #255 or establish real-browser teardown/process/profile cleanup, central review/security, protected-main integration, tag, or release. #255 remains the active current-parent adoption owner and must regenerate its own exact-head evidence.

seonghobae added a commit that referenced this pull request Sep 7, 2026
Ordinarily integrate current #252 exact 363a78e into #255 without rewriting either history. Preserve #255's stronger connection-bound session.end acknowledgment, teardown assessment, and transport-closure provenance while adopting the parent's current session.status connection binding, public-boundary fixture, replacement-connection regressions, and active test-strategy contract.

Overlapping correlation/end-response implementation remains on the stronger #255 representation: connection mismatch is rejected before outstanding correlation is consumed, and protocol/transport evidence still does not prove browser-process exit or profile cleanup.

Signed-off-by: Seongho Bae <me@seonghobae.me>
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