feat(network): write bounded BiDi WebSocket opening request - #195
Draft
seonghobae wants to merge 667 commits into
Draft
feat(network): write bounded BiDi WebSocket opening request#195seonghobae wants to merge 667 commits into
seonghobae wants to merge 667 commits into
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks 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 |
This was referenced Aug 20, 2026
Keep the accepted loopback socket alive until local shutdown and fail-closed write classification complete, removing a macOS ENOTCONN race from coverage. Commit-Message-Assisted-by: Claude (via Claude Code) Signed-off-by: Seongho Bae <me@seonghobae.me>
Contributor
Author
|
Exact head 48eb2d2 fixes the remaining revoked-stream macOS fixture race: the accepted peer stays alive through local shutdown and fail-closed write classification. The focused regression passed 50/50, then 139/139 Python contracts, Rust fmt/check/test/all-target Clippy/rustdoc, and exact 100% production function/line/region/branch coverage passed. Fresh hosted checks remain required. |
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.
Buyer/runtime boundary
This Draft owns one narrow WebDriver BiDi transport step: write the complete bounded RFC 6455 client opening request on the same verified TCP stream produced by its prerequisite stack, without reading or accepting the server handshake.
Fresh stack truth
main: exact87c4daa1830bac5a5228b6036752ad5633232085;6922dd98779e8f8aad132a3b1f563d7ba6e6d070;63997bcf555e2c5c8e91ba287734ffba3837a1b7;Stale-tree recovery
Historical whole-tree repair
5c111d0db6c363f9d1786c21cc01c5c7398007bdrestored the opening-write prerequisite while also dropping valid protected product/source/test/documentation assets. That deletion is treated as a repair finding, not a reason to close descendants.The content-aware recovery remains on this earliest active owner point:
29dd314501299a3ad8276e5d73189591ff6327a0restores protected product contracts while preserving the branch's WebDriver BiDi modules: BAP workspace, MCP/release-acceptance contracts, destination revalidation, policy MCP binding, resource errors, TLS revocation/trust, Agent Task fixture, gap baseline and directly coupled contracts.89708cf5e474f7701513b84a1356a8ce1699bef5restores extraction schema, sensitive-handle lifecycle and RFC 3986 evidence-path admission while retainingBrowserProtocolValidationEvidence.22449238068929127dc41176756776fc628f1880through64114aab9e000f9cdc017f68e6c926e5abf28df3reconcile the live commercial baseline, architecture/index/ADR discoverability, product authority contracts and the protected MCP product boundary without copying a whole protected tree over later WebDriver work.Workflow source remains untouched by this scheduled product lane. The non-workflow protected metadata
.github/dependabot.ymlwas restored because the recovered rust-toolchain contract requires it and protected main contains the canonical weeklyrust-toolchainupdater.Test-first gap-baseline repair
The refreshed gap snapshot had acquired a self-staleness defect:
tests/test_gap_snapshot_inventory_consistency.pyrequired the evidence commands to contain the literal then-current #195 head89708cf.... Any later content repair necessarily moved the PR head and made the supposedly current baseline stale.Commit
dbf3de6688ec2f714b31c85fa2751eee18267c60is the RED contract. Commit7b2f30941ba2a2b17870f31a835a3ed0217be17cmakes the evidence procedure re-resolve #195's live head before querying checks.That exact predecessor then produced exercised hosted RED in CI
34010603105: Production coverage succeeded, MV334010603003succeeded, but Python repository contracts reported five recovery defects. Three were safe leaf/content repairs and are fixed:6e5aeb583738aa3b3c3433d7f63265fac8aef8c3restores protected.github/dependabot.yml;c8f850707474726eb580ec2652c254e79d37bb9baligns the BAP lifecycle regression with the canonical- **Status:** ProposedADR metadata instead of a formatting-only false negative; and7dbdf0364768f049286bc5cb59e85e9978d533carestores the exact fail-closedsigned cross-platform artifactsrelease wording required by the commercial completion contract.Commit
63997bcf555e2c5c8e91ba287734ffba3837a1b7records that repair lineage indocs/product-technical-gap-baseline.md.Exact-current exercised RED
Exact head
63997bcf555e2c5c8e91ba287734ffba3837a1b7has now executed:34013251657: failure;101432585450: failure only atCheck Python repository contractsafter checking out exact63997bcf...;101432585502: success, including exact coverage enforcement; and34013251651: success.The two Python failures are exactly the protected-workflow-generation mismatches, not new product-source defects:
test_ci_validates_the_exact_pull_request_headexpects workflow/repository-scoped concurrency identity containing${{ github.workflow }}-${{ github.repository }}, while this historical branch still carriesci-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}; andtest_branch_coverage_uses_one_current_date_pinned_nightlyexpects three uses ofnightly-2026-08-18, while this branch still carriesnightly-2026-08-01.This confirms the restored contracts fail closed on the exact current head while production coverage and MV3 remain healthy. The tests are not weakened here, and this scheduled writer does not edit
.github/workflows/**. The exercised evidence and exact job identities were handed to canonical workflow-owner issue #279 in comment5557341445.Implemented transport boundary
The production opening-write implementation is unchanged by these recovery repairs. It consumes the already-verified stream and writes the complete bounded opening request under one nonzero caller deadline capped at five seconds; retries only interrupted writes; distinguishes timeout configuration, timeout/would-block, zero-write, non-recoverable write, deadline and timeout-cleanup failures; drops failed partial-write streams; clears the operation-local write timeout before successful handoff; retains verified transport evidence/client key/request byte count/write budget; and classifies ambiguous full-write/deadline outcomes as
ReconciliationRequiredrather than blindly redispatching.It still does not read or validate the peer opening response, establish WebSocket state, authenticate Chromium/ChromeDriver process provenance, or grant browser/Agent authority.
Remaining integration boundary
PR #242 still targets the pre-recovery #195 generation
48eb2d23009c1c804520dd5efcd0d4d072aacef1and remains the next dependent repair point. Before this stack can be promoted dependency-first:Passing automation is not approval. This Draft remains Draft. No administrative bypass, merge, self-approval, force update, destructive rebase, workflow/ruleset/secret weakening, tag, release, or publish is performed here.